diff --git a/README.md b/README.md index efb7bb9..ae5ff10 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,11 @@ Dies erzeugt ein neues GIT Repository auf ein Asustor NAS (Only GIT installed). ## Version - V 1.1 + V 1.2.2 + +## TODO +- **TODO:** User abfangen wenn Remote nicht erkennt. +- **TODO:** History einbauen ## Installation @@ -12,6 +16,25 @@ Dies erzeugt ein neues GIT Repository auf ein Asustor NAS (Only GIT installed). ## Changelog +### V 1.2.2 **(WIP)** +- `main.py` + - Added username and mail support + + +### 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 + - Added Port ändern + ### V 1.1 - `README.md` erstellt - `main.py` -> Tippfehler korrigiert diff --git a/main.py b/main.py index 7b840dc..49e2b61 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,27 @@ import subprocess +import socket + +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"\nStandartport {port} nutzen? (y/j/PORT-Nr) ") +if port.lower() in ["ja","j","y"] or not port.isdigit(): + port= "22" + +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!") + name = input("Wie ist dein Name für den Remotehost? ") + mail = input("Wie ist deine E-Mail für den Remotehost? ") +else: + exit() -project_name = input("Geben Sie den Projektnamen ein: ") -hostname = "192.168.2.106" -username = "yannick" -port = "22" # Anpassen, falls ein anderer Port verwendet wird # Befehle für die SSH-Verbindung commands = [ @@ -18,8 +36,8 @@ commands = [ "cd ../", f"cd {project_name}", "git init", - 'git config --global user.email "y-esser@t-online.de"', - 'git config --global user.name "Yannick"', + f'git config --global user.email "{mail}"', + f'git config --global user.name "{name}"', "touch README.txt", "git add .", 'git commit -am "INIT"', @@ -27,12 +45,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}")