@@ -9,7 +9,7 @@ _validate name *data_flags:
99 #!/usr/bin/env bash
1010 set -euo pipefail
1111 OUT=$(mktemp -d)
12- trap ' rm -rf "$OUT"' EXIT
12+ trap ' chmod -R +w "$OUT" 2>/dev/null; rm -rf "$OUT"' EXIT
1313 echo " ▶ Validating '{{ name }} ' → $OUT"
1414 uvx copier copy . " $OUT/project" \
1515 - -trust --defaults --overwrite --vcs-ref=HEAD \
@@ -29,56 +29,31 @@ _validate name *data_flags:
2929 echo " ✓ {{ name }} passed"
3030
3131# Validate with standard defaults
32- validate-standard :
33- just _validate standard
32+ validate-standard : (_validate " standard" )
3433
3534# Alias for validate-standard
3635validate : validate-standard
3736
3837# Validate minimal config (everything off)
39- validate-minimal :
40- just _validate minimal \
41- - -data ci_github=false \
42- - -data security=none \
43- - -data use_docker=none \
44- - -data use_docs=false \
45- - -data testing=minimal \
46- - -data use_ml=false \
47- - -data use_typecheck=false \
48- - -data use_devcontainer=false
38+ validate-minimal : (_validate " minimal" " --data ci_github=false --data security=none --data use_docker=none --data use_docs=false --data testing=minimal --data use_ml=false --data use_typecheck=false --data use_devcontainer=false" )
4939
5040# Validate CLI feature
51- validate-cli :
52- just _validate cli --data use_cli=true
41+ validate-cli : (_validate " cli" " --data use_cli=true" )
5342
5443# Validate API feature
55- validate-api :
56- just _validate api --data use_api=true
44+ validate-api : (_validate " api" " --data use_api=true" )
5745
5846# Validate DB feature
59- validate-db :
60- just _validate db --data use_db=true
47+ validate-db : (_validate " db" " --data use_db=true" )
6148
6249# Validate IoT feature
63- validate-iot :
64- just _validate iot --data use_iot=true
50+ validate-iot : (_validate " iot" " --data use_iot=true" )
6551
6652# Validate GPU + ML combo (catches cross-feature bugs)
67- validate-gpu-ml :
68- just _validate gpu-ml --data use_docker=gpu --data use_ml=true
53+ validate-gpu-ml : (_validate " gpu-ml" " --data use_docker=gpu --data use_ml=true" )
6954
7055# Validate kitchen-sink (all features on)
71- validate-full :
72- just _validate full \
73- - -data security=full \
74- - -data testing=full \
75- - -data use_docker=gpu \
76- - -data use_devcontainer=true \
77- - -data use_ml=true \
78- - -data use_iot=true \
79- - -data use_cli=true \
80- - -data use_api=true \
81- - -data use_db=true
56+ validate-full : (_validate " full" " --data security=full --data testing=full --data use_docker=gpu --data use_devcontainer=true --data use_ml=true --data use_iot=true --data use_cli=true --data use_api=true --data use_db=true" )
8257
8358# Run all validation variants
8459validate-all : validate validate-minimal validate-cli validate-api validate-db validate-iot validate-gpu-ml validate-full
@@ -100,7 +75,9 @@ release bump="patch":
10075 esac
10176 fi
10277 echo " ▶ ${LATEST:-none} → $NEXT"
103- just validate-all
78+ echo " Run 'just validate-all' first if you haven't already."
79+ read -rp " Tag $NEXT and push? [y/N] " confirm
80+ [[ " $confirm" =~ ^[Yy]$ ]] || exit 0
10481 git tag " $NEXT"
10582 git push origin " $NEXT"
10683 echo " ✓ Released $NEXT"
0 commit comments