Sha256: 892e06da12574263a73a8c089f9741a73340cf88a3c5ae501e3f6f639266cf93
Contents?: true
Size: 1.91 KB
Versions: 2
Compression:
Stored size: 1.91 KB
Contents
#!/usr/bin/env ruby require 'entangler' require 'optparse' require 'to_regexp' options = {} OptionParser.new do |opts| opts.banner = %Q(Entangler v#{Entangler::VERSION} Usage: entangler master <base_dir> <remote_user>@<remote_host>:<remote_base_dir> [options] entangler slave <base_dir> [options]) opts.separator "" opts.separator "Options:" opts.on("-i", "--ignore '/.git'", "Ignore folder when syncing, string is regex if surrounded by '/'", "All folders should be relative to the base sync directory, but should start with a '/'.") do |ignore| options[:ignore] ||= [] options[:ignore] << ignore end opts.on("-p", "--port PORT", "Overwrite the SSH port (usually 22)", "(doesn't do anything in slave mode)") do |port| options[:port] = port end opts.on_tail("-v", "--version", "Show version number") do |v| puts Entangler::VERSION exit end opts.on_tail("-h", "--help", "Show this message") do puts opts exit end end.parse! mode = ARGV.shift unless mode && ['master', 'slave'].include?(mode) puts "Mode unknown, please read help:\nentangler -h" exit 1 end base_dir = ARGV.shift unless base_dir puts "Missing base directory" exit 1 end if mode == 'master' remote_information = ARGV.shift unless remote_information raise 'Missing remote information' exit 1 end user, rest = remote_information.split('@', 2) host, path = (rest || '').split(':', 2) error = nil error = 'Missing remote user' unless user error = 'Missing remote host' unless host error = 'Missing remote path' unless path unless error.nil? puts error exit 1 end opts = {remote_base_dir: path, remote_user: user, remote_host: host} opts[:remote_port] = options[:port] if options[:port] else opts = {mode: 'slave'} end if options[:ignore] opts[:ignore] = options[:ignore].map do |opt| opt.to_regexp(detect: true) end end Entangler.run(base_dir, opts)
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
entangler-0.3.1 | exe/entangler |
entangler-0.3.0 | exe/entangler |