diff options
-rw-r--r-- | .bzrignore | 5 | ||||
-rw-r--r-- | libbe/bugdir.py | 5 | ||||
-rw-r--r-- | libbe/names.py | 12 | ||||
-rw-r--r-- | libbe/rcs.py | 8 |
4 files changed, 25 insertions, 5 deletions
@@ -3,6 +3,7 @@ Bugs-Everywhere-Web/beweb/config.py Bugs-Everywhere-Web/beweb/database.sqlite Bugs-Everywhere-Web/beweb/catwalk-session *.pyc -*.~1~ *.sw[pon] -*.shelf +fte.dsk +*~ +./.shelf diff --git a/libbe/bugdir.py b/libbe/bugdir.py index 414b47e..4664c25 100644 --- a/libbe/bugdir.py +++ b/libbe/bugdir.py @@ -287,8 +287,11 @@ class Bug(object): return Comment(uuid, self) def iter_comment_ids(self): + path = self.get_path("comments") + if not os.path.isdir(path): + return try: - for uuid in os.listdir(self.get_path("comments")): + for uuid in os.listdir(path): if (uuid.startswith('.')): continue yield uuid diff --git a/libbe/names.py b/libbe/names.py index cbcfbf8..d2e077a 100644 --- a/libbe/names.py +++ b/libbe/names.py @@ -14,13 +14,21 @@ # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -import commands + import os import sys def uuid(): - return commands.getoutput('uuidgen') + # this code borrowed from standard commands module + # but adapted to win32 + pipe = os.popen('uuidgen', 'r') + text = pipe.read() + sts = pipe.close() + if sts not in (0, None): + raise "Failed to run uuidgen" + if text[-1:] == '\n': text = text[:-1] + return text def creator(): if sys.platform != "win32": diff --git a/libbe/rcs.py b/libbe/rcs.py index fddfeb6..1c12068 100644 --- a/libbe/rcs.py +++ b/libbe/rcs.py @@ -15,6 +15,8 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA from subprocess import Popen, PIPE +import sys + def rcs_by_name(rcs_name): """Return the module for the RCS with the given name""" if rcs_name == "Arch": @@ -46,6 +48,12 @@ class CommandError(Exception): def invoke(args, expect=(0,), cwd=None): q = Popen(args, stdout=PIPE, stderr=PIPE, cwd=cwd) + if sys.platform != "win32": + q = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE, cwd=cwd) + else: + # win32 don't have os.execvp() so have to run command in a shell + q = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True, + cwd=cwd) output, error = q.communicate() status = q.wait() if status not in expect: |