Fix env parsing for variables with spaces

This commit is contained in:
ViViDboarder 2019-02-01 17:02:13 -08:00
parent 963815c47b
commit 53e306d884
2 changed files with 6 additions and 5 deletions

View File

@ -1,10 +1,11 @@
#! /bin/bash #! /bin/bash
ENV=/env ENV=/env.sh
LOG=/cron.log LOG=/cron.log
HEALTH_FILE=/unhealthy HEALTH_FILE=/unhealthy
test -f $ENV || echo NO_ENV=true > $ENV touch $ENV
source $ENV
# Execute command and write output to log # Execute command and write output to log
env `cat $ENV | xargs` $@ 2>> $LOG && rm -f $HEALTH_FILE || { touch $HEALTH_FILE; exit 1; } $@ 2>> $LOG && rm -f $HEALTH_FILE || { touch $HEALTH_FILE; exit 1; }

View File

@ -28,9 +28,9 @@ fi
if [ -n "$CRON_SCHEDULE" ]; then if [ -n "$CRON_SCHEDULE" ]; then
# Export the environment to a file so it can be loaded from cron # Export the environment to a file so it can be loaded from cron
env > /env env | sed 's/^\(.*\)=\(.*\)$/export \1="\2"/g' > /env.sh
# Remove some vars we don't want to keep # Remove some vars we don't want to keep
sed -i '/\(HOSTNAME\|affinity\|SHLVL\|PWD\)/d' /env sed -i '/\(HOSTNAME\|affinity\|SHLVL\|PWD\)/d' /env.sh
# Use bash for cron # Use bash for cron
echo "SHELL=/bin/bash" > /crontab.conf echo "SHELL=/bin/bash" > /crontab.conf