[selinux-policy/f18] Change to handle exception on -p within option parser,
Daniel J Walsh
dwalsh at fedoraproject.org
Wed Sep 26 19:24:33 UTC 2012
commit f1b4d621e2dff7dd62df0aa2bcf59fead64027ec
Author: rhatdan <dwalsh at redhat.com>
Date: Wed Sep 26 15:23:43 2012 -0400
Change to handle exception on -p within option parser,
Make -a and -d exclusive
segenman | 40 ++++++++++++++++++++++++----------------
1 files changed, 24 insertions(+), 16 deletions(-)
---
diff --git a/segenman b/segenman
index 45c53dd..aacb7cd 100755
--- a/segenman
+++ b/segenman
@@ -21,6 +21,7 @@
# 02111-1307 USA
#
#
+import argparse
import senetwork
import seobject
import selinux
@@ -914,31 +915,38 @@ SELinux policy allows the %s role%s can transition to the %s_r role.
""" % (", ".join(troles), plural, self.domainname))
-if __name__ == '__main__':
+class CheckPath(argparse.Action):
+ def __call__(self, parser, namespace, values, option_string=None):
+ if not os.path.exists(values):
+ raise ValueError("%s does not exist" % values)
- import argparse
+if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Generate SELinux man pages')
-
- parser.add_argument("-p", "--path", dest="path", default="/tmp", help="Path for SELinux man pages")
- parser.add_argument("-l", "--list", dest="test_domains", default="", nargs="+", help="List of domains")
+ parser.add_argument("-p", "--path", dest="path", default="/tmp",
+ action=CheckPath,
+ help="Path in which tool will create SELinux man pages")
+ group = parser.add_mutually_exclusive_group(required=True)
+ group.add_argument("-a", "--all", dest="all", default=False,
+ action="store_true",
+ help="All domains")
+ group.add_argument("-d", "--domain", nargs="+",
+ help="Domain name(s) of man pages to be created")
try:
args = parser.parse_args()
path = args.path
-
- if len(args.test_domains) == 0:
+ if args.all:
test_domains = domains
else:
- test_domains = args.test_domains
+ test_domains = args.domain
+
+ for domain in test_domains:
+ print domain
+ ManPage(domain, path)
+ except ValueError,e:
+ sys.stderr.write("%s: %s" % (e.__class__.__name__, str(e)))
+ sys.exit(1)
except Exception,e:
sys.stderr.write("exception %s: %s" % (e.__class__.__name__, str(e)))
sys.exit(1)
-
- if not os.path.isdir(path):
- sys.stderr.write("%s does not exist" % path)
- sys.exit(1)
-
- for domain in test_domains:
- print domain
- ManPage(domain, path)
More information about the scm-commits
mailing list