forked from FotoCoder/Backuppy
Show message on Ctrl+C
- CLI-mode: Show text "Programm interrupted by user." instead of error message when Ctrl+C was pressed. - CLI-mode: Removed obsolete trace messages
This commit is contained in:
parent
21f6b4b3ac
commit
b24dabf203
2 changed files with 68 additions and 55 deletions
|
@ -1,5 +1,10 @@
|
|||
# Changelog Backuppy
|
||||
|
||||
## [0.8.1] - 2021-05-10
|
||||
### Fixed
|
||||
- CLI-mode: Show text "Programm interrupted by user." instead of error message when Ctrl+C was pressed.
|
||||
- CLI-mode: Removed obsolete trace messages
|
||||
|
||||
## [0.8] - 2021-05-07
|
||||
### Added
|
||||
- GUI-mode: Introduce "Browse"-button on directory-selection dialogs
|
||||
|
|
118
install.py
118
install.py
|
@ -35,8 +35,16 @@ def set_language(language):
|
|||
global LANGUAGE
|
||||
LANGUAGE = language
|
||||
|
||||
def trace(message_txt):
|
||||
""" Print a formatted message to std out. """
|
||||
def trace(message_txt, prefix_crlf=False):
|
||||
""" Print a formatted message to std out.
|
||||
|
||||
:param "message_txt" [in] The message text that should be displayed.
|
||||
:param "prefix_crlf" [in] If True, a carriage return/line feed will be done prior to the message text.
|
||||
|
||||
"""
|
||||
|
||||
if prefix_crlf:
|
||||
print("\n")
|
||||
print("[ OK ] " + message_txt)
|
||||
|
||||
def get_lang_text(search_str: str):
|
||||
|
@ -48,65 +56,71 @@ def get_lang_text(search_str: str):
|
|||
return return_str
|
||||
|
||||
def main_install_cli():
|
||||
language = input("Hello, first of all, which language do you prefer: German [DE] or English [EN]?\n> ")
|
||||
if language.upper() == "DE":
|
||||
set_language(LANG_DE)
|
||||
print("Perfekt, nun ist das deutsche Sprachpaket aktiviert. Willkommen!\n")
|
||||
else:
|
||||
print("Perfect, the English language package is now activated. Welcome!.\n")
|
||||
try:
|
||||
language = input("Hello, first of all, which language do you prefer: German [DE] or English [EN]?\n> ")
|
||||
if language.upper() == "DE":
|
||||
set_language(LANG_DE)
|
||||
print("Perfekt, nun ist das deutsche Sprachpaket aktiviert. Willkommen!\n")
|
||||
else:
|
||||
print("Perfect, the English language package is now activated. Welcome!.\n")
|
||||
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
print("\n" + get_lang_text("intromsg1") + "\n")
|
||||
time.sleep(1)
|
||||
print("\n" + get_lang_text("intromsg1") + "\n")
|
||||
time.sleep(1)
|
||||
|
||||
print("\n" + get_lang_text("intromsg2") + "\n")
|
||||
time.sleep(1)
|
||||
print("\n" + get_lang_text("intromsg2") + "\n")
|
||||
time.sleep(1)
|
||||
|
||||
# which Rsync options are available and which one you want to use
|
||||
print(get_lang_text("rsyncopt") + "\n")
|
||||
time.sleep(1)
|
||||
# which Rsync options are available and which one you want to use
|
||||
print(get_lang_text("rsyncopt") + "\n")
|
||||
time.sleep(1)
|
||||
|
||||
# asks if you want to exclude files/directories from backup and creates an exclude file in case of Yes
|
||||
exclude = input(get_lang_text("excludefile1") + "\n> ")
|
||||
global EXCLUDE
|
||||
if exclude.upper() in ("J", "Y"):
|
||||
EXCLUDE = True
|
||||
print(get_lang_text("excludefile2") + "\n")
|
||||
else:
|
||||
EXCLUDE = False
|
||||
print(get_lang_text("excludefile3") + "\n")
|
||||
time.sleep(1)
|
||||
# asks if you want to exclude files/directories from backup and creates an exclude file in case of Yes
|
||||
exclude = input(get_lang_text("excludefile1") + "\n> ")
|
||||
global EXCLUDE
|
||||
if exclude.upper() in ("J", "Y"):
|
||||
EXCLUDE = True
|
||||
print(get_lang_text("excludefile2") + "\n")
|
||||
else:
|
||||
EXCLUDE = False
|
||||
print(get_lang_text("excludefile3") + "\n")
|
||||
time.sleep(1)
|
||||
|
||||
# Asks for the source directory which should be saved
|
||||
print(get_lang_text("srcdir1"))
|
||||
time.sleep(1)
|
||||
sourcedir = input(get_lang_text("srcdir2") + "\n> ")
|
||||
# Asks for the source directory which should be saved
|
||||
print(get_lang_text("srcdir1"))
|
||||
time.sleep(1)
|
||||
sourcedir = input(get_lang_text("srcdir2") + "\n> ")
|
||||
|
||||
print(f"{get_lang_text('srcdir3_1')} {sourcedir} {get_lang_text('srcdir3_2')}")
|
||||
time.sleep(1)
|
||||
print(f"{get_lang_text('srcdir3_1')} {sourcedir} {get_lang_text('srcdir3_2')}")
|
||||
time.sleep(1)
|
||||
|
||||
# asks for the destination directory in which the backup should be saved
|
||||
targetdir = input(get_lang_text("targetdir1") + "\n> ")
|
||||
print(f"{get_lang_text('targetdir2_1')} {targetdir} {get_lang_text('targetdir2_2')}")
|
||||
time.sleep(1)
|
||||
# asks for the destination directory in which the backup should be saved
|
||||
targetdir = input(get_lang_text("targetdir1") + "\n> ")
|
||||
print(f"{get_lang_text('targetdir2_1')} {targetdir} {get_lang_text('targetdir2_2')}")
|
||||
time.sleep(1)
|
||||
|
||||
# collects all the information needed to execute the rsync command and creates it.
|
||||
print(get_lang_text("collect") + "\n")
|
||||
time.sleep(1)
|
||||
exclude_file = os.path.join(MYDIR, EXCLUDE_FILE)
|
||||
|
||||
RSYNC_CMD = f"rsync -aqp --exclude-from={exclude_file} {sourcedir} {targetdir}"
|
||||
# collects all the information needed to execute the rsync command and creates it.
|
||||
print(get_lang_text("collect") + "\n")
|
||||
time.sleep(1)
|
||||
exclude_file = os.path.join(MYDIR, EXCLUDE_FILE)
|
||||
|
||||
RSYNC_CMD = f"rsync -aqp --exclude-from={exclude_file} {sourcedir} {targetdir}"
|
||||
|
||||
print(f"{RSYNC_CMD}")
|
||||
time.sleep(1)
|
||||
print(f"{RSYNC_CMD}")
|
||||
time.sleep(1)
|
||||
|
||||
# Outro
|
||||
print(get_lang_text("outro1"))
|
||||
time.sleep(2)
|
||||
print(get_lang_text("outro2") + " " + EMAIL)
|
||||
# Outro
|
||||
print(get_lang_text("outro1"))
|
||||
time.sleep(2)
|
||||
print(get_lang_text("outro2") + " " + EMAIL)
|
||||
|
||||
return True, EXCLUDE, RSYNC_CMD
|
||||
|
||||
except KeyboardInterrupt:
|
||||
trace("Programm interrupted by user.", prefix_crlf=True)
|
||||
return False, None, None
|
||||
|
||||
return True, EXCLUDE, RSYNC_CMD
|
||||
|
||||
def create_exclude_file(directory, exclude_file):
|
||||
exclude_file = os.path.join(directory, exclude_file)
|
||||
|
@ -170,12 +184,6 @@ def main(argv):
|
|||
else:
|
||||
trace("Starting CLI-version.\n")
|
||||
is_finalized, is_exclude, rsync_cmd = main_install_cli() # collect user input via CLI and store in env. variables
|
||||
if is_finalized:
|
||||
print("CLI finalized.")
|
||||
if is_exclude:
|
||||
print("exclude is true.")
|
||||
if rsync_cmd:
|
||||
print("rsync command returned: " + rsync_cmd)
|
||||
|
||||
if is_finalized:
|
||||
do_the_install(is_exclude, rsync_cmd)
|
||||
|
|
Loading…
Reference in a new issue