summaryrefslogtreecommitdiffstats
path: root/puppet-host-package
diff options
context:
space:
mode:
Diffstat (limited to 'puppet-host-package')
-rwxr-xr-xpuppet-host-package20
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: