#!/usr/bin/env ruby begin require 'tms' rescue LoadError require 'rubygems' require 'tms' end require 'optparse' ids, options = ARGV.partition{ |arg| arg =~ /^-?\d+$/ } OptionParser.new do |op| op.banner = <<-BANNER Usege: List: #{op.program_name} [options] Diff: #{op.program_name} [options] id1 id2 Diff with previous: #{op.program_name} [options] id BANNER op.on('-d', '--directory DIRECTORY', 'Use backup directory') do |dir| Tms::Backup.backups_dir = dir end op.on('-f', '--filter DIRECTORY', 'Show diff starting from directory') do |dir| Tms::Backup.filter_dir = dir end op.on('-p', '--progress', 'Show backups in progress') do Tms::Backup.show_in_progress = true end end.parse!(options) ids = ids.map(&:to_i) case ids.length when 0 Tms.list when 1 Tms.diff(ids[0] - 1, ids[0]) when 2 Tms.diff(ids[0], ids[1]) end