aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelijah <elijah@riseup.net>2013-05-27 13:59:02 -0700
committerelijah <elijah@riseup.net>2013-05-27 13:59:02 -0700
commit3a77ab2c9cc82853ef5b0add4f15227cc6d696a9 (patch)
tree2407402e0e238a3e1e2a6349767a6fa2c01857dd
parent32e377d905462fa2c20dde9b59532297a7f3aea6 (diff)
downloadleap_cli-3a77ab2c9cc82853ef5b0add4f15227cc6d696a9.tar.gz
leap_cli-3a77ab2c9cc82853ef5b0add4f15227cc6d696a9.tar.bz2
added support for disabling nodes
-rw-r--r--lib/leap_cli/commands/list.rb8
-rw-r--r--lib/leap_cli/config/manager.rb14
2 files changed, 19 insertions, 3 deletions
diff --git a/lib/leap_cli/commands/list.rb b/lib/leap_cli/commands/list.rb
index 4ff2367..7e803d4 100644
--- a/lib/leap_cli/commands/list.rb
+++ b/lib/leap_cli/commands/list.rb
@@ -13,8 +13,12 @@ module LeapCli; module Commands
arg_name 'FILTER', :optional => true
command :list do |c|
c.flag 'print', :desc => 'What attributes to print (optional)'
+ c.switch 'disabled', :desc => 'Include disabled nodes in the list.', :negatable => false
c.action do |global_options,options,args|
puts
+ if options['disabled']
+ manager.load(:include_disabled => true) # reload, with disabled nodes
+ end
if options['print']
print_node_properties(manager.filter(args), options['print'])
else
@@ -39,9 +43,9 @@ module LeapCli; module Commands
node.evaluate
value = properties.collect{|prop|
if node[prop].nil?
- "[null]"
+ "null"
elsif node[prop] == ""
- "[empty]"
+ "empty"
else
node[prop]
end
diff --git a/lib/leap_cli/config/manager.rb b/lib/leap_cli/config/manager.rb
index 0d14541..1f81166 100644
--- a/lib/leap_cli/config/manager.rb
+++ b/lib/leap_cli/config/manager.rb
@@ -17,7 +17,7 @@ module LeapCli
#
# load .json configuration files
#
- def load
+ def load(options = {})
@provider_dir = Path.provider
# load base
@@ -47,6 +47,18 @@ module LeapCli
@nodes[name] = apply_inheritance(node)
end
+ # remove disabled nodes
+ unless options[:include_disabled]
+ @nodes.select! do |name, node|
+ if node.enabled
+ true
+ else
+ log 2, :skipping, "disabled node #{name}."
+ false
+ end
+ end
+ end
+
# validate
validate_provider(@provider)
end