From 5a5879c51afc128ea723443de26458ebdc645c6a Mon Sep 17 00:00:00 2001 From: elijah Date: Wed, 5 Dec 2012 01:02:39 -0800 Subject: fixed problems with ruby 1.8 and GLI, and added some tests. --- lib/leap_cli/commands/ca.rb | 28 +++++++++++++-------------- lib/leap_cli/commands/node.rb | 32 +++++++++++++++--------------- lib/leap_cli/commands/vagrant.rb | 42 ++++++++++++++++++++-------------------- lib/leap_cli/version.rb | 2 +- 4 files changed, 52 insertions(+), 52 deletions(-) (limited to 'lib/leap_cli') diff --git a/lib/leap_cli/commands/ca.rb b/lib/leap_cli/commands/ca.rb index f471b5a..d6fd975 100644 --- a/lib/leap_cli/commands/ca.rb +++ b/lib/leap_cli/commands/ca.rb @@ -7,11 +7,11 @@ module LeapCli; module Commands desc "Manage X.509 certificates" #long_desc "" - command :cert do |c| + command :cert do |cert| - c.desc 'Creates a Certificate Authority (private key and CA certificate)' - c.command :ca do |c| - c.action do |global_options,options,args| + cert.desc 'Creates a Certificate Authority (private key and CA certificate)' + cert.command :ca do |ca| + ca.action do |global_options,options,args| assert_files_missing! :ca_cert, :ca_key assert_config! 'provider.ca.name' assert_config! 'provider.ca.bit_size' @@ -48,10 +48,10 @@ module LeapCli; module Commands end end - c.desc 'Creates or renews a X.509 certificate/key pair for a single node or all nodes' - c.arg_name 'node-name', :optional => false - c.command :update do |c| - c.action do |global_options,options,args| + cert.desc 'Creates or renews a X.509 certificate/key pair for a single node or all nodes' + cert.arg_name 'node-name', :optional => false + cert.command :update do |update| + update.action do |global_options,options,args| assert_files_exist! :ca_cert, :ca_key, :msg => 'Run `leap cert ca` to create them' assert_config! 'provider.ca.server_certificates.bit_size' assert_config! 'provider.ca.server_certificates.digest' @@ -70,9 +70,9 @@ module LeapCli; module Commands end end - c.desc 'Creates a Diffie-Hellman parameter file' # (needed for server-side of some TLS connections) - c.command :dh do |c| - c.action do |global_options,options,args| + cert.desc 'Creates a Diffie-Hellman parameter file' # (needed for server-side of some TLS connections) + cert.command :dh do |dh| + dh.action do |global_options,options,args| long_running do if cmd_exists?('certtool') log 0, 'Generating DH parameters (takes a long time)...' @@ -104,10 +104,10 @@ module LeapCli; module Commands # nice details about CSRs: # http://www.redkestrel.co.uk/Articles/CSR.html # - c.desc 'Creates a CSR for use in buying a commercial X.509 certificate' - c.command :csr do |c| + cert.desc 'Creates a CSR for use in buying a commercial X.509 certificate' + cert.command :csr do |csr| #c.switch 'sign', :desc => 'additionally creates a cert that is signed by your own CA (recommended only for testing)', :negatable => false - c.action do |global_options,options,args| + csr.action do |global_options,options,args| assert_config! 'provider.domain' assert_config! 'provider.name' assert_config! 'provider.default_language' diff --git a/lib/leap_cli/commands/node.rb b/lib/leap_cli/commands/node.rb index aa9610f..9bf27e2 100644 --- a/lib/leap_cli/commands/node.rb +++ b/lib/leap_cli/commands/node.rb @@ -8,19 +8,19 @@ module LeapCli; module Commands ## desc 'Node management' - command :node do |c| - c.desc 'Create a new configuration file for a node' - c.command :add do |c| - c.action do |global_options,options,args| + command :node do |node| + node.desc 'Create a new configuration file for a node' + node.command :add do |add| + add.action do |global_options,options,args| log 'not yet implemented' end end - c.desc 'Bootstraps a node, setting up ssh keys and installing prerequisites' - c.arg_name 'node-name', :optional => false, :multiple => false - c.command :init do |c| - c.switch 'echo', :desc => 'if set, passwords are visible as you type them (default is hidden)', :negatable => false - c.action do |global_options,options,args| + node.desc 'Bootstraps a node, setting up ssh keys and installing prerequisites' + node.arg_name 'node-name', :optional => false, :multiple => false + node.command :init do |init| + init.switch 'echo', :desc => 'if set, passwords are visible as you type them (default is hidden)', :negatable => false + init.action do |global_options,options,args| node = get_node_from_args(args) ping_node(node) save_public_host_key(node) @@ -33,17 +33,17 @@ module LeapCli; module Commands end end - c.desc 'Renames a node file, and all its related files' - c.command :mv do |c| - c.action do |global_options,options,args| + node.desc 'Renames a node file, and all its related files' + node.command :mv do |mv| + mv.action do |global_options,options,args| log 'not yet implemented' end end - c.desc 'Removes a node file, and all its related files' - c.arg_name '', :optional => false, :multiple => false - c.command :rm do |c| - c.action do |global_options,options,args| + node.desc 'Removes a node file, and all its related files' + node.arg_name '', :optional => false, :multiple => false + node.command :rm do |rm| + rm.action do |global_options,options,args| log 'not yet implemented' end end diff --git a/lib/leap_cli/commands/vagrant.rb b/lib/leap_cli/commands/vagrant.rb index eaf070f..f3c3c33 100644 --- a/lib/leap_cli/commands/vagrant.rb +++ b/lib/leap_cli/commands/vagrant.rb @@ -5,47 +5,47 @@ module LeapCli; module Commands desc "Manage local virtual machines" long_desc "This command provides a convient way to manage Vagrant-based virtual machines. If node-filter argument is missing, the command runs on all local virtual machines. The Vagrantfile is automatically generated in 'test/Vagrantfile'. If you want to run vagrant commands manually, cd to 'test'." - command :local do |c| - c.desc 'Starts up the virtual machine(s)' - c.arg_name 'node-filter', :optional => true #, :multiple => false - c.command :start do |c| - c.action do |global_options,options,args| + command :local do |local| + local.desc 'Starts up the virtual machine(s)' + local.arg_name 'node-filter', :optional => true #, :multiple => false + local.command :start do |start| + start.action do |global_options,options,args| vagrant_setup vagrant_command(["up", "sandbox on"], args) end end - c.desc 'Shuts down the virtual machine(s)' - c.arg_name 'node-filter', :optional => true #, :multiple => false - c.command :stop do |c| - c.action do |global_options,options,args| + local.desc 'Shuts down the virtual machine(s)' + local.arg_name 'node-filter', :optional => true #, :multiple => false + local.command :stop do |stop| + stop.action do |global_options,options,args| vagrant_setup vagrant_command("halt", args) end end - c.desc 'Resets virtual machine(s) to a pristine state' - c.arg_name 'node-filter', :optional => true #, :multiple => false - c.command :reset do |c| - c.action do |global_options,options,args| + local.desc 'Resets virtual machine(s) to a pristine state' + local.arg_name 'node-filter', :optional => true #, :multiple => false + local.command :reset do |reset| + reset.action do |global_options,options,args| vagrant_setup vagrant_command("sandbox rollback", args) end end - c.desc 'Destroys the virtual machine(s), reclaiming the disk space' - c.arg_name 'node-filter', :optional => true #, :multiple => false - c.command :destroy do |c| - c.action do |global_options,options,args| + local.desc 'Destroys the virtual machine(s), reclaiming the disk space' + local.arg_name 'node-filter', :optional => true #, :multiple => false + local.command :destroy do |destroy| + destroy.action do |global_options,options,args| vagrant_setup vagrant_command("destroy", args) end end - c.desc 'Print the status of local virtual machine(s)' - c.arg_name 'node-filter', :optional => true #, :multiple => false - c.command :status do |c| - c.action do |global_options,options,args| + local.desc 'Print the status of local virtual machine(s)' + local.arg_name 'node-filter', :optional => true #, :multiple => false + local.command :status do |status| + status.action do |global_options,options,args| vagrant_setup vagrant_command("status", args) end diff --git a/lib/leap_cli/version.rb b/lib/leap_cli/version.rb index 0dbd215..7851676 100644 --- a/lib/leap_cli/version.rb +++ b/lib/leap_cli/version.rb @@ -1,6 +1,6 @@ module LeapCli unless defined?(LeapCli::VERSION) - VERSION = '0.1.3' + VERSION = '0.1.4' SUMMARY = 'Command line interface to the LEAP platform' DESCRIPTION = 'The command "leap" can be used to manage a bevy of servers running the LEAP platform from the comfort of your own home.' REQUIRE_PATHS = ['lib', 'vendor/supply_drop/lib', 'vendor/certificate_authority/lib'] -- cgit v1.2.3