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