diff --git a/src/Handler.php b/src/Handler.php index a0b4882b84187c09869bc2383651bcfff8e83c85..1aa0d84f10a93b7eb24732590e1c7436188bec03 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -244,11 +244,12 @@ class Handler extends BaseHandler { $traefik = $this->config->readValue('traefik'); $traefik['usessl'] = 1; $traefik['ports'] = 443; + $crontabs = $this->config->readValue('crontabs'); if ($this->config->readValue(['backup', 'enable'])) { - $crontabs = $this->config->readValue('crontabs'); $crontabs['www-data'][] = '5 0 * * * cd /var/www/html && /usr/local/bin/drush sql:dump --result-file=/var/backups/mysql/drupal.sql'; - $this->config->setValue('crontabs', $crontabs, FALSE); } + $crontabs['enable'] = (array_sum(array_map('count', $crontabs)) > 0); + $this->config->setValue('crontabs', $crontabs, FALSE); $overwriteConfig = [ 'staging' => !in_array(getenv('PROJECT_BRANCH_SANITIZED'), ['master', 'main'], TRUE), 'docker0' => [ @@ -325,6 +326,12 @@ class Handler extends BaseHandler { } $filename = $this->config->render($template, $template); $file = $def['dest'] . '/' . $filename; + if (!empty($def['delete'])) { + if ($fs->exists($file)) { + $fs->remove($file); + } + continue; + } if (($overwrite && empty($def['add2git'])) || !$fs->exists($file)) { $source = isset($def['source']) && is_file($pluginRoot . '/templates/' . $def['source']) ? $pluginRoot . '/templates/' . $def['source'] : @@ -508,11 +515,19 @@ class Handler extends BaseHandler { 'condition' => $this->config->readValue(['backup', 'enable']), ]; foreach ($this->config->readValue('crontabs') ?? [] as $user => $tasks) { - $files[$user] = [ - 'source' => 'crontabs/template.twig', - 'dest' => $projectRoot . '/crontabs', - 'options' => $tasks, - ]; + if (empty($tasks)) { + $files[$user] = [ + 'dest' => $projectRoot . '/crontabs', + 'delete' => TRUE, + ]; + } + else { + $files[$user] = [ + 'source' => 'crontabs/template.twig', + 'dest' => $projectRoot . '/crontabs', + 'options' => $tasks, + ]; + } } } return $files; diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig index 626136f53beaaaaeb8a1cbae2820117ba818cb27..c2753050d875edb73db76095df89a19271076c96 100644 --- a/templates/docker-compose.yml.twig +++ b/templates/docker-compose.yml.twig @@ -101,7 +101,7 @@ services: {% for subdomain in relatedprojectdomains %} - '{{ subdomain }}:{{ docker0.ip }}' {% endfor %} -{% if drupal.live|default(0) %} +{% if crontabs.enable|default(0) %} cron: image: 'wodby/drupal-php:{{ php.version }}'