startup za linux, dodan backup baze (just in case)

This commit is contained in:
2026-03-08 22:08:15 +01:00
parent b779f49556
commit 3bbabc5f81
3 changed files with 84 additions and 10 deletions

View File

@@ -193,7 +193,7 @@ class SongProjector:
# ------------------------------------------------------
def split_long_line(self, line):
"""
Vrne seznam podvrstic, 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

View File

@@ -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.
:: Kopiranje z robocopy
robocopy "D:\Projekcije cerkev" "%TARGET%\Projekcije cerkev" /E
:: 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
)
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
)

44
startup.sh Executable file
View File

@@ -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