Skip to content

Commit f5e216d

Browse files
fix: Windows compat for justfile and copier tasks
- Use just dependency syntax instead of shell calls (fixes PATH issues) - chmod +w before rm in trap (fixes .git read-only on Windows) - Use double quotes for git commit message in copier tasks (single quotes break on Windows cmd) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 98293e1 commit f5e216d

2 files changed

Lines changed: 13 additions & 36 deletions

File tree

copier.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ _tasks:
176176
- git init
177177
- git config core.longpaths true
178178
- git add -A
179-
- "git commit -m 'chore: initial project from template'"
179+
- 'git commit -m "chore: initial project from template"'
180180
# Install dependencies and hooks
181181
- uv sync --dev
182182
- command: uv run pre-commit install

justfile

Lines changed: 12 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -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
3635
validate: 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
8459
validate-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

Comments
 (0)