Sha256: 753edc00d3477c7dd8c72b8e4b07d0df87b151e8a92d8ec538b82f3d5a22daf6

Contents?: true

Size: 1.46 KB

Versions: 18

Compression:

Stored size: 1.46 KB

Contents

#!/usr/bin/env ruby

require 'elecksee/ephemeral'
require 'getoptlong'

require 'pp'

opts = Lxc::Ephemeral.options.map do |k,v|
  res = [
    ["--#{k}", v[:short], v[:type] == :boolean ? GetoptLong::NO_ARGUMENT : GetoptLong::REQUIRED_ARGUMENT]
  ]
  if(v[:aliases])
    Array(v[:aliases]).each do |al|
      res << ["--#{al}", v[:type] == :boolean ? GetoptLong::NO_ARGUMENT : GetoptLong::REQUIRED_ARGUMENT]
    end
  end
  res
end.flatten(1) << ['--help', '-h', GetoptLong::NO_ARGUMENT]

opts = GetoptLong.new(*opts)

config = {}
opts.each do |opt,arg|
  case opt
  when '--help'
    puts 'Usage: lxc-awesome-ephemeral [OPTS] -o NAME'
    output = []
    Lxc::Ephemeral.options.map do |k,v|
      option = "--#{k} #{v[:short]}"
      unless(v[:type] == :boolean)
        option << ' VAL'
      end
      output << {:opt => option, :desc => v[:desc], :alias => v[:aliases]}
    end
    opt_len = output.map{|o| o[:opt].length}.max + 2
    output.each do |option|
      puts "  #{option[:opt]}:#{' ' * (opt_len - option[:opt].length)}#{option[:desc]}"
      Array(option[:alias]).each do |a|
        puts "      --#{a}"
      end
    end
    exit -1
  when '--version'
  else
    key = opt.sub('--', '').to_sym
    opt_conf = Lxc::Ephemeral.options[key]
    case opt_conf[:type]
    when :boolean
      val = true
    when :integer
      val = arg.to_i
    else
      val = arg
    end
  end
  config[key] = val
end

ephemeral = Lxc::Ephemeral.new(config.merge(:cli => true))
ephemeral.start!

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
elecksee-2.0.4 bin/lxc-awesome-ephemeral
elecksee-2.0.2 bin/lxc-awesome-ephemeral
elecksee-2.0.0 bin/lxc-awesome-ephemeral
elecksee-1.1.8 bin/lxc-awesome-ephemeral
elecksee-1.1.6 bin/lxc-awesome-ephemeral
elecksee-1.1.4 bin/lxc-awesome-ephemeral
elecksee-1.1.2 bin/lxc-awesome-ephemeral
elecksee-1.1.0 bin/lxc-awesome-ephemeral
elecksee-1.0.22 bin/lxc-awesome-ephemeral
elecksee-1.0.20 bin/lxc-awesome-ephemeral
elecksee-1.0.18 bin/lxc-awesome-ephemeral
elecksee-1.0.16 bin/lxc-awesome-ephemeral
elecksee-1.0.14 bin/lxc-awesome-ephemeral
elecksee-1.0.12 bin/lxc-awesome-ephemeral
elecksee-1.0.10 bin/lxc-awesome-ephemeral
elecksee-1.0.8 bin/lxc-awesome-ephemeral
elecksee-1.0.6 bin/lxc-awesome-ephemeral
elecksee-1.0.4 bin/lxc-awesome-ephemeral