From 3bbabc5f81094ac9410a44d332c91576fd5cd119 Mon Sep 17 00:00:00 2001 From: Valentin Korenjak Date: Sun, 8 Mar 2026 22:08:15 +0100 Subject: [PATCH] startup za linux, dodan backup baze (just in case) --- projector.py | 2 +- startup.bat | 48 +++++++++++++++++++++++++++++++++++++++--------- startup.sh | 44 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+), 10 deletions(-) create mode 100755 startup.sh diff --git a/projector.py b/projector.py index 923e9fa..6024e03 100755 --- a/projector.py +++ b/projector.py @@ -193,7 +193,7 @@ class SongProjector: # ------------------------------------------------------ def split_long_line(self, line): """ - Vrne seznam pod‑vrstic, ki skupaj tvorijo `line`, + Vrne seznam pod-vrstic, ki skupaj tvorijo `line`, pri čemer so (približno) enako dolge glede na število znakov. """ avg_char_width = int(self.settings["font_size"]) * 0.57 diff --git a/startup.bat b/startup.bat index fb9e187..0228cec 100644 --- a/startup.bat +++ b/startup.bat @@ -1,25 +1,55 @@ @echo off cls -set "TARGET=%USERPROFILE%\OneDrive\Namizje" +set "TARGET=%USERPROFILE%\OneDrive\Namizje\Projekcije cerkev" +set "BACKUP_DIR=%TARGET%\backup" -:: Najprej preveri ali obstaja mapa Projekcije cerkev +:: Najprej preveri ali obstaja mapa Projekcije cerkev na USB (D:) IF EXIST "D:\Projekcije cerkev" ( - echo Mapa 'Projekcije cerkev' obstaja. - echo Kopiram mapo na namizje... + echo Mapa 'Projekcije cerkev' na USB pogonu obstaja. + + :: 1. Ustvari backup obstoječe baze na namizju, če obstaja + IF EXIST "%TARGET%\songs.db" ( + echo Ustvarjam backup baze... + if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%" + + :: Pridobi timestamp (YYYYMMDD_HHMMSS) + for /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c%%a%%b) + for /f "tokens=1-2 delims=: " %%a in ('time /t') do (set mytime=%%a%%b) + set "TS=%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%" + set "TS=%TS: =0%" + + set "CURRENT_BACKUP=%BACKUP_DIR%\backup_%TS%" + mkdir "%CURRENT_BACKUP%" + + if exist "%TARGET%\settings.conf" copy "%TARGET%\settings.conf" "%CURRENT_BACKUP%\" >nul + if exist "%TARGET%\songs.db" copy "%TARGET%\songs.db" "%CURRENT_BACKUP%\" >nul + + echo Backup ustvarjen v: %CURRENT_BACKUP% + + :: 2. Ohrani samo zadnja 2 backupa (pobriši starejše) + pushd "%BACKUP_DIR%" + for /f "skip=2 delims=" %%F in ('dir /b /ad /o-n backup_*') do ( + echo Brisanje starega backupa: %%F + rd /s /q "%%F" + ) + popd + ) - :: Kopiranje z robocopy - robocopy "D:\Projekcije cerkev" "%TARGET%\Projekcije cerkev" /E + echo Kopiram nove datoteke z USB na namizje... + :: Kopiranje z robocopy (/E - vse podmape, /XO - samo novejše datoteke, da ne povozimo backupa če ni treba) + robocopy "D:\Projekcije cerkev" "%TARGET%" /E echo Zagon projector.py ... - pushd "%TARGET%\Projekcije cerkev" + pushd "%TARGET%" python projector.py popd ) ELSE ( cls + echo USB ključek ni najden. Zagon lokalne verzije... echo Zagon projector.py ... - pushd "%TARGET%\Projekcije cerkev" - python projector.py + pushd "%TARGET%" + py "projekcija\projector.py" popd ) diff --git a/startup.sh b/startup.sh new file mode 100755 index 0000000..7d4ff94 --- /dev/null +++ b/startup.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +# Ciljna mapa na Linuxu (v uporabnikovem home-u) +TARGET="$HOME/Projekcija cerkev" +BACKUP_DIR="$TARGET/backup" + +# Iskanje vira na vseh priklopljenih medijih (USB ključek) +SOURCE=$(find /media/$USER -maxdepth 2 -type d -name "Projekcije cerkev" 2>/dev/null | head -n 1) + +if [ -n "$SOURCE" ]; then + echo "Najden ključek: $SOURCE" + + # 1. Ustvari backup obstoječe baze, če obstaja + if [ -f "$TARGET/songs.db" ]; then + echo "Ustvarjam backup baze..." + mkdir -p "$BACKUP_DIR" + + # Časovni žig po ISO 8601 formatu (npr. 2026-03-08T20:56:42) + TS=$(date +"%Y-%m-%dT%H:%M:%S") + CURRENT_BACKUP="$BACKUP_DIR/backup_$TS" + mkdir -p "$CURRENT_BACKUP" + + [ -f "$TARGET/settings.conf" ] && cp "$TARGET/settings.conf" "$CURRENT_BACKUP/" + [ -f "$TARGET/songs.db" ] && cp "$TARGET/songs.db" "$CURRENT_BACKUP/" + + echo "Backup ustvarjen v: $CURRENT_BACKUP" + + # 2. Ohrani samo zadnja 2 backupa (pobriši starejše) + # ls -dt izpiše mape po času (novejše prej), tail -n +3 pa preskoči prva dva + cd "$BACKUP_DIR" && ls -dt backup_* 2>/dev/null | tail -n +3 | xargs -r rm -rf + fi + + echo "Sinhronizacija datotek z USB v home mapo..." + mkdir -p "$TARGET" + # rsync -av --exclude='backup' sinhronizira vsebino brez backup mape + rsync -av --exclude='backup' "$SOURCE/" "$TARGET/" +fi + +echo "Zagon projector.py..." +if [ -d "$TARGET" ]; then + cd "$TARGET" && projekcija/projector.py +else + echo "Napaka: Mapa $TARGET ne obstaja." +fi