Sha256: 4841d2c964ae0da84c2318d31ab6733fabbbf59985d8294c5abc4fcc3335a79b
Contents?: true
Size: 1.48 KB
Versions: 3
Compression:
Stored size: 1.48 KB
Contents
#!/usr/bin/env ruby require 'shell_helpers/pathname' require 'shell_helpers/options' opts = Slop.parse(ARGV) do |o| o.bool "-v", "--verbose", "verbose" o.int "--verbose-level", "verbose level" o.bool "-t", "--test", "test" o.symbol "-m", "--mode", "Conversion mode", default: :rel o.symbol "--rm", "rm options", default: :noclobber o.symbol "--dereference-mode", "dereference mode for dest" o.bool "-L", "--dereference", "dereference dest" o.bool "-f", "--force", "force remove" o.on '--help' do puts o exit end end if opts[:force] opts[:rm] ||= :all else opts[:rm] ||= :noclobber end #dereference-mode can also take the values 'simple' and 'none' opts[:"dereference-mode"] ||= opts[:dereference] pathname=ShellHelpers::Pathname if opts[:verbose] and opts[:test] pathname=ShellHelpers::Pathname::DryRun elsif opts[:verbose] and !opts[:test] pathname=ShellHelpers::Pathname::Verbose elsif opts[:test] pathname=ShellHelpers::Pathname::NoWrite end *args,dest=opts.args dest=pathname.new(dest) if args.empty? warn "You should specify at least two arguments" exit 1 end if args.length > 1 and !dest.directory? warn "When specifying more than one target, dest should be a directory" exit 1 end args.each do |f| f=pathname.new(f) t=dest.directory? ? dest+f.basename : dest t=f.rel_path_to(t, mode: opts[:mode]) puts "#{f} -> #{t}" if opts[:verbose] dest.on_mv(f, mode: opts[:rm], verbose: opts[:verbose], dereference: opts[:"dereference-mode"]) and f.on_ln_s(t, verbose: opts[:verbose]) end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
shell_helpers-0.7.1 | bin/mv_and_ln.rb |
shell_helpers-0.7.0 | bin/mv_and_ln.rb |
shell_helpers-0.6.0 | bin/mv_and_ln.rb |