diff options
Diffstat (limited to 'puppet-host-package')
-rwxr-xr-x | puppet-host-package | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/puppet-host-package b/puppet-host-package index 195a1df..f609836 100755 --- a/puppet-host-package +++ b/puppet-host-package @@ -47,6 +47,10 @@ def _main(): # FIXME improve the help string parser.add_option('-S', '--dest-ssldir', dest='destssldir', metavar='dir', help='Directory where ssl certs are packaged') + parser.add_option('--sign', dest='sign', action='store_true', + help='Sign packages [%default]') + parser.add_option('--sign-as', dest='key', default='', metavar='keyid', + help='The key to use for signing (name or keyid)') parser.add_option('-t', '--template', dest='template', metavar='file', help='RPM spec file template [%default]') parser.add_option('-v', '--verbose', dest='verbose', action='count', @@ -85,6 +89,11 @@ def _main(): if not os.path.isfile(opts.template): raise SystemExit('Template file (%s) does not exist' % opts.template) + if opts.key: + opts.sign = True + + packages = [] + for hostname in args: if opts.verbose: print '\nCreating a host package for %s' % hostname @@ -102,6 +111,17 @@ def _main(): print error continue + packages.extend(host.packages) + + if packages and opts.sign: + if opts.verbose: + keyid = opts.key and opts.key or 'default key' + print 'Signing packages using %s' % keyid + try: + puppethost.sign(packages, key=opts.key, verbose=opts.verbose) + except puppethost.PuppetHostError, error: + raise SystemExit(error) + if __name__ == '__main__': try: _main() except KeyboardInterrupt: |