Clone templates from git by default
This commit is contained in:
@@ -6,7 +6,7 @@ One command that composes a project from the templates in this organization: `in
|
|||||||
newproject ~/projects/my-thing
|
newproject ~/projects/my-thing
|
||||||
```
|
```
|
||||||
|
|
||||||
Templates are read from `$TEMPLATES_DIR` (default `~/projects/templates`). Every part updates independently:
|
Templates are cloned from `https://git.kotikot.com/templates` by default; set `TEMPLATES_DIR` to a directory with local checkouts to work on the templates themselves. Every part updates independently:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
copier update -a .copier-answers.backend.yml
|
copier update -a .copier-answers.backend.yml
|
||||||
|
|||||||
+9
-5
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
TEMPLATES="${TEMPLATES_DIR:-$HOME/projects/templates}"
|
TEMPLATES="${TEMPLATES_DIR:-https://git.kotikot.com/templates}"
|
||||||
dest="${1:?usage: newproject <dest> [copier options]}"
|
dest="${1:?usage: newproject <dest> [copier options]}"
|
||||||
shift
|
shift
|
||||||
copier_args=("$@")
|
copier_args=("$@")
|
||||||
@@ -18,6 +18,10 @@ yes_no() {
|
|||||||
[[ "$answer" =~ ^[Yy] ]]
|
[[ "$answer" =~ ^[Yy] ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template() {
|
||||||
|
if [[ -d "$TEMPLATES/$1" ]]; then printf '%s' "$TEMPLATES/$1"; else printf '%s' "$TEMPLATES/$1.git"; fi
|
||||||
|
}
|
||||||
|
|
||||||
copy() {
|
copy() {
|
||||||
uvx copier@latest copy --trust "${copier_args[@]}" "$@"
|
uvx copier@latest copy --trust "${copier_args[@]}" "$@"
|
||||||
}
|
}
|
||||||
@@ -52,21 +56,21 @@ json_list() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mkdir -p "$dest"
|
mkdir -p "$dest"
|
||||||
copy -d "parts=$(json_list "${parts[@]}")" "$TEMPLATES/infra" "$dest"
|
copy -d "parts=$(json_list "${parts[@]}")" "$(template infra)" "$dest"
|
||||||
|
|
||||||
if [[ " ${parts[*]} " == *" backend "* ]]; then
|
if [[ " ${parts[*]} " == *" backend "* ]]; then
|
||||||
copy -d "project_name=$project_name" -d "project_slug=$project_slug" \
|
copy -d "project_name=$project_name" -d "project_slug=$project_slug" \
|
||||||
-d "author_name=$author_name" -d "author_email=$author_email" \
|
-d "author_name=$author_name" -d "author_email=$author_email" \
|
||||||
-d "serve_spa=$serve_spa" "$TEMPLATES/backend-python" "$dest"
|
-d "serve_spa=$serve_spa" "$(template backend-python)" "$dest"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ " ${parts[*]} " == *" frontend "* ]]; then
|
if [[ " ${parts[*]} " == *" frontend "* ]]; then
|
||||||
copy -d "project_name=$project_name" -d "project_slug=$project_slug" \
|
copy -d "project_name=$project_name" -d "project_slug=$project_slug" \
|
||||||
-d "serve=$serve" "$TEMPLATES/frontend-svelte" "$dest"
|
-d "serve=$serve" "$(template frontend-svelte)" "$dest"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $with_caddy; then
|
if $with_caddy; then
|
||||||
copy -d "project_slug=$project_slug" -d "routes=$(json_list "${routes[@]}")" "$TEMPLATES/caddy" "$dest"
|
copy -d "project_slug=$project_slug" -d "routes=$(json_list "${routes[@]}")" "$(template caddy)" "$dest"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
(cd "$dest" && make env)
|
(cd "$dest" && make env)
|
||||||
|
|||||||
Reference in New Issue
Block a user