From d628b026bb44df3d6e7c5768a0162965ff5435f3 Mon Sep 17 00:00:00 2001 From: zlg Date: Mon, 25 Jun 2018 22:12:51 -0700 Subject: dupekill 1.2! --- dupekill | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/dupekill b/dupekill index 91a059b..ff9e3b2 100755 --- a/dupekill +++ b/dupekill @@ -31,17 +31,7 @@ from optparse import OptionParser # # You have been warned. >:3 -def dupekill(): - usage = "Usage: %prog [options] {path}" - parser = OptionParser(usage=usage) - parser.add_option("-d", "--dry", dest='dry_run', action='store_true', default=False, help="displays a list of files dupekill will delete if you run it again without this flag") - parser.add_option("-r", "--recursive", dest='recursive', action='store_true', default=False, help="Recurses into all directories below the starting point") - parser.add_option("-v", "--verbose", dest='verbose', action='store_true', default=False, help="Provide more detailed output") - (options, args) = parser.parse_args() - if args and os.path.isdir(args[0]): - path = os.path.abspath(args[0]) - else: - path = os.getcwd() +def dupekill(dry_run=False, recursive=False, verbose=False, path=os.getcwd()): if not os.path.isdir(path): print("Error: Unable to fetch directory to work with.") @@ -56,7 +46,7 @@ def dupekill(): for root, dirs, file in file_list: ignore_dirs = ['.git', '.config'] for dir in ignore_dirs: - if options.recursive == True: + if recursive == True: # Recursion still needs to ignore certain dirs if dir in dirs: dirs.remove(dir) @@ -75,28 +65,38 @@ def dupekill(): # We want to count these, even if it's a dry run. deleted_files += 1 - if not options.dry_run: + if not dry_run: os.remove(os.path.join(root, item)) - if options.verbose: + if verbose: print("Dupe", os.path.join(root, item), "found.") else: hashList.append(hash) - if options.verbose: + if verbose: print("New file", os.path.join(root, item)) # Print a summary print() - if options.dry_run: + if dry_run: print("THIS IS A DRY RUN! NO FILES WILL BE ALTERED!") print(processed_files, "files processed,", deleted_files, "deleted.\n") if __name__ == '__main__': try: - dupekill() + usage = "Usage: %prog [options] {path}" + parser = OptionParser(usage=usage) + parser.add_option("-d", "--dry", dest='dry_run', action='store_true', default=False, help="displays a list of files dupekill will delete if you run it again without this flag") + parser.add_option("-r", "--recursive", dest='recursive', action='store_true', default=False, help="Recurses into all directories below the starting point") + parser.add_option("-v", "--verbose", dest='verbose', action='store_true', default=False, help="Provide more detailed output") + (options, args) = parser.parse_args() + if args and os.path.isdir(args[0]): + path = os.path.abspath(args[0]) + else: + path = os.getcwd() + dupekill(options.dry_run, options.recursive, options.verbose, path) except KeyboardInterrupt: print("Aborted") -- cgit v1.2.3-54-g00ecf d>1-1/+1 2018-09-08cli: add '--raw' option to list commandzlg2-9/+45 2018-09-08Add remaining filters to vgstash packagezlg1-2/+11 2018-09-04Update LICENSE to match setup.pyzlg1-80/+67 2018-09-03Branch off from master with pytest, tox, clickzlg16-778/+779 2018-03-18Flesh out filter types and ownership statuszlg3-82/+144 2018-03-18README.mdown: break line correctlyzlg1-1/+1 2018-03-18add 'playlog' list filterzlg2-2/+9 2018-03-13Update helpers a bitzlg1-2/+9 2018-03-13Make VGSTASH_DB_LOCATION point to a filezlg2-21/+20 2016-11-18Remove settings from helpers.shZe Libertine Gamer1-5/+0 2016-11-15Correct phrasing in README.Ze Libertine Gamer1-4/+4 2016-11-13DerpZe Libertine Gamer1-0/+1 2016-11-03Improve error handling in shell scriptsZe Libertine Gamer4-3/+23 2016-10-24Correct run_again, add recursionZe Libertine Gamer1-0/+4 2016-10-21Add quotes to correct behavior for arglistZe Libertine Gamer1-1/+1 2016-10-14updater.sh: add recursion, error handlingZe Libertine Gamer1-43/+101 2016-10-14Correct pipe-handling behaviorZe Libertine Gamer1-1/+9 2016-10-12Clarify a method to move between platformsZe Libertine Gamer1-2/+5