module GitBak::Executable

command-line executable

Constants

INFO

description

USAGE

command-line usage

Public Class Methods

configure(file) click to toggle source

parse configuration file; die on failure

# File lib/gitbak/exec.rb, line 69
def self.configure(file)
  GitBak::Misc.die! "configuration file (#{file}) not found" \
    unless GitBak::Misc.exists? file
  GitBak.configure file
end
main(args = nil) click to toggle source

run!

# File lib/gitbak/exec.rb, line 76
def self.main(args = nil)
  options = parse_options(args || ARGV)
  cfg     = configure options[:cfgfile]
  GitBak.main options[:verbose], options[:noact], cfg
end
parse_options(args) click to toggle source

parse command line options; die on failure

# File lib/gitbak/exec.rb, line 36
def self.parse_options(args)                                # {{{1
  args_   = args.dup
  options = { cfgfile: "#{Dir.home}/.gitbak", verbose: false,
              noact: false }
  op = OptionParser.new do |opts|
    opts.banner = USAGE
    opts.on('-c', '--config-file FILE',
            'Configuration file') do |x|
      options[:cfgfile] = x
    end
    opts.on('-v', '--[no-]verbose', 'Run verbosely') do |x|
      options[:verbose] = x
    end
    opts.on('-n', '--no-act', 'List w/o mirroring') do |x|
      options[:noact] = !x
    end
    opts.on_tail('-h', '--help', 'Show this message') do
      puts INFO, '', opts; exit
    end
    opts.on_tail('--version', 'Show version') do
      puts "gitbak v#{GitBak::VERSION}"; exit
    end
  end
  begin
    op.parse! args_
  rescue OptionParser::ParseError => e
    GitBak::Misc.die! "#{e}\n\n#{op}"
  end
  GitBak::Misc.die! "usage: #{USAGE}" unless args_.length == 0
  options
end