
Security News
Oxlint Introduces Type-Aware Linting Preview
Oxlint’s new preview brings type-aware linting powered by typescript-go, combining advanced TypeScript rules with native-speed performance.
#What is this? A gem to help you publish your jekyll blog via ftp (or any other "plugable" remote machine connection provider).
#How is this? After install the gem
gem install monster_remote
A new executable is gonna be at your service: monster_remote
.
##Syncing Enter the jekyll blog root path and type:
monster_remote [--ftp] -h your_server_address -u your_user_here
The --ftp option is default, you could create you own connection provider if you need it.
You will be prompted for your password. To reduce the size of the command by configuring some of these informations on your jekyll configuration file (or in a .monster.yml file inside your jekyll site):
monster:
remote:
host: ftp.some_host.com
user: omg_my_user
pass: true
local_dir: _site
remote_dir:
verbose: false
Monster will rely on this configurations if you execute it without options. But the command line options overrides the configuration file info.
##Filtering specific files
A filter is an object which respond_to? :filter
, you can stack
filters within the synchronization execution. The code to do that
has to stay on a monster_config.rb
or a config.rb
, create
this file on the root directory of your jekyll site:
# monster_config.rb
Monster::Remote::add_filter(my_filter)
monster_remote
is shipped with a "name_based_filter", if you want to
reject specific files or directories based on the name, you could do
something like these:
# monster_config.rb
my_filter = Monster::Remote::Filters::NameBasedFilter.new
my_filter.reject /^.*rc/
my_filter.reject /^not_allowed_dir\//
Monster::Remote::add_filter(my_filter)
Note: the param to #reject
can be a valid regex, so you could define
some fine grained rules here. The above example will reject any file
starting with a "." and ending with "rc", wich is pretty much any
"classic" configuration file that you have on your directory. Neither
"not_allowed_dir" gonna be synced. You could provide an array if you prefer:
my_filter.reject [/^.*rc/, /ˆnot_allowed_dir\//]`
Or you could use a string:
my_filter.reject ".my_secret_file"
If you need execute more specific or complex logic, you could use a "raw filter". Just provides a block with the logic you need, an array with the dir structure will be passed as argument and a filtered array should be returned. Just files and dirs on the result array will be synced:
my_custom_filter = Monster::Remote::Filters::Filter.new
my_custom_filter.reject lambda { |entries|
# do whatever you need here, for example:
entries.reject do |entry|
entry =~ /^.*rc/ || entry =~ /^not_allowed_dir\//
end
}
Monster::Remote::add_filter(my_custom_filter)
Since a filter is an object which responds_to? :filter
you could
implement your filter in a class. The #filter
will receive an array
with the list of files and dirs in given directory, you need to return a
new array with only the allowed files and dirs:
class MyOMGFilter
def filter(entries)
// your logic here
return new_filtered_array
end
end
#Protocol Wrappers A wrapper is an object with the following methods:
::new(driver=Net::FTP)
#open(host=nil, user=nil, password=nil, port=nil)
responds_to? :create_dir
, and responds_to? :copy_file
. This object has an internal reference to the real
connection
#create_dir(dir)
- creates a remote dir#remove_dir(dir)
- removes a remote dir#copy_file(from, to)
- copies a file to the remote location#remove_file(file)
- removes a remote fileInternally a wrapper will use a real "thing" (like the default Net::FTP
)
to replicate the local dir structure to the remote dir.
#Programatically Syncing
The Monster::Remote::Sync
class has a very well defined interface, and
you could use this to write your own sync logic if you need:
::new(wrapper, local_dir=nil, remote_dir=nil, verbose=nil)
start(user = nil, password = nil, host = "localhost", port = 21)
FAQs
Unknown package
We found that monster_remote demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oxlint’s new preview brings type-aware linting powered by typescript-go, combining advanced TypeScript rules with native-speed performance.
Security News
A new site reviews software projects to reveal if they’re truly FOSS, making complex licensing and distribution models easy to understand.
Security News
Astral unveils pyx, a Python-native package registry in beta, designed to speed installs, enhance security, and integrate deeply with uv.