diff --git a/rhona b/rhona index c05db3129836a4bdc39320bcf59e4d85ea83caf0..c7ee05bc92909685ee9b15125bb4314d293549e2 100755 --- a/rhona +++ b/rhona @@ -2,7 +2,7 @@ # rhona, cleans up unassociated binary and source packages # Copyright (C) 2000, 2001 James Troup -# $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); diff --git a/utils.py b/utils.py index 1c00a1cbb9ec87bede691846e265974e07e955c7..b452ff8a162fcb0497b01318edc2a84c856c32fe 100644 --- a/utils.py +++ b/utils.py @@ -1,6 +1,6 @@ # Utility functions # Copyright (C) 2000 James Troup -# $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; + +################################################################################