#!/usr/bin/env python3 # Dependencies import os import time # Variables MYDIR = os.getcwd() SHELL = os.environ.get("SHELL") HOME = os.environ.get("HOME") # Intro # language language = input("Hello, first of all, which language do you prefer: German [DE] or English [EN]?\n> ") if language.upper() == "DE": from languages.german import * print("Perfekt, nun ist das deutsche Sprachpaket aktiviert. Willkommen!\n") else: from languages.english import * print("Perfect, the English language package is now activated. Welcome!.\n") time.sleep(1) print("\n" + intromsg1 + "\n") time.sleep(1) print("\n" + intromsg2 + "\n") time.sleep(1) # Installer # creates the file 'Backuppy.sh' fBackuppy = open("Backuppy.sh", "w") fBackuppy.write("#!/bin/bash") os.chmod("Backuppy.sh", 0o777) # make file executable # which Rsync options are available and which one you want to use print(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(excludefile1 + "\n> ") if exclude.upper() in ("J", "Y"): print(excludefile2 + "\n") fExclude = open("exclude.txt", "w") fExclude.close() else: print(excludefile3 + "\n") time.sleep(1) # Asks for the source directory which should be saved print(srcdir1) time.sleep(1) sourcedir = input(srcdir2 + "\n> ") print(f"{srcdir3_1} {sourcedir} {srcdir3_2}") time.sleep(1) # asks for the destination directory in which the backup should be saved targetdir = input(targetdir1 + "\n> ") print(f"{targetdir2_1} {targetdir} {targetdir2_2}") time.sleep(1) # alias entry in .bashrc or .zshrc print(SHELL) # .zshrc case1 and case2 if SHELL.upper().find("ZSH") >0: # Appending to bash config file fRc = open(os.path.join(HOME, ".zshrc"), "a") # append mode fRc.write("\n" + f"alias backuppy='sudo {MYDIR}/Backuppy.sh'" + "\n") fRc.close() # .bashrc case1 and case2 elif SHELL.upper().find("BASH") >0: # Appending to zsh config file fRc = open(os.path.join(HOME, ".bashrc"), "a") # append mode fRc.write("\n" + f"alias backuppy='sudo {MYDIR}/Backuppy.sh'" + "\n") fRc.close() # collects all the information needed to execute the rsync command and creates it. print(collect + "\n") time.sleep(1) print(f"rsync -aqp --exclude-from={MYDIR}/exclude.txt {sourcedir} {targetdir}\n") time.sleep(1) # enter the rsync command in Backuppy.sh fBackuppy.write("\n" + f"rsync -aqp --exclude-from={MYDIR}/exclude.txt {sourcedir} {targetdir}" + "\n") fBackuppy.close() # Outro print(outro1) time.sleep(2) print(outro2 + " fotocoder@joschu.ch")