Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def create_mackup_home(self):
"""If the Mackup home folder does not exist, create it."""
if not os.path.isdir(self.mackup_folder):
if utils.confirm(
"Mackup needs a directory to store your"
" configuration files\n"
"Do you want to create it now? <{}>".format(self.mackup_folder)
):
os.makedirs(self.mackup_folder)
else:
utils.error("Mackup can't do anything without a home =(")
# Restore the rest of the app configs, using the restored Mackup config
app_names = mckp.get_apps_to_backup()
# Mackup has already been done
app_names.discard(MACKUP_APP_NAME)
for app_name in sorted(app_names):
app = ApplicationProfile(mckp, app_db.get_files(app_name), dry_run, verbose)
printAppHeader(app_name)
app.restore()
elif args["uninstall"]:
# Check the env where the command is being run
mckp.check_for_usable_restore_env()
if dry_run or (
utils.confirm(
"You are going to uninstall Mackup.\n"
"Every configuration file, setting and dotfile"
" managed by Mackup will be unlinked and moved back"
" to their original place, in your home folder.\n"
"Are you sure ?"
)
):
# Uninstall the apps except Mackup, which we'll uninstall last, to
# keep the settings as long as possible
app_names = mckp.get_apps_to_backup()
app_names.discard(MACKUP_APP_NAME)
for app_name in sorted(app_names):
app = ApplicationProfile(
mckp, app_db.get_files(app_name), dry_run, verbose
# Check if we already have a backup
if os.path.exists(mackup_filepath):
# Name it right
if os.path.isfile(mackup_filepath):
file_type = "file"
elif os.path.isdir(mackup_filepath):
file_type = "folder"
elif os.path.islink(mackup_filepath):
file_type = "link"
else:
raise ValueError("Unsupported file: {}".format(mackup_filepath))
# Ask the user if he really want to replace it
if utils.confirm(
"A {} named {} already exists in the"
" backup.\nAre you sure that you want to"
" replace it ?".format(file_type, mackup_filepath)
):
# Delete the file in Mackup
utils.delete(mackup_filepath)
# Copy the file
utils.copy(home_filepath, mackup_filepath)
# Delete the file in the home
utils.delete(home_filepath)
# Link the backuped file to its original place
utils.link(mackup_filepath, home_filepath)
else:
# Copy the file
utils.copy(home_filepath, mackup_filepath)
# Delete the file in the home
if self.dry_run:
continue
# Check if there is already a file in the home folder
if os.path.exists(home_filepath):
# Name it right
if os.path.isfile(home_filepath):
file_type = "file"
elif os.path.isdir(home_filepath):
file_type = "folder"
elif os.path.islink(home_filepath):
file_type = "link"
else:
raise ValueError("Unsupported file: {}".format(mackup_filepath))
if utils.confirm(
"You already have a {} named {} in your"
" home.\nDo you want to replace it with"
" your backup ?".format(file_type, filename)
):
utils.delete(home_filepath)
utils.link(mackup_filepath, home_filepath)
else:
utils.link(mackup_filepath, home_filepath)
elif self.verbose:
if os.path.exists(home_filepath):
print(
"Doing nothing\n {}\n already linked by\n {}".format(
mackup_filepath, home_filepath
)
)
elif os.path.islink(home_filepath):