5 Commits

Author SHA1 Message Date
Adrian Zürcher
9d039b4e2c new entry
All checks were successful
Build Slideshow App / build (amd64, .exe, windows) (push) Successful in 1m57s
Build Slideshow App / build (amd64, , linux) (push) Successful in 2m18s
Build Slideshow App / build (arm, 7, , linux) (push) Successful in 2m3s
Build Slideshow App / build (arm64, , linux) (push) Successful in 1m58s
2026-02-03 14:04:06 +01:00
543383186a .gitea/workflows/build.yml aktualisiert
change name to lower case
2026-02-03 14:02:49 +01:00
Adrian Zürcher
46a56e130f change appname constant to variable
All checks were successful
Build Slideshow App / build (amd64, .exe, windows) (push) Successful in 1m58s
Build Slideshow App / build (amd64, , linux) (push) Successful in 2m16s
Build Slideshow App / build (arm, 7, , linux) (push) Successful in 1m54s
Build Slideshow App / build (arm64, , linux) (push) Successful in 1m56s
2026-02-03 11:28:08 +01:00
Adrian Zürcher
aa900d5e3b fix enviroment bug
All checks were successful
Build Slideshow App / build (amd64, .exe, windows) (push) Successful in 2m11s
Build Slideshow App / build (amd64, , linux) (push) Successful in 2m25s
Build Slideshow App / build (arm, 7, , linux) (push) Successful in 2m16s
Build Slideshow App / build (arm64, , linux) (push) Successful in 2m12s
2026-02-03 09:19:06 +01:00
Adrian Zürcher
91cb3a48f8 fix active ip for all os 2026-02-03 09:18:55 +01:00
5 changed files with 34 additions and 21 deletions

View File

@@ -6,7 +6,7 @@ on:
- '*'
env:
APP_NAME: slideshowApp
APP_NAME: slideshowapp
jobs:
build:
@@ -92,7 +92,7 @@ jobs:
ARCH=${{ matrix.arch }}
if [ "$ARCH" == "arm" ]; then ARCH="armhf"; fi
PKG_NAME="slideshowapp"
PKG_NAME="${APP_NAME}"
BUILD_DIR="${PKG_NAME}_${VERSION}_${ARCH}"
# 2. Create Directory Structure
@@ -120,7 +120,7 @@ jobs:
[Desktop Entry]
Type=Application
Name=Slideshow App
Exec=sh -c 'i=0; while [ $i -lt 30 ]; do if [ "$(ls -A /media/$USER 2>/dev/null)" ] && ping -c 1 -W 1 8.8.8.8 >/dev/null 2>&1; then break; fi; i=$((i+1)); sleep 1; done; cd /usr/share/slideshowapp && /usr/bin/slideshowapp'
Exec=sh -c 'i=0; while [ $i -lt 30 ]; do if [ "$(ls -A /media/$USER 2>/dev/null)" ] && ping -c 1 -W 1 8.8.8.8 >/dev/null 2>&1; then break; fi; i=$((i+1)); sleep 1; done; cd /usr/share/$PKG_NAME && /usr/bin/$PKG_NAME'
Terminal=false
EOF
@@ -151,17 +151,17 @@ jobs:
USER_HOME=$(getent passwd "$REAL_USER" | cut -d: -f6)
echo "Setting permissions for /usr/share/slideshowapp..."
chown -R "$REAL_USER:$REAL_USER" /usr/share/slideshowapp
chmod -R 755 /usr/share/slideshowapp
echo "Setting permissions for /usr/share/$PKG_NAME..."
chown -R "$REAL_USER:$REAL_USER" /usr/share/$PKG_NAME
chmod -R 755 /usr/share/$PKG_NAME
echo "Post-install: Target user is $REAL_USER"
echo "Post-install: Target home is $USER_HOME"
# 2. Setup .env from template
if [ ! -f "/usr/share/slideshowapp/.env" ]; then
if [ ! -f "/usr/share/$PKG_NAME/.env" ]; then
echo "Creating .env from template..."
cp /usr/share/slideshowapp/env.template /usr/share/slideshowapp/.env || true
cp /usr/share/$PKG_NAME/env.template /usr/share/$PKG_NAME/.env || true
fi
# 3. Setup Autostart
@@ -171,11 +171,11 @@ jobs:
if [ -d "$USER_HOME" ]; then
echo "Creating autostart directory at $AUTOSTART_DIR"
mkdir -p "$AUTOSTART_DIR"
cp /usr/share/slideshowapp/setup/slideshowapp.desktop "$AUTOSTART_DIR/"
cp /usr/share/$PKG_NAME/setup/$PKG_NAME.desktop "$AUTOSTART_DIR/"
# Critical: Change ownership of the folder and the file
chown -R "$REAL_USER:$REAL_USER" "$USER_HOME/.config"
chmod 644 "$AUTOSTART_DIR/slideshowapp.desktop"
chmod 644 "$AUTOSTART_DIR/$PKG_NAME.desktop"
else
echo "ERROR: Home directory $USER_HOME not found. Autostart not configured."
fi

2
.gitignore vendored
View File

@@ -1,4 +1,6 @@
images/
slideshowApp
slideshowapp
schedule.json
*.log
*.exe

10
env/enviroment.go vendored
View File

@@ -26,11 +26,13 @@ func Load(path string) error {
}
func (key EnvKey) GetValue() string {
port := os.Getenv(string(key))
if port == "" {
port = "8080"
keyStr := string(key)
value := os.Getenv(keyStr)
if key == Port && value == "" {
value = "8080"
}
return port
return value
}
func (key EnvKey) SetValue(value string) {

View File

@@ -20,15 +20,24 @@ func GetLocalIP() string {
}
func getActiveIP() string {
conn, err := net.Dial("udp", "8.8.8.8:80")
addrs, err := net.InterfaceAddrs()
if err != nil {
return ""
}
defer conn.Close()
addr := conn.LocalAddr()
if udpAddr, ok := addr.(*net.UDPAddr); ok {
return udpAddr.IP.String()
for _, address := range addrs {
if ipnet, ok := address.(*net.IPNet); ok && !ipnet.IP.IsLoopback() {
if ipnet.IP.To4() != nil {
ipStr := ipnet.IP.String()
if ipnet.IP.IsLinkLocalUnicast() {
continue
}
return ipStr
}
}
}
return ""
}