35 lines
1023 B
Bash
Executable File
35 lines
1023 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
CONTENT_DIR="src/content/blogs"
|
|
REPO_URL="https://github.com/cloud-neutral-workshop/knowledge.git"
|
|
|
|
# Ensure we're in the project root
|
|
cd "$(dirname "$0")/.."
|
|
|
|
if [ -d "${CONTENT_DIR}/.git" ]; then
|
|
echo "Updating existing git repo in ${CONTENT_DIR}..."
|
|
git -C "${CONTENT_DIR}" fetch --depth=1 origin main
|
|
git -C "${CONTENT_DIR}" reset --hard origin/main
|
|
git -C "${CONTENT_DIR}" clean -fdx
|
|
exit 0
|
|
fi
|
|
|
|
echo "Syncing content from ${REPO_URL} to ${CONTENT_DIR}..."
|
|
|
|
TMP_DIR=$(mktemp -d)
|
|
trap 'rm -rf "${TMP_DIR}"' EXIT
|
|
|
|
git clone --depth=1 "${REPO_URL}" "${TMP_DIR}/repo"
|
|
|
|
mkdir -p "${CONTENT_DIR}"
|
|
|
|
# Remove existing content but keep the directory
|
|
# Find and delete all files and directories inside CONTENT_DIR, but ignore errors if empty
|
|
find "${CONTENT_DIR}" -mindepth 1 -delete 2>/dev/null || true
|
|
|
|
# Copy content from repo to content dir, excluding .git
|
|
tar -C "${TMP_DIR}/repo" --exclude='.git' -cf - . | tar -C "${CONTENT_DIR}" -xf -
|
|
|
|
echo "Content synced successfully."
|