11#! /bin/sh
2+
3+ # Handle PUID/PGID
4+ if [ " $PUID " != " 0" ] && [ " $PGID " != " 0" ]; then
5+ echo " [setup] Setting up user with PUID=$PUID and PGID=$PGID "
6+
7+ # Create group if it doesn't exist
8+ if ! getent group explo > /dev/null 2>&1 ; then
9+ groupadd -g " $PGID " explo
10+ fi
11+
12+ # Create user if it doesn't exist
13+ if ! getent passwd explo > /dev/null 2>&1 ; then
14+ useradd -u " $PUID " -g " $PGID " -d /opt/explo -s /bin/sh explo
15+ fi
16+
17+ # Ensure explo user owns the working directory and data directory
18+ chown -R explo:explo /opt/explo
19+ [ -d /data ] && chown -R explo:explo /data
20+
21+ # If running as non-root, exec as the explo user
22+ if [ " $( id -u) " = " 0" ]; then
23+ exec su-exec explo " $0 " " $@ "
24+ fi
25+ fi
26+
227echo " [setup] Initializing cron jobs..."
328
429
530# $CRON_SHCEDULE was deprecated in v0.11.0, keeping this block for backwards compatibility
631if [ -n " $CRON_SCHEDULE " ]; then
7- echo " $CRON_SCHEDULE apk add --upgrade yt-dlp && cd /opt/explo && ./explo >> /proc/1/fd/1 2>&1" > /etc/crontabs/root
8- chmod 600 /etc/crontabs/root
32+ cmd=" apk add --upgrade yt-dlp && cd /opt/explo && ./explo >> /proc/1/fd/1 2>&1"
33+ echo " $CRON_SCHEDULE $cmd " > " /var/spool/cron/crontabs/$CRON_USER "
34+ chmod 600 " /var/spool/cron/crontabs/$CRON_USER "
935 echo " [setup] Registered single CRON_SCHEDULE job: $CRON_SCHEDULE "
1036 crond -f -l 2
1137fi
@@ -25,13 +51,13 @@ for var in $(env | grep "_SCHEDULE=" | cut -d= -f1); do
2551 # Default: just run explo if flags are empty
2652 cmd=" apk add --upgrade yt-dlp && cd /opt/explo && ./explo $flags >> /proc/1/fd/1 2>&1"
2753
28- echo " $schedule $cmd " >> /etc/ crontabs/root
54+ echo " $schedule $cmd " >> " /var/spool/cron/ crontabs/$CRON_USER "
2955 echo " [setup] Registered job: $job "
3056 echo " Schedule: $schedule "
3157 echo " Command : ./explo $flags "
3258done
3359
34- chmod 600 /etc/ crontabs/root
60+ chmod 600 " /var/spool/cron/ crontabs/$CRON_USER "
3561
3662echo " [setup] Starting cron..."
3763
0 commit comments