From 19964de3e5c8cd6e7a910b0866225d4f0c89b56f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Sun, 1 Mar 2026 14:45:07 +0100 Subject: [PATCH] feat: add crontab function to automatically run services --- disk-monitor.sh | 17 +++-------------- docker-compose.sh | 12 ++++++++---- utils.sh | 14 ++++++++++++++ 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/disk-monitor.sh b/disk-monitor.sh index 8e55b43..cb388c7 100644 --- a/disk-monitor.sh +++ b/disk-monitor.sh @@ -8,24 +8,13 @@ PROJECT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) readonly PROJECT_DIR 2>/dev/null source $PROJECT_DIR/utils.sh 2>/dev/null -source $ENV_FILE INSTALLED=$1 if [[ "--install" == $INSTALLED ]]; then log_info "disk-monitor Installation" - - if ! command -v crontab >/dev/null 2>&1; then - log_error "Error: crontab not found." - exit 1 - fi - - CRON_JOB="0 3 * * 1 $PROJECT_DIR/disk-monitor.sh" - crontab -l | grep -F "$CRON_JOB" > /dev/null 2>&1 - if ! crontab -l | grep -Fq "$CRON_JOB"; then - (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab - - log_success "Cron job added." - fi - exit 0; + CMD="0 3 * * 1 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin $PROJECT_DIR/disk-monitor.sh" + add_crontab "$CMD" + exit fi usage=80 diff --git a/docker-compose.sh b/docker-compose.sh index 2994932..dc5a1e5 100644 --- a/docker-compose.sh +++ b/docker-compose.sh @@ -12,8 +12,12 @@ if [[ "--install" == $1 ]]; then if [[ -f "$COMPOSE_FILE" ]]; then docker compose -f "$COMPOSE_FILE" up -d --force-recreate --remove-orphans && \ log_success "$COMPOSE_FILE is running."; - - else log_error "no docker-compose.yml found at $PROJECT_DIR"; + CMD="0 0 * * * PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /usr/bin/docker compose --env-file $ENV_FILE -f $PROJECT_DIR/docker-compose.yml pull -q && /usr/bin/docker compose --env-file $ENV_FILE -f $PROJECT_DIR/docker-compose.yml up -d --remove-orphans" + add_crontab "$CMD" + else + log_error "no docker-compose.yml found at $PROJECT_DIR"; fi - exit 0; -fi \ No newline at end of file + exit +fi +COMPOSE_FILE="$(realpath "$PROJECT_DIR/docker-compose.yml")" +docker compose -f "$COMPOSE_FILE" up -d --force-recreate --remove-orphans \ No newline at end of file diff --git a/utils.sh b/utils.sh index 5e0dd62..c588e32 100644 --- a/utils.sh +++ b/utils.sh @@ -68,4 +68,18 @@ function env_variable() { echo "$key=$value" >> "$ENV_FILE" log_success "$key created." fi +} + +function add_crontab() { + if ! command -v crontab >/dev/null 2>&1; then + log_error "Error: crontab not found." + fi + + CRON_JOB=$1 + crontab -l 2>/dev/null | grep -F "$CRON_JOB" > /dev/null 2>&1 + + if ! crontab -l 2>/dev/null | grep -Fq "$CRON_JOB"; then + (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab - + log_success "Cron job added." + fi } \ No newline at end of file