summaryrefslogtreecommitdiffstats
path: root/lib/puppet/util/settings/boolean_setting.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/util/settings/boolean_setting.rb')
-rw-r--r--lib/puppet/util/settings/boolean_setting.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/puppet/util/settings/boolean_setting.rb b/lib/puppet/util/settings/boolean_setting.rb
new file mode 100644
index 000000000..cc2704c4e
--- /dev/null
+++ b/lib/puppet/util/settings/boolean_setting.rb
@@ -0,0 +1,33 @@
+require 'puppet/util/settings/setting'
+
+# A simple boolean.
+class Puppet::Util::Settings::BooleanSetting < Puppet::Util::Settings::Setting
+ # get the arguments in getopt format
+ def getopt_args
+ if short
+ [["--#{name}", "-#{short}", GetoptLong::NO_ARGUMENT],
+ ["--no-#{name}", GetoptLong::NO_ARGUMENT]]
+ else
+ [["--#{name}", GetoptLong::NO_ARGUMENT],
+ ["--no-#{name}", GetoptLong::NO_ARGUMENT]]
+ end
+ end
+
+ def optparse_args
+ if short
+ ["--[no-]#{name}", "-#{short}", desc, :NONE ]
+ else
+ ["--[no-]#{name}", desc, :NONE]
+ end
+ end
+
+ def munge(value)
+ case value
+ when true, "true"; return true
+ when false, "false"; return false
+ else
+ raise ArgumentError, "Invalid value '%s' for %s" %
+ [value.inspect, @name]
+ end
+ end
+end