12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/rez.rb', line 12
def run
opts = {}
parser = ARGV.options do
it.banner = "Usage: #{it.program_name} <command> [options] [file]\n\nCommands: save, log, diff, show, restore"
it.version = VERSION
it.on "-m", "--message=MSG", "Save message"
end.freeze
parser.permute! into: opts
case ARGV.shift
when "save"
file = detect_or_init ARGV
save file, opts.fetch(:message) { ARGV.join " " }
when "log" then log detect(ARGV)
when "diff" then diff detect(ARGV), Integer(ARGV.shift, exception: false)
when "show" then show detect(ARGV), Integer(ARGV.fetch(0) { abort "rev required" })
when "restore" then restore detect(ARGV), Integer(ARGV.fetch(0) { abort "rev required" })
else abort parser.to_s
end
rescue Errno::ENOENT => e
abort "#{$PROGRAM_NAME}: #{e.message.sub(/.* @ \w+ - /, "not found: ")}"
end
|