Add monthly-bvn-build.sh implementing environment variables
This commit is contained in:
123
monthly-bvn-build.sh
Normal file
123
monthly-bvn-build.sh
Normal file
@@ -0,0 +1,123 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user