diff --git a/README.md b/README.md index 4616e0a..bdb0b6c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Dies erzeugt ein neues GIT Repository auf ein Asustor NAS (Only GIT installed). ## Version - V 1.2 + V 1.2.1 ## Installation @@ -12,7 +12,15 @@ Dies erzeugt ein neues GIT Repository auf ein Asustor NAS (Only GIT installed). ## Changelog -### V 1.1 **(WIP)** +### V 1.2.1 **(WIP)** +- `main.py` + - Added " " zu "_" und Illigale Zeichen abfangen + - Ackknowlege vom User bekommen + - Added Try-Except block um SSH Ausführung + - **TODO:** User abfangen wenn Remote nicht erkennt. + - **TODO:** History einbauen + +### V 1.2 **(WIP)** - `main.py` - Added Remote Adresse zu ändern (Local & Public) - Added Multiuser diff --git a/main.py b/main.py index 6088692..86016c3 100644 --- a/main.py +++ b/main.py @@ -1,13 +1,25 @@ import subprocess +import socket -username = input("Hallo, wie lautet ihr anmelde Namen? (achte auf Groß und Kleinschrift): ") -hostname = input(f"Super, {username}. Jetzt bräuchte ich noch die Remote-adresse: ") +username = input("Hallo, wie lautet ihr Username? (Achte bitte auf Groß und Kleinschrift): ") +hostname = input(f"\nSuper, {username}. Jetzt bräuchte ich noch die Remote-adresse: ") port= "22" -port = input(f"Standartport {port} nutzen? (y/j/PORT-Nr) ") -if port.lower() in ["ja","j","y"]: +port = input(f"\nStandartport {port} nutzen? (y/j/PORT-Nr) ") +if port.lower() in ["ja","j","y"] or not port.isdigit(): port= "22" -project_name = input("Perfekt, gibt mir bitte noch den Projektnamen: ") +iligal_signs = "/\\\"[]{}%&§=<>|" +ili_signs_tab = str.maketrans(iligal_signs,"-" * len(iligal_signs)) +project_name = input("\nPerfekt, gibt mir bitte noch den Projektnamen (Leerzeichen werden automatisch zu _ ersetzt): ") +project_name= project_name.replace(" ","_") +project_name= project_name.translate(ili_signs_tab) + +ack = input(f"\nOkay > {username} <, bitte prüfe ob der Name so richtig ist: > {project_name} <\nfür den Host > {hostname} < auf dem Port > {port} < (y/n)? ") +if ack.lower() == "y" or ack.lower() == "j": + print("\nSuper, ich lege los!") +else: + exit() + # Befehle für die SSH-Verbindung commands = [ @@ -31,12 +43,27 @@ commands = [ ] # SSH-Verbindung herstellen und Befehle ausführen -command_string = " && ".join(commands) -subprocess.run(["ssh", "-p", port, f"{username}@{hostname}", command_string]) -print("Bitte gehe selber per ssh auf das nas um ein >git push origin master< zu machen um das vollständig ab zu schließen") -print(f"cd share/Public/git/{project_name}") -print("git push origin master") -print(f'git clone "ssh://yannick@192.168.2.106/share/Public/git/{project_name}.git"') +try: + socket.gethostbyname(hostname) +except socket.gaierror as e: + print(f"Fehler beim Auflösen des Hostnames: {e}") +else: + try: + # TODO User abfangen wenn nicht existent + # command = f"ssh -p {port} {username}@{hostname} echo" + # completed_process = subprocess.run(command,shell=True,capture_output=True) + # if completed_process.returncode == 0: + # pass + # else: + # print(f"Der Benutzer {username} exsistiert nicht auf dem Server: {hostname}") + # exit() -# Temporäre Datei entfernen (nicht erforderlich, da direkt übergeben) -# subprocess.run(["del", "commands.sh"], shell=True) + command_string = " && ".join(commands) + subprocess.run(["ssh", "-p", port, f"{username}@{hostname}", command_string]) + print("Bitte gehe nun selber via ssh, etc. zum Git Repos, um ein >git push origin master< zu machen um das vollständig ab zu schließen") + print("Hier sind Hilfreiche Befehle:") + print(f"\ncd share/Public/git/{project_name}") + print("\ngit push origin master") + print(f'\ngit clone "ssh://yannick@192.168.2.106/share/Public/git/{project_name}.git"') + except subprocess.CalledProcessError as e: + print(f"Leider ist da was Fehlgeschlagen: {e}")