diff options
author | Eli Collins <elic@assurancetechnologies.com> | 2011-08-17 12:33:59 -0400 |
---|---|---|
committer | Eli Collins <elic@assurancetechnologies.com> | 2011-08-17 12:33:59 -0400 |
commit | d9c5a8b20b90cb9db69fdace2fe7f417ffd296a0 (patch) | |
tree | 524ad68db92a2b26819943fb4f3900f5d8d02faa /passlib/_setup | |
parent | 64a2ef0e35be3812c8b0b550f5af28f50c455535 (diff) | |
download | passlib-d9c5a8b20b90cb9db69fdace2fe7f417ffd296a0.tar.gz |
added signing capability to docdist cmd
Diffstat (limited to 'passlib/_setup')
-rw-r--r-- | passlib/_setup/docdist.py | 18 |
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) |