提交 1f27b6cf 编写于 作者: J James Troup

Move find_next_free to utils and make the too_many variable an argument.

上级 328b03df
......@@ -2,7 +2,7 @@
# rhona, cleans up unassociated binary and source packages
# Copyright (C) 2000, 2001 James Troup <james@nocrew.org>
# $Id: rhona,v 1.15 2001-06-22 22:53:14 troup Exp $
# $Id: rhona,v 1.16 2001-06-22 23:30:21 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
......@@ -40,8 +40,6 @@ Cnf = None
now_date = None; # mark newly "deleted" things as deleted "now"
delete_date = None; # delete things marked "deleted" earler than this
tried_too_hard_exc = "Tried too hard to find a free filename for %s; something's gone Pete Tong";
###################################################################################################
def usage (exit_code):
......@@ -53,20 +51,7 @@ def usage (exit_code):
sys.exit(exit_code)
###################################################################################################
def find_next_free (dest):
extra = 0;
orig_dest = dest;
too_much = 100;
while os.path.exists(dest) and extra < too_much:
dest = orig_dest + '.' + repr(extra);
extra = extra + 1;
if extra >= too_much:
raise tried_too_hard_exc;
return dest;
# FIXME: why can't we make (sane speed) UPDATEs out of these SELECTs?
def check_binaries():
global delete_date, now_date;
......@@ -233,7 +218,7 @@ def clean():
dest_filename = dest + '/' + os.path.basename(filename);
# If the destination file exists; try to find another filename to use
if os.path.exists(dest_filename):
dest_filename = find_next_free(dest_filename);
dest_filename = utils.find_next_free(dest_filename);
if Cnf["Rhona::Options::No-Action"]:
print "Cleaning %s -> %s ..." % (filename, dest_filename);
......
# Utility functions
# Copyright (C) 2000 James Troup <james@nocrew.org>
# $Id: utils.py,v 1.26 2001-06-10 16:35:03 troup Exp $
# $Id: utils.py,v 1.27 2001-06-22 23:30:21 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
......@@ -45,6 +45,7 @@ cant_overwrite_exc = "Permission denied; can't overwrite existent file."
file_exists_exc = "Destination file exists";
send_mail_invalid_args_exc = "Both arguments are non-null.";
sendmail_failed_exc = "Sendmail invocation failed";
tried_too_hard_exc = "Tried too hard to find a free filename.";
# Valid components; used by extract_component_from_section() because
# it doesn't know about Conf from it's caller. FIXME
......@@ -496,3 +497,15 @@ def changes_compare (a, b):
return cmp(a, b);
################################################################################
def find_next_free (dest, too_many=100):
extra = 0;
orig_dest = dest;
while os.path.exists(dest) and extra < too_many:
dest = orig_dest + '.' + repr(extra);
extra = extra + 1;
if extra >= too_many:
raise tried_too_hard_exc;
return dest;
################################################################################
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册