summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorBrice Figureau <brice-puppet@daysofwonder.com>2009-02-14 17:15:52 +0100
committerBrice Figureau <brice-puppet@daysofwonder.com>2009-02-16 20:12:11 +0100
commite317fa9717e648435dbbc62497d73f803b7b2760 (patch)
treeecca31f78e118848ea83188368f980ec5e7ff6ad /bin
parent81f5438f663820748d3bd580d7436619ed57b6f0 (diff)
downloadpuppet-e317fa9717e648435dbbc62497d73f803b7b2760.tar.gz
puppet-e317fa9717e648435dbbc62497d73f803b7b2760.tar.xz
puppet-e317fa9717e648435dbbc62497d73f803b7b2760.zip
Move ralsh to the Application Controller paradigm
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
Diffstat (limited to 'bin')
-rwxr-xr-xbin/ralsh187
1 files changed, 2 insertions, 185 deletions
diff --git a/bin/ralsh b/bin/ralsh
index 5ff43c39b..2c9ac5d64 100755
--- a/bin/ralsh
+++ b/bin/ralsh
@@ -85,188 +85,5 @@
# Copyright (c) 2005-2007 Reductive Labs, LLC
# Licensed under the GNU Public License
-
-require 'getoptlong'
-require 'puppet'
-
-options = [
- [ "--debug", "-d", GetoptLong::NO_ARGUMENT ],
- [ "--verbose", "-v", GetoptLong::NO_ARGUMENT ],
- [ "--types", "-t", GetoptLong::NO_ARGUMENT ],
- [ "--param", "-p", GetoptLong::REQUIRED_ARGUMENT ],
- [ "--host", "-H", GetoptLong::REQUIRED_ARGUMENT ],
- [ "--edit", "-e", GetoptLong::NO_ARGUMENT ],
- [ "--help", "-h", GetoptLong::NO_ARGUMENT ]
-]
-
-# Add all of the config parameters as valid options.
-Puppet.settings.addargs(options)
-
-result = GetoptLong.new(*options)
-
-debug = false
-verbose = false
-edit = false
-extra_params = []
-host = nil
-
-result.each { |opt,arg|
- case opt
- when "--host"
- host = arg
- when "--types"
- types = []
- Puppet::Type.loadall
- Puppet::Type.eachtype do |t|
- next if t.name == :component
- types << t.name.to_s
- end
- puts types.sort
- exit
- when "--param"
- extra_params << arg.to_sym
- when "--edit"
- edit = true
- when "--help"
- if Puppet.features.usage?
- RDoc::usage
- else
- puts "install RDoc:usage for help"
- end
- exit
- when "--verbose"
- verbose = true
- when "--debug"
- debug = true
- else
- # Anything else is handled by the config stuff
- Puppet.settings.handlearg(opt, arg)
- end
-}
-
-Puppet::Util::Log.newdestination(:console)
-
-# Now parse the config
-Puppet.parse_config
-
-if debug
- Puppet::Util::Log.level = :debug
-elsif verbose
- Puppet::Util::Log.level = :info
-end
-
-
-if ARGV.length > 0
- type = ARGV.shift
-else
- raise "You must specify the type to display"
-end
-
-name = nil
-params = {}
-if ARGV.length > 0
- name = ARGV.shift
-end
-
-if ARGV.length > 0
- ARGV.each do |setting|
- if setting =~ /^(\w+)=(.+)$/
- params[$1] = $2
- else
- raise "Invalid parameter setting %s" % setting
- end
- end
-end
-
-if edit and host
- raise "You cannot edit a remote host"
-end
-
-typeobj = nil
-
-unless typeobj = Puppet::Type.type(type)
- raise "Could not find type %s" % type
-end
-
-properties = typeobj.properties.collect { |s| s.name }
-
-format = proc {|trans|
- trans.dup.collect do |param, value|
- if value.nil? or value.to_s.empty?
- trans.delete(param)
- elsif value.to_s == "absent" and param.to_s != "ensure"
- trans.delete(param)
- end
-
- unless properties.include?(param) or extra_params.include?(param)
- trans.delete(param)
- end
- end
- trans.to_manifest
-}
-
-text = if host
- client = Puppet::Network::Client.resource.new(:Server => host, :Port => Puppet[:puppetport])
- unless client.read_cert
- raise "client.read_cert failed"
- end
- begin
- # They asked for a single resource.
- if name
- transbucket = [client.describe(type, name)]
- else
- # Else, list the whole thing out.
- transbucket = client.instances(type)
- end
- rescue Puppet::Network::XMLRPCClientError => exc
- raise "client.list(#{type}) failed: #{exc.message}"
- end
- transbucket.sort { |a,b| a.name <=> b.name }.collect(&format)
-else
- if name
- obj = typeobj.create(:name => name, :check => properties)
- vals = obj.retrieve
-
- unless params.empty?
- params.each do |param, value|
- obj[param] = value
- end
- catalog = Puppet::Resource::Catalog.new
- catalog.add_resource obj
- begin
- catalog.apply
- rescue => detail
- if Puppet[:trace]
- puts detail.backtrace
- end
- end
-
- end
- [format.call(obj.to_trans(true))]
- else
- typeobj.instances.collect do |obj|
- next if ARGV.length > 0 and ! ARGV.include? obj.name
- trans = obj.to_trans(true)
- format.call(trans)
- end
- end
-end.compact.join("\n")
-
-if edit
- file = "/tmp/x2puppet-#{Process.pid}.pp"
- begin
- File.open(file, "w") do |f|
- f.puts text
- end
- ENV["EDITOR"] ||= "vi"
- system(ENV["EDITOR"], file)
- system("puppet -v " + file)
- ensure
- #if FileTest.exists? file
- # File.unlink(file)
- #end
- end
-else
- puts text
-end
-
+require 'puppet/application/ralsh'
+Puppet::Application[:ralsh].run