From: Aaron Bentley Date: Wed, 9 Mar 2005 18:25:15 +0000 (+0000) Subject: Added support for severity, creator, target X-Git-Tag: 1.0.0~385 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=5da244c60c040f23455c1d18107d1abb5b2140c0;p=be.git Added support for severity, creator, target --- diff --git a/be b/be index a93617a..11e8c5c 100755 --- a/be +++ b/be @@ -12,11 +12,27 @@ import sys import os def list_bugs(args): - bugs = [b for b in tree_root(os.getcwd()).list() if b.active] + active = True + status = ("minor", "serious", "critical", "fatal") + def filter(bug): + if active is not None: + if bug.active != active: + return False + if bug.status not in status: + return False + return True + + bugs = [b for b in tree_root(os.getcwd()).list() ] if len(bugs) == 0: print "No matching bugs found" for bug in bugs: - print "%s: %s" % (unique_name(bug, bugs), bug.summary) + target = bug.target + if target is None: + target = "" + else: + target = " target: %s" % target + print "id: %s severity: %s%s\n%s\n" % (unique_name(bug, bugs), + bug.severity, target, bug.summary) diff --git a/libbe/bugdir.py b/libbe/bugdir.py index de3e550..efb392d 100644 --- a/libbe/bugdir.py +++ b/libbe/bugdir.py @@ -1,6 +1,8 @@ import os import os.path import cmdutil +import errno + class NoBugDir(cmdutil.UserError): def __init__(self, path): @@ -36,10 +38,15 @@ class BugDir: continue yield Bug(self.bugs_path, uuid) -def file_property(name): +def file_property(name, valid=None): def getter(self): - return self._get_value(name) + value = self._get_value(name) + if valid is not None: + assert value in valid + return value def setter(self, value): + if valid is not None: + assert value in valid return self._set_value(name, value) return property(getter, setter) @@ -59,6 +66,10 @@ class Bug(object): name = file_property("name") summary = file_property("summary") + creator = file_property("creator") + target = file_property("target") + severity = file_property("severity", valid=("wishlist", "minor", "serious", + "critical", "fatal")) def _check_status(status): assert status in ("open", "closed") @@ -80,8 +91,14 @@ class Bug(object): active = property(_get_active) def _get_value(self, name): - return file(self.get_path(name), "rb").read().rstrip("\n") + try: + return file(self.get_path(name), "rb").read().rstrip("\n") + except IOError, e: + if e.errno == errno.EEXIST: + return None def _set_value(self, name, value): + if value is None: + os.unlink(self.get_path(name)) file(self.get_path(name), "wb").write("%s\n" % value) diff --git a/libbe/bugdir.pyc b/libbe/bugdir.pyc index 1248090..3d8dfc6 100644 Binary files a/libbe/bugdir.pyc and b/libbe/bugdir.pyc differ