in tools/hook-scripts/svnperms.py [0:0]
def parse_options():
try:
opts, args = my_getopt(sys.argv[1:], "f:s:r:t:R:A:h", ["help"])
except getopt.GetoptError as e:
raise Error(e.msg)
class Options: pass
obj = Options()
obj.filename = None
obj.section = None
obj.repository = None
obj.transaction = None
obj.revision = None
obj.author = None
for opt, val in opts:
if opt == "-f":
obj.filename = val
elif opt == "-s":
obj.section = val
elif opt == "-r":
obj.repository = val
elif opt == "-t":
obj.transaction = val
elif opt == "-R":
obj.revision = val
elif opt == "-A":
obj.author = val
elif opt in ["-h", "--help"]:
sys.stdout.write(USAGE)
sys.exit(0)
missingopts = []
if not obj.repository:
missingopts.append("repository")
if not (obj.transaction or obj.revision):
missingopts.append("either transaction or a revision")
if missingopts:
raise MissingArgumentsException("missing required option(s): " + ", ".join(missingopts))
obj.repository = os.path.abspath(obj.repository)
if obj.filename is None:
obj.filename = os.path.join(obj.repository, "conf", "svnperms.conf")
if obj.section is None:
obj.section = os.path.basename(obj.repository)
if not (os.path.isdir(obj.repository) and
os.path.isdir(os.path.join(obj.repository, "db")) and
os.path.isdir(os.path.join(obj.repository, "hooks")) and
os.path.isfile(os.path.join(obj.repository, "format"))):
raise Error("path '%s' doesn't look like a repository" % \
obj.repository)
return obj