From 65f956533b9d3e4ecab1b5816a9f6afdcf190b0d Mon Sep 17 00:00:00 2001 From: Simon Wydooghe Date: Mon, 28 Mar 2016 13:13:03 +0200 Subject: [PATCH 1/1] Added user confirmation to remove action In case of files other than setup and config being present in the profile folder, user confirmation is necessary to delete the profile in question. Also, added my name to the README. --- README.md | 1 + autorandr.py | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fca170c..52867d1 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ Contributors to this version of autorandr are: * stormc * tachylatus * andersonjacob +* Simon Wydooghe ## How to use diff --git a/autorandr.py b/autorandr.py index dbcf875..f262e6d 100755 --- a/autorandr.py +++ b/autorandr.py @@ -801,11 +801,23 @@ def main(argv): if options["--remove"] not in profiles.keys(): raise AutorandrException("Cannot remove profile '%s':\nThis profile does not exist." % options["--remove"]) try: + remove = True profile_folder = os.path.join(profile_path, options["--remove"]) - shutil.rmtree(profile_folder) + profile_dirlist = os.listdir(profile_folder) + profile_dirlist.remove("config") + profile_dirlist.remove("setup") + if profile_dirlist: + print("Profile folder '%s' contains the following:\n---\n%s\n---" % (options["--remove"], "\n".join(profile_dirlist))) + response = input("Do you really want to remove profile '%s'? If so, type 'yes': " % options["--remove"]).strip() + if response != "yes": + remove = False + if remove is True: + shutil.rmtree(profile_folder) + print("Removed profile '%s'" % options["--remove"]) + else: + print("Profile '%s' was not removed" % options["--remove"]) except Exception as e: raise AutorandrException("Failed to remove profile '%s'" % (options["--remove"],), e) - print("Removed profile '%s'" % options["--remove"]) sys.exit(0) if "-h" in options or "--help" in options: -- 2.39.2