]> git.decadent.org.uk Git - dak.git/commitdiff
2004-11-27 James Troup <james@nocrew.org> * utils.py (validate_changes_file_arg...
authorJames Troup <james@nocrew.org>
Sat, 27 Nov 2004 16:05:12 +0000 (16:05 +0000)
committerJames Troup <james@nocrew.org>
Sat, 27 Nov 2004 16:05:12 +0000 (16:05 +0000)
ashley
utils.py

diff --git a/ashley b/ashley
index 4bf9a3cd5daa003534350819dbfcf7e65746572a..e832851f83a97204e97b97db2d6f5a320748b082 100755 (executable)
--- a/ashley
+++ b/ashley
@@ -2,7 +2,7 @@
 
 # Dump variables from a .katie file to stdout
 # Copyright (C) 2001, 2002, 2004  James Troup <james@nocrew.org>
-# $Id: ashley,v 1.10 2004-04-03 02:49:46 troup Exp $
+# $Id: ashley,v 1.11 2004-11-27 16:05:12 troup 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
@@ -58,7 +58,7 @@ def main():
 
     k = katie.Katie(Cnf);
     for arg in sys.argv[1:]:
-        arg = utils.validate_changes_file_arg(arg);
+        arg = utils.validate_changes_file_arg(arg,require_changes=-1);
         k.pkg.changes_file = arg;
         print "%s:" % (arg);
        k.init_vars();
index b2a2ae3e71761d33e1c41f2cdadd9f468f6673be..5872117dc7460aa99a29004fe32fee2b0ce911c1 100644 (file)
--- a/utils.py
+++ b/utils.py
@@ -2,7 +2,7 @@
 
 # Utility functions
 # Copyright (C) 2000, 2001, 2002, 2003, 2004  James Troup <james@nocrew.org>
-# $Id: utils.py,v 1.70 2004-11-27 13:32:16 troup Exp $
+# $Id: utils.py,v 1.71 2004-11-27 16:05:12 troup Exp $
 
 ################################################################################
 
@@ -601,30 +601,44 @@ def prefix_multi_line_string(str, prefix, include_blank_lines=0):
 
 ################################################################################
 
-def validate_changes_file_arg(file, fatal=1):
+def validate_changes_file_arg(filename, require_changes=1):
+    """'filename' is either a .changes or .katie file.  If 'filename' is a
+.katie file, it's changed to be the corresponding .changes file.  The
+function then checks if the .changes file a) exists and b) is
+readable and returns the .changes filename if so.  If there's a
+problem, the next action depends on the option 'require_changes'
+argument:
+
+ o If 'require_changes' == -1, errors are ignored and the .changes
+                               filename is returned.
+ o If 'require_changes' == 0, a warning is given and 'None' is returned.
+ o If 'require_changes' == 1, a fatal error is raised.
+"""
     error = None;
 
-    orig_filename = file
-    if file.endswith(".katie"):
-        file = file[:-6]+".changes";
+    orig_filename = filename
+    if filename.endswith(".katie"):
+        filename = filename[:-6]+".changes";
 
-    if not file.endswith(".changes"):
+    if not filename.endswith(".changes"):
         error = "invalid file type; not a changes file";
     else:
-        if not os.access(file,os.R_OK):
-            if os.path.exists(file):
+        if not os.access(filename,os.R_OK):
+            if os.path.exists(filename):
                 error = "permission denied";
             else:
                 error = "file not found";
 
     if error:
-        if fatal:
+        if require_changes == 1:
             fubar("%s: %s." % (orig_filename, error));
-        else:
+        elif require_changes == 0:
             warn("Skipping %s - %s" % (orig_filename, error));
             return None;
+        else: # We only care about the .katie file
+            return filename;
     else:
-        return file;
+        return filename;
 
 ################################################################################