remmina_sync.sh hinzugefügt
This commit is contained in:
parent
d618b765b1
commit
bbbc865663
|
|
@ -0,0 +1,127 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Konfiguration
|
||||||
|
GIT_SERVER="gitea.zell-cloud.de"
|
||||||
|
GIT_PORT="3000"
|
||||||
|
GIT_USER="sebastian.zell"
|
||||||
|
REPO_NAME="remmina"
|
||||||
|
LOCAL_DIR="$HOME/.local/share/remmina"
|
||||||
|
REMOTE_REPO="git@gitea.zell-cloud.de:${GIT_USER}/${REPO_NAME}.git"
|
||||||
|
CRON_FILE="/etc/cron.d/remmina_sync"
|
||||||
|
|
||||||
|
# Funktion: SSH-Schlüssel erstellen und konfigurieren
|
||||||
|
setup_ssh_key() {
|
||||||
|
echo "Prüfe, ob ein SSH-Schlüssel existiert..."
|
||||||
|
if [ ! -f "$HOME/.ssh/id_ed25519" ]; then
|
||||||
|
echo "Kein SSH-Schlüssel gefunden. Erstelle einen neuen..."
|
||||||
|
ssh-keygen -t ed25519 -C "$GIT_USER@gitea.zell-cloud.de" -f "$HOME/.ssh/id_ed25519" -N ""
|
||||||
|
chmod 600 "$HOME/.ssh/id_ed25519"
|
||||||
|
chmod 644 "$HOME/.ssh/id_ed25519.pub"
|
||||||
|
echo "SSH-Schlüssel erfolgreich erstellt."
|
||||||
|
|
||||||
|
echo "Öffentlicher Schlüssel (bitte in Gitea einfügen):"
|
||||||
|
cat "$HOME/.ssh/id_ed25519.pub"
|
||||||
|
|
||||||
|
echo "Gehe zu Gitea -> Profil -> Einstellungen -> SSH-Schlüssel und füge den Schlüssel ein."
|
||||||
|
read -rp "Drücke ENTER, sobald der Schlüssel hinzugefügt wurde, um fortzufahren."
|
||||||
|
else
|
||||||
|
echo "SSH-Schlüssel bereits vorhanden."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# SSH-Agent starten und Schlüssel hinzufügen
|
||||||
|
eval "$(ssh-agent -s)"
|
||||||
|
ssh-add "$HOME/.ssh/id_ed25519"
|
||||||
|
echo "SSH-Schlüssel wurde dem SSH-Agent hinzugefügt."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion: Repository erstellen falls nicht vorhanden
|
||||||
|
setup_git_repo() {
|
||||||
|
echo "Prüfe, ob Git-Repository existiert..."
|
||||||
|
if [ ! -d "$LOCAL_DIR/.git" ]; then
|
||||||
|
echo "Kein lokales Repository gefunden. Initialisiere..."
|
||||||
|
mkdir -p "$LOCAL_DIR"
|
||||||
|
cd "$LOCAL_DIR"
|
||||||
|
git init
|
||||||
|
git checkout -b main
|
||||||
|
touch README.md
|
||||||
|
git add README.md
|
||||||
|
git commit -m "Initial commit"
|
||||||
|
git remote add origin "$REMOTE_REPO"
|
||||||
|
git push -u origin main
|
||||||
|
else
|
||||||
|
echo "Lokales Repository vorhanden."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion: Dateien synchronisieren
|
||||||
|
sync_git_repo() {
|
||||||
|
echo "Synchronisiere Repository..."
|
||||||
|
cd "$LOCAL_DIR" || exit
|
||||||
|
git fetch origin
|
||||||
|
echo "Änderungen im Remote-Repository laden..."
|
||||||
|
git diff --name-status origin/main || echo "Keine Änderungen im Remote-Repository."
|
||||||
|
git reset --hard origin/main
|
||||||
|
echo "Lade Änderungen hoch..."
|
||||||
|
git add .
|
||||||
|
git commit -m "Automatische Synchronisation" || echo "Nichts zu committen."
|
||||||
|
git push origin main
|
||||||
|
echo "Synchronisation abgeschlossen."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion: Cron-Job einrichten
|
||||||
|
setup_cron_job() {
|
||||||
|
echo "Richte Cron-Job ein..."
|
||||||
|
CRON_CMD="0 * * * * $USER $(which bash) $HOME/remmina_sync.sh > /dev/null 2>&1"
|
||||||
|
echo "$CRON_CMD" | crontab -
|
||||||
|
echo "Cron-Job eingerichtet."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion: Remmina-Hook einrichten
|
||||||
|
setup_remmina_hook() {
|
||||||
|
echo "Richte Remmina-Hook ein..."
|
||||||
|
HOOK_SCRIPT="$LOCAL_DIR/sync_remmina_hook.sh"
|
||||||
|
echo "#!/bin/bash" > "$HOOK_SCRIPT"
|
||||||
|
echo "$(which bash) $HOME/remmina_sync.sh" >> "$HOOK_SCRIPT"
|
||||||
|
chmod +x "$HOOK_SCRIPT"
|
||||||
|
echo "Remmina-Hook eingerichtet: $HOOK_SCRIPT"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Menü anzeigen
|
||||||
|
show_menu() {
|
||||||
|
echo "Bitte wähle eine Option:"
|
||||||
|
echo "1) SSH-Schlüssel einrichten"
|
||||||
|
echo "2) Einmalige Synchronisation"
|
||||||
|
echo "3) Cron-Job einrichten"
|
||||||
|
echo "4) Remmina-Hook einrichten"
|
||||||
|
echo "5) Git-Repository erstellen"
|
||||||
|
echo "6) Beenden"
|
||||||
|
read -rp "Deine Auswahl: " choice
|
||||||
|
case $choice in
|
||||||
|
1)
|
||||||
|
setup_ssh_key
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
sync_git_repo
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
setup_cron_job
|
||||||
|
;;
|
||||||
|
4)
|
||||||
|
setup_remmina_hook
|
||||||
|
;;
|
||||||
|
5)
|
||||||
|
setup_git_repo
|
||||||
|
;;
|
||||||
|
6)
|
||||||
|
echo "Beendet."
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Ungültige Auswahl."
|
||||||
|
show_menu
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Hauptablauf
|
||||||
|
show_menu
|
||||||
Loading…
Reference in New Issue