summaryrefslogtreecommitdiff
path: root/passlib/_setup
diff options
context:
space:
mode:
authorEli Collins <elic@assurancetechnologies.com>2011-08-17 12:33:59 -0400
committerEli Collins <elic@assurancetechnologies.com>2011-08-17 12:33:59 -0400
commitd9c5a8b20b90cb9db69fdace2fe7f417ffd296a0 (patch)
tree524ad68db92a2b26819943fb4f3900f5d8d02faa /passlib/_setup
parent64a2ef0e35be3812c8b0b550f5af28f50c455535 (diff)
downloadpasslib-d9c5a8b20b90cb9db69fdace2fe7f417ffd296a0.tar.gz
added signing capability to docdist cmd
Diffstat (limited to 'passlib/_setup')
-rw-r--r--passlib/_setup/docdist.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/passlib/_setup/docdist.py b/passlib/_setup/docdist.py
index cc8fcfa..4532e95 100644
--- a/passlib/_setup/docdist.py
+++ b/passlib/_setup/docdist.py
@@ -6,6 +6,8 @@
import os
from distutils import dir_util
from distutils.cmd import Command
+from distutils.errors import *
+from distutils.spawn import spawn
#local
__all__ = [
"docdist"
@@ -24,6 +26,8 @@ class docdist(Command):
"[default: dist]"),
('format=', 'f',
"archive format to create (tar, ztar, gztar, zip)"),
+ ('sign', 's', 'sign files using gpg'),
+ ('identity=', 'i', 'GPG identity used to sign files'),
]
def initialize_options(self):
@@ -31,8 +35,14 @@ class docdist(Command):
self.dist_dir = None
self.format = None
self.keep_temp = False
+ self.sign = False
+ self.identity = None
def finalize_options(self):
+ if self.identity and not self.sign:
+ raise DistutilsOptionError(
+ "Must use --sign for --identity to have meaning"
+ )
if self.build_dir is None:
cmd = self.get_finalized_command('build')
self.build_dir = os.path.join(cmd.build_base, 'docdist')
@@ -60,6 +70,14 @@ class docdist(Command):
self.arc_filename = self.make_archive(arc_base, self.format,
self.build_dir)
+ # Sign if requested
+ if self.sign:
+ gpg_args = ["gpg", "--detach-sign", "-a", self.arc_filename]
+ if self.identity:
+ gpg_args[2:2] = ["--local-user", self.identity]
+ spawn(gpg_args,
+ dry_run=self.dry_run)
+
#cleanup
if not self.keep_temp:
dir_util.remove_tree(tmp_dir, dry_run=self.dry_run)