aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.bzrignore5
-rw-r--r--libbe/bugdir.py5
-rw-r--r--libbe/names.py12
-rw-r--r--libbe/rcs.py8
4 files changed, 25 insertions, 5 deletions
diff --git a/.bzrignore b/.bzrignore
index b5e0175..e7ebff7 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -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: