diff --git a/scripts/deploy.sh b/scripts/deploy.sh index bb76121..ea8c2d8 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -23,13 +23,14 @@ server { } NGINXCONF - trap 'git -C /opt/hantim restore "docker/nginx/conf.d/$APP.conf" 2>/dev/null || rm -f "/opt/hantim/docker/nginx/conf.d/$APP.conf"' EXIT + trap 'git -C /opt/hantim restore "docker/nginx/conf.d/$APP.conf" 2>/dev/null || rm -f "/opt/hantim/docker/nginx/conf.d/$APP.conf"; docker exec nginx nginx -t && docker exec nginx nginx -s reload' EXIT docker exec nginx nginx -t && docker exec nginx nginx -s reload certbot certonly --webroot -w /opt/hantim/docker/nginx/certbot/www \ --non-interactive --agree-tos -m timothykim@fastmail.fm \ --cert-name "$APP" -d "$APP" -d "www.$APP" git -C /opt/hantim restore "docker/nginx/conf.d/$APP.conf" 2>/dev/null || rm -f "/opt/hantim/docker/nginx/conf.d/$APP.conf" trap - EXIT + docker exec nginx nginx -t && docker exec nginx nginx -s reload echo "Certificate issued for $APP" exit 0 fi diff --git a/tools/app.sh b/tools/app.sh index 88a98a6..5e6d045 100755 --- a/tools/app.sh +++ b/tools/app.sh @@ -253,16 +253,22 @@ cmd_repo() { } cmd_files() { + local all_exist=true for f in "docker/$APP/compose.yml" ".gitea/workflows/deploy-$APP.yml" "docker/nginx/conf.d/$APP.conf"; do - if [ -e "$REPO_ROOT/$f" ]; then - echo "Error: $f already exists." - exit 1 + if [ ! -e "$REPO_ROOT/$f" ]; then + all_exist=false + break fi done + if [ "$all_exist" = true ]; then + echo " All files already exist, skipping." + return + fi - echo "==> Creating docker/$APP/compose.yml..." - mkdir -p "$REPO_ROOT/docker/$APP" - cat > "$REPO_ROOT/docker/$APP/compose.yml" < Creating docker/$APP/compose.yml..." + mkdir -p "$REPO_ROOT/docker/$APP" + cat > "$REPO_ROOT/docker/$APP/compose.yml" < Creating .gitea/workflows/deploy-$APP.yml..." - mkdir -p "$REPO_ROOT/.gitea/workflows" - cat > "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" <<'OUTER' + if [ ! -e "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" ]; then + echo "==> Creating .gitea/workflows/deploy-$APP.yml..." + mkdir -p "$REPO_ROOT/.gitea/workflows" + cat > "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" <<'OUTER' name: Deploy APP_PLACEHOLDER on: @@ -299,10 +309,14 @@ jobs: chmod 600 ~/.ssh/deploy_key ssh -o StrictHostKeyChecking=yes -i ~/.ssh/deploy_key deploy@${{ vars.DEPLOY_HOST }} deploy-APP_PLACEHOLDER OUTER - sed -i "s/APP_PLACEHOLDER/$APP/g" "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" + sed -i "s/APP_PLACEHOLDER/$APP/g" "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" + else + echo " .gitea/workflows/deploy-$APP.yml already exists, skipping." + fi - echo "==> Creating docker/nginx/conf.d/$APP.conf..." - cat > "$REPO_ROOT/docker/nginx/conf.d/$APP.conf" < Creating docker/nginx/conf.d/$APP.conf..." + cat > "$REPO_ROOT/docker/nginx/conf.d/$APP.conf" < Creating docker/$name/compose.yml..." - mkdir -p "$REPO_ROOT/docker/$name" - touch "$REPO_ROOT/docker/$name/.gitignore" - cat > "$REPO_ROOT/docker/$name/compose.yml" < Creating docker/$name/compose.yml..." + mkdir -p "$REPO_ROOT/docker/$name" + touch "$REPO_ROOT/docker/$name/.gitignore" + cat > "$REPO_ROOT/docker/$name/compose.yml" < Creating .gitea/workflows/deploy-$name.yml..." - mkdir -p "$REPO_ROOT/.gitea/workflows" - cat > "$REPO_ROOT/.gitea/workflows/deploy-$name.yml" <<'OUTER' + if [ ! -e "$REPO_ROOT/.gitea/workflows/deploy-$name.yml" ]; then + echo "==> Creating .gitea/workflows/deploy-$name.yml..." + mkdir -p "$REPO_ROOT/.gitea/workflows" + cat > "$REPO_ROOT/.gitea/workflows/deploy-$name.yml" <<'OUTER' name: Deploy APP_PLACEHOLDER on: @@ -201,7 +213,10 @@ jobs: chmod 600 ~/.ssh/deploy_key ssh -o StrictHostKeyChecking=yes -i ~/.ssh/deploy_key deploy@${{ vars.DEPLOY_HOST }} deploy-APP_PLACEHOLDER OUTER - sed -i "s/APP_PLACEHOLDER/$name/g" "$REPO_ROOT/.gitea/workflows/deploy-$name.yml" + sed -i "s/APP_PLACEHOLDER/$name/g" "$REPO_ROOT/.gitea/workflows/deploy-$name.yml" + else + echo " .gitea/workflows/deploy-$name.yml already exists, skipping." + fi echo "" echo "Done. Edit docker/$name/compose.yml, then commit and push."