124 lines
3.6 KiB
Bash
124 lines
3.6 KiB
Bash
#!/bin/bash
|
|
|
|
# -----
|
|
# Add "# " to lines ": << 'EOF'" and "EOF" (simplified script)
|
|
# == AND ==
|
|
# remove "# " from lines "# : << 'EOF'" and "# EOF" (advanced script)
|
|
# to toggle Logging Feature. Reverse to toggle back.
|
|
# -----
|
|
|
|
: << 'EOF'
|
|
# Simplified script without logging feature
|
|
|
|
# Dynamically ensure correct pwd
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
|
|
# Load environment variables from .env.monthly-bvn-build
|
|
source .env.monthly-bvn-build 2>/dev/null
|
|
export LOCAL_BVN_REPO_PATH GIT_BRANCH SITE_DIR_PATH LOG_PATH
|
|
|
|
# Ensure log dir exists (silent)
|
|
mkdir -p "$(dirname "$LOG_PATH")"
|
|
|
|
# Update repo via HTTPS (public repo, no auth needed)
|
|
git pull origin "$GIT_BRANCH" || true
|
|
|
|
# Remove 11ty build artifacts
|
|
rm -rf "${SITE_DIR_PATH}"
|
|
|
|
# Rebuild static site
|
|
npx @11ty/eleventy
|
|
EOF
|
|
|
|
# ----------
|
|
|
|
# : << 'EOF'
|
|
# Advanced script with logging feature added
|
|
#!/bin/bash
|
|
|
|
# Disable auto-exit for custom handling (add set -e if desired)
|
|
set +e
|
|
|
|
# Dynamically ensure correct pwd (no logging yet, as LOG_PATH undefined)
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
exit_code=$?
|
|
if [ $exit_code -ne 0 ]; then
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - ERROR: cd to script directory failed with code $exit_code" >&2
|
|
exit $exit_code
|
|
fi
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - cd to script directory: SUCCESS" >&2
|
|
|
|
# Load environment variables from .env.monthly-bvn-build (log to stderr for this step)
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - Starting source .env.monthly-bvn-build" >&2
|
|
source .env.monthly-bvn-build 2>/dev/null
|
|
export LOCAL_BVN_REPO_PATH GIT_BRANCH SITE_DIR_PATH LOG_PATH
|
|
exit_code=$?
|
|
if [ $exit_code -eq 0 ] && [ -n "$LOCAL_BVN_REPO_PATH" ] && [ -n "$GIT_BRANCH" ] && [ -n "$SITE_DIR_PATH" ] && [ -n "$LOG_PATH" ]; then
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - Source .env.monthly-bvn-build: SUCCESS (base: $LOCAL_BVN_REPO_PATH, log: $LOG_PATH)" >&2
|
|
else
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - Source .env.monthly-bvn-build: FAILURE (code $exit_code or missing vars) - Aborting" >&2
|
|
exit $exit_code
|
|
fi
|
|
|
|
# Ensure log dir exists (silent)
|
|
mkdir -p "$(dirname "$LOG_PATH")"
|
|
|
|
# Now define log function, as LOG_PATH is set
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - === BUILD START -- Log: $LOG_PATH ===" >> "$LOG_PATH"
|
|
|
|
log_step() {
|
|
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$LOG_PATH"
|
|
}
|
|
|
|
log_exit() {
|
|
echo "--------------------------------" >> "$LOG_PATH"
|
|
}
|
|
|
|
# Log the successful setup to the file
|
|
log_step ".env.monthly-bvn-build loaded successfully: $LOG_PATH"
|
|
|
|
# Log environment details
|
|
log_step "Environment: GIT_BRANCH=$GIT_BRANCH, LOCAL_BVN_REPO_PATH=$LOCAL_BVN_REPO_PATH, SITE_DIR_PATH=$SITE_DIR_PATH"
|
|
|
|
# Update repo from correct branch (non-fatal, HTTPS public)
|
|
log_step "Starting git pull from $GIT_BRANCH (HTTPS public repo)"
|
|
git pull "$GIT_REPO" "$GIT_BRANCH" || true
|
|
exit_code=$?
|
|
if [ $exit_code -eq 0 ]; then
|
|
log_step "git pull: SUCCESS"
|
|
else
|
|
log_step "git pull: FAILURE (code $exit_code, but continuing)"
|
|
fi
|
|
|
|
# Remove 11ty build artifacts
|
|
log_step "Starting rm -rf ${SITE_DIR_PATH}"
|
|
rm -rf "${SITE_DIR_PATH}"
|
|
exit_code=$?
|
|
if [ $exit_code -eq 0 ]; then
|
|
log_step "rm -rf ${SITE_DIR_PATH}: SUCCESS"
|
|
else
|
|
log_step "rm -rf ${SITE_DIR_PATH}: FAILURE (code $exit_code)"
|
|
log_exit
|
|
exit $exit_code
|
|
fi
|
|
|
|
# Rebuild static site
|
|
log_step "Starting npx @11ty/eleventy"
|
|
npx @11ty/eleventy
|
|
exit_code=$?
|
|
if [ $exit_code -eq 0 ]; then
|
|
log_step "npx @11ty/eleventy: SUCCESS - Rebuild complete"
|
|
else
|
|
log_step "npx @11ty/eleventy: FAILURE (code $exit_code)"
|
|
log_exit
|
|
exit $exit_code
|
|
fi
|
|
|
|
# Overall script completion
|
|
log_step "Script completed successfully"
|
|
log_step "=== BUILD END: $(date '+%Y-%m-%d %H:%M:%S') ==="
|
|
log_exit
|
|
exit 0
|
|
|
|
# EOF
|