65 lines
1.3 KiB
Bash
Executable File
65 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_DIR="$(dirname "${SCRIPT_DIR}")"
|
|
|
|
if [[ ! -f "${PROJECT_DIR}/.env" ]]; then
|
|
echo "Erreur : fichier .env introuvable."
|
|
exit 1
|
|
fi
|
|
|
|
set -a
|
|
source "${PROJECT_DIR}/.env"
|
|
set +a
|
|
|
|
IMG_NAME="${HUGO_IMAGE}:v${HUGO_VERSION}"
|
|
|
|
read -rp "Nom du site (exemple: fermebossejauque) : " NEW_SITE_NAME
|
|
|
|
if [[ -z "${NEW_SITE_NAME}" ]]; then
|
|
echo "Erreur : nom du site vide."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -d "${PROJECT_DIR}/${SITE_DIR}" ]] && [[ "$(ls -A "${PROJECT_DIR}/${SITE_DIR}")" ]]; then
|
|
echo "Erreur : ${SITE_DIR} existe déjà et n'est pas vide."
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "${PROJECT_DIR}/${SITE_DIR}"
|
|
|
|
docker pull "${IMG_NAME}"
|
|
|
|
docker run --rm -it \
|
|
--name "${CONTAINER_NAME}-create" \
|
|
--entrypoint /bin/sh \
|
|
-u 0:0 \
|
|
-v "${PROJECT_DIR}:/src" \
|
|
"${IMG_NAME}" \
|
|
-c "
|
|
set -e
|
|
|
|
cd /src
|
|
|
|
hugo new site ${SITE_DIR}
|
|
|
|
cd ${SITE_DIR}
|
|
|
|
hugo mod init ${NEW_SITE_NAME}
|
|
"
|
|
|
|
sed -i "s/^SITE_NAME=.*/SITE_NAME=${NEW_SITE_NAME}/" "${PROJECT_DIR}/.env"
|
|
|
|
sed -i "s/^title = .*/title = \"${NEW_SITE_NAME}\"/" \
|
|
"${PROJECT_DIR}/${SITE_DIR}/hugo.toml"
|
|
|
|
cat >> "${PROJECT_DIR}/${SITE_DIR}/hugo.toml" <<EOF
|
|
theme = "${HUGO_THEME}"
|
|
EOF
|
|
|
|
echo
|
|
echo "Projet créé : ${NEW_SITE_NAME}"
|
|
echo "Pour la suite: .//script/init.sh"
|