# Utility functions
# Copyright (C) 2000, 2001 James Troup <james@nocrew.org>
-# $Id: utils.py,v 1.37 2002-01-19 18:58:07 troup Exp $
+# $Id: utils.py,v 1.40 2002-03-14 14:12:04 ajt Exp $
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# 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, os, pwd, re, socket, shutil, stat, string, sys, tempfile, traceback
+import commands, os, pwd, re, socket, shutil, string, sys, tempfile
import apt_pkg
re_comments = re.compile(r"\#.*")
re_no_revision = re.compile(r"\-[^-]*$")
re_arch_from_filename = re.compile(r"/binary-[^/]+/")
re_extract_src_version = re.compile (r"(\S+)\s*\((.*)\)")
-re_isadeb = re.compile (r".*\.u?deb$");
-re_issource = re.compile (r"(.+)_(.+?)\.(orig\.tar\.gz|diff\.gz|tar\.gz|dsc)");
+re_isadeb = re.compile (r"(.+?)_(.+?)_(.+)\.u?deb$");
+re_issource = re.compile (r"(.+)_(.+?)\.(orig\.tar\.gz|diff\.gz|tar\.gz|dsc)$");
re_single_line_field = re.compile(r"^(\S*)\s*:\s*(.*)");
re_multi_line_field = re.compile(r"^\s(.*)");
######################################################################################
-# From reportbug
-def our_raw_input():
- sys.stdout.flush()
+def our_raw_input(prompt=""):
+ if prompt:
+ sys.stdout.write(prompt);
+ sys.stdout.flush();
try:
- ret = raw_input()
+ ret = raw_input();
return ret
except EOFError:
- sys.stderr.write('\nUser interrupt (^D).\n')
- raise SystemExit
+ sys.stderr.write('\nUser interrupt (^D).\n');
+ raise SystemExit;
######################################################################################
######################################################################################
-def move (src, dest, overwrite = 0):
+def move (src, dest, overwrite = 0, perms = 0664):
if os.path.exists(dest) and os.path.isdir(dest):
dest_dir = dest;
else:
if not os.access(dest, os.W_OK):
raise cant_overwrite_exc
shutil.copy2(src, dest);
- os.chmod(dest, 0664);
+ os.chmod(dest, perms);
os.unlink(src);
-def copy (src, dest, overwrite = 0):
+def copy (src, dest, overwrite = 0, perms = 0664):
if os.path.exists(dest) and os.path.isdir(dest):
dest_dir = dest;
else:
if not os.access(dest, os.W_OK):
raise cant_overwrite_exc
shutil.copy2(src, dest);
- os.chmod(dest, 0664);
+ os.chmod(dest, perms);
######################################################################################
list.append(original[i]);
return string.join(list, sep);
+def plural (x):
+ if x > 1:
+ return "s";
+ else:
+ return "";
+
################################################################################
def get_conf():