Module: Rez

Defined in:
lib/rez.rb,
lib/rez/version.rb

Constant Summary collapse

DIR =
".rez"
VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.runObject



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