[selinux-policy/f18] Add OptionParser for segenman

Miroslav Grepl mgrepl at fedoraproject.org
Tue Sep 25 08:22:14 UTC 2012


commit 234c76419c740c50e033bf44bfe91fa36df7ab47
Author: Miroslav Grepl <mgrepl at redhat.com>
Date:   Tue Sep 25 10:21:18 2012 +0200

    Add OptionParser for segenman

 segenman |   42 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 36 insertions(+), 6 deletions(-)
---
diff --git a/segenman b/segenman
index 101bbd8..03f30c8 100755
--- a/segenman
+++ b/segenman
@@ -28,6 +28,7 @@ import datetime
 import setools
 import commands
 import sys
+import os
 
 import xml.etree.ElementTree
 modules_dict = {}
@@ -152,9 +153,10 @@ def prettyprint(f,trim):
     return " ".join(f[:-len(trim)].split("_"))
 
 class ManPage:
-    def __init__(self, domainname, path="/tmp"):
+    def __init__(self, domainname, path, os_version):
         self.domainname = domainname
 	self.short_name = domainname
+        self.os_version = os_version
         self.type = self.domainname + "_t"
         self.fd = open("%s/%s_selinux.8" % (path, domainname), 'w')
         if domainname in roles:
@@ -891,11 +893,39 @@ SELinux policy allows the %s role%s can transition to the %s_r role.
 """ % (", ".join(troles), plural, self.domainname))
 
 if __name__ == '__main__':
-	if len(sys.argv) > 2:
-		test_domains = sys.argv[2:]
-	else:
-		test_domains = domains
+
+	os_version = "Fedora18"
+	path = "/tmp"
+
+	try:
+		from optparse import OptionParser
+		parser = OptionParser()
+
+		parser.add_option("-p", "--path", dest="path", default=False, help="Path for SELinux man pages")
+		parser.add_option("-r", "--version", dest="os_version", default=False, help="Version of OS")
+		parser.add_option("-l", "--list", dest="domain_list", default=False, help="List of domains")
+
+		(options, args) = parser.parse_args()
+
+		if options.os_version:
+			os_version = options.os_version
+
+		if options.path:
+			path = options.path
+
+		if options.domain_list:
+			test_domains = options.domain_list.split(",")
+		else:
+			test_domains = domains
+
+	except Exception,e:
+		print >> sys.stderr, "exception %s: %s" % (e.__class__.__name__, str(e))
+		sys.exit(3)
+
+	if not os.path.isdir(path):
+		print >> sys.stderr, "%s does not exists" % path
+		sys.exit(1)
 
 	for domain in test_domains:
 		print domain
-		ManPage(domain, sys.argv[1])
+		ManPage(domain, path, os_version)


More information about the scm-commits mailing list