#!/usr/bin/env ruby # # = Synopsis # # A stand-alone Puppet filebucket client. # # = Usage # # filebucket [-h|--help] [-V|--version] [-d|--debug] [-v|--verbose] # [-l|--local] [-r|--remote] # [-s|--server ] [-b|--bucket ] ... # # = Description # # This is a stand-alone filebucket client for sending files to a local # or central filebucket. # # = Usage # # This client can operate in three modes, with only one mode per call: # # backup:: # Send one or more files to the specified file bucket. Each sent file # is printed with its resulting md5 sum. # # get:: # Return the text associated with an md5 sum. The text is printed to # stdout, and only one file can be retrieved at a time. # # restore:: # Given a file path and an md5 sum, store the content associated with the # sum into the specified file path. You can specify an entirely new path # to this argument; you are not restricted to restoring the content to its # original location. # # Note that +filebucket+ defaults to using a network-based filebucket available on # the server named +puppet+. To use this, you'll have to be running as a user # with valid Puppet certificates. Alternatively, you can use your local file bucket # by specifying +--local+. # # = Example # # $ filebucket backup /etc/passwd # /etc/passwd: 429b225650b912a2ee067b0a4cf1e949 # $ filebucket restore /tmp/passwd 429b225650b912a2ee067b0a4cf1e949 # $ # # = Options # # Note that any configuration parameter that's valid in the configuration file # is also a valid long argument. For example, 'ssldir' is a valid configuration # parameter, so you can specify '--ssldir ' as an argument. # # See the configuration file documentation at # http://reductivelabs.com/trac/puppet/wiki/ConfigurationReference for # the full list of acceptable parameters. A commented list of all # configuration options can also be generated by running puppet with # '--genconfig'. # # debug:: # Enable full debugging. # # help:: # Print this help message # # local:: # Use the local filebucket. This will use the default configuration # information. # # remote:: # Use a remote filebucket. This will use the default configuration # information. # # server:: # The server to send the file to, instead of locally. # # verbose:: # Print extra information. # # version:: # Print version information. # # = Example # # filebucket -b /tmp/filebucket /my/file # # = Author # # Luke Kanies # # = Copyright # # Copyright (c) 2005 Reductive Labs, LLC # Licensed under the GNU Public License require 'puppet/application' require 'puppet/application/filebucket' # launch the filebucket Puppet::Application[:filebucket].run