container-superposition 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +843 -0
- package/dist/scripts/init.d.ts +3 -0
- package/dist/scripts/init.d.ts.map +1 -0
- package/dist/scripts/init.js +1190 -0
- package/dist/scripts/init.js.map +1 -0
- package/dist/scripts/migrate-to-manifests.d.ts +12 -0
- package/dist/scripts/migrate-to-manifests.d.ts.map +1 -0
- package/dist/scripts/migrate-to-manifests.js +230 -0
- package/dist/scripts/migrate-to-manifests.js.map +1 -0
- package/dist/tool/questionnaire/composer.d.ts +6 -0
- package/dist/tool/questionnaire/composer.d.ts.map +1 -0
- package/dist/tool/questionnaire/composer.js +1232 -0
- package/dist/tool/questionnaire/composer.js.map +1 -0
- package/dist/tool/readme/markdown-parser.d.ts +30 -0
- package/dist/tool/readme/markdown-parser.d.ts.map +1 -0
- package/dist/tool/readme/markdown-parser.js +139 -0
- package/dist/tool/readme/markdown-parser.js.map +1 -0
- package/dist/tool/readme/readme-generator.d.ts +9 -0
- package/dist/tool/readme/readme-generator.d.ts.map +1 -0
- package/dist/tool/readme/readme-generator.js +422 -0
- package/dist/tool/readme/readme-generator.js.map +1 -0
- package/dist/tool/schema/custom-loader.d.ts +17 -0
- package/dist/tool/schema/custom-loader.d.ts.map +1 -0
- package/dist/tool/schema/custom-loader.js +149 -0
- package/dist/tool/schema/custom-loader.js.map +1 -0
- package/dist/tool/schema/overlay-loader.d.ts +47 -0
- package/dist/tool/schema/overlay-loader.d.ts.map +1 -0
- package/dist/tool/schema/overlay-loader.js +252 -0
- package/dist/tool/schema/overlay-loader.js.map +1 -0
- package/dist/tool/schema/types.d.ts +212 -0
- package/dist/tool/schema/types.d.ts.map +1 -0
- package/dist/tool/schema/types.js +5 -0
- package/dist/tool/schema/types.js.map +1 -0
- package/docs/README.md +308 -0
- package/docs/architecture.md +233 -0
- package/docs/creating-overlays.md +549 -0
- package/docs/custom-patches.md +540 -0
- package/docs/dependencies.md +279 -0
- package/docs/examples/custom-patches-example.md +85 -0
- package/docs/examples.md +576 -0
- package/docs/messaging-comparison.md +265 -0
- package/docs/messaging-quick-start.md +385 -0
- package/docs/observability-workflow.md +537 -0
- package/docs/overlay-manifest-refactoring.md +214 -0
- package/docs/overlay-metadata-archive.md +54 -0
- package/docs/overlays.md +523 -0
- package/docs/presets-architecture.md +498 -0
- package/docs/presets.md +366 -0
- package/docs/publishing.md +476 -0
- package/docs/quick-reference.md +326 -0
- package/docs/ux.md +170 -0
- package/features/README.md +85 -0
- package/features/cross-distro-packages/README.md +146 -0
- package/features/cross-distro-packages/devcontainer-feature.json +20 -0
- package/features/cross-distro-packages/install.sh +58 -0
- package/features/local-secrets-manager/devcontainer-feature.json +18 -0
- package/features/local-secrets-manager/install.sh +127 -0
- package/features/project-scaffolder/devcontainer-feature.json +24 -0
- package/features/project-scaffolder/install.sh +100 -0
- package/features/team-conventions/devcontainer-feature.json +24 -0
- package/features/team-conventions/install.sh +93 -0
- package/overlays/.registry/README.md +14 -0
- package/overlays/.registry/base-images.yml +26 -0
- package/overlays/.registry/base-templates.yml +7 -0
- package/overlays/README.md +155 -0
- package/overlays/alertmanager/.env.example +5 -0
- package/overlays/alertmanager/README.md +465 -0
- package/overlays/alertmanager/alert-rules.yml +56 -0
- package/overlays/alertmanager/alertmanager.yml +42 -0
- package/overlays/alertmanager/devcontainer.patch.json +12 -0
- package/overlays/alertmanager/docker-compose.yml +20 -0
- package/overlays/alertmanager/overlay.yml +17 -0
- package/overlays/alertmanager/setup.sh +53 -0
- package/overlays/alertmanager/verify.sh +31 -0
- package/overlays/aws-cli/README.md +473 -0
- package/overlays/aws-cli/devcontainer.patch.json +13 -0
- package/overlays/aws-cli/overlay.yml +13 -0
- package/overlays/azure-cli/README.md +551 -0
- package/overlays/azure-cli/devcontainer.patch.json +8 -0
- package/overlays/azure-cli/overlay.yml +13 -0
- package/overlays/bun/README.md +312 -0
- package/overlays/bun/devcontainer.patch.json +41 -0
- package/overlays/bun/overlay.yml +16 -0
- package/overlays/bun/setup.sh +79 -0
- package/overlays/bun/verify.sh +30 -0
- package/overlays/codex/README.md +128 -0
- package/overlays/codex/devcontainer.patch.json +3 -0
- package/overlays/codex/overlay.yml +14 -0
- package/overlays/codex/setup.sh +24 -0
- package/overlays/codex/verify.sh +30 -0
- package/overlays/commitlint/README.md +333 -0
- package/overlays/commitlint/devcontainer.patch.json +8 -0
- package/overlays/commitlint/overlay.yml +16 -0
- package/overlays/commitlint/setup.sh +234 -0
- package/overlays/direnv/README.md +504 -0
- package/overlays/direnv/devcontainer.patch.json +6 -0
- package/overlays/direnv/overlay.yml +13 -0
- package/overlays/direnv/setup.sh +139 -0
- package/overlays/docker-in-docker/README.md +534 -0
- package/overlays/docker-in-docker/devcontainer.patch.json +10 -0
- package/overlays/docker-in-docker/overlay.yml +13 -0
- package/overlays/docker-sock/README.md +256 -0
- package/overlays/docker-sock/devcontainer.patch.json +9 -0
- package/overlays/docker-sock/docker-compose.yml +8 -0
- package/overlays/docker-sock/overlay.yml +13 -0
- package/overlays/dotnet/README.md +147 -0
- package/overlays/dotnet/devcontainer.patch.json +51 -0
- package/overlays/dotnet/global-tools.txt +24 -0
- package/overlays/dotnet/overlay.yml +13 -0
- package/overlays/dotnet/setup.sh +51 -0
- package/overlays/dotnet/verify.sh +26 -0
- package/overlays/gcloud/README.md +269 -0
- package/overlays/gcloud/devcontainer.patch.json +14 -0
- package/overlays/gcloud/overlay.yml +14 -0
- package/overlays/gcloud/verify.sh +52 -0
- package/overlays/git-helpers/README.md +168 -0
- package/overlays/git-helpers/devcontainer.patch.json +33 -0
- package/overlays/git-helpers/overlay.yml +15 -0
- package/overlays/git-helpers/setup.sh +91 -0
- package/overlays/go/README.md +293 -0
- package/overlays/go/devcontainer.patch.json +43 -0
- package/overlays/go/overlay.yml +15 -0
- package/overlays/go/setup.sh +33 -0
- package/overlays/go/verify.sh +40 -0
- package/overlays/grafana/.env.example +9 -0
- package/overlays/grafana/README.md +462 -0
- package/overlays/grafana/dashboard-provider.yml +11 -0
- package/overlays/grafana/dashboards/observability-overview.json +263 -0
- package/overlays/grafana/devcontainer.patch.json +12 -0
- package/overlays/grafana/docker-compose.yml +27 -0
- package/overlays/grafana/grafana-datasources.yml +57 -0
- package/overlays/grafana/overlay.yml +21 -0
- package/overlays/grafana/verify.sh +34 -0
- package/overlays/jaeger/.env.example +7 -0
- package/overlays/jaeger/README.md +867 -0
- package/overlays/jaeger/devcontainer.patch.json +12 -0
- package/overlays/jaeger/docker-compose.yml +17 -0
- package/overlays/jaeger/overlay.yml +19 -0
- package/overlays/java/README.md +267 -0
- package/overlays/java/devcontainer.patch.json +44 -0
- package/overlays/java/overlay.yml +16 -0
- package/overlays/java/setup.sh +41 -0
- package/overlays/java/verify.sh +42 -0
- package/overlays/just/README.md +443 -0
- package/overlays/just/devcontainer.patch.json +3 -0
- package/overlays/just/overlay.yml +13 -0
- package/overlays/just/setup.sh +182 -0
- package/overlays/kubectl-helm/README.md +660 -0
- package/overlays/kubectl-helm/devcontainer.patch.json +10 -0
- package/overlays/kubectl-helm/overlay.yml +13 -0
- package/overlays/loki/.env.example +5 -0
- package/overlays/loki/README.md +1156 -0
- package/overlays/loki/devcontainer.patch.json +12 -0
- package/overlays/loki/docker-compose.yml +18 -0
- package/overlays/loki/loki-config.yaml +45 -0
- package/overlays/loki/overlay.yml +17 -0
- package/overlays/minio/.env.example +9 -0
- package/overlays/minio/README.md +639 -0
- package/overlays/minio/devcontainer.patch.json +30 -0
- package/overlays/minio/docker-compose.yml +28 -0
- package/overlays/minio/overlay.yml +18 -0
- package/overlays/minio/setup.sh +61 -0
- package/overlays/minio/verify.sh +64 -0
- package/overlays/mkdocs/README.md +309 -0
- package/overlays/mkdocs/devcontainer.patch.json +24 -0
- package/overlays/mkdocs/overlay.yml +15 -0
- package/overlays/modern-cli-tools/README.md +556 -0
- package/overlays/modern-cli-tools/devcontainer.patch.json +3 -0
- package/overlays/modern-cli-tools/overlay.yml +13 -0
- package/overlays/modern-cli-tools/setup.sh +153 -0
- package/overlays/mongodb/.env.example +9 -0
- package/overlays/mongodb/README.md +481 -0
- package/overlays/mongodb/devcontainer.patch.json +32 -0
- package/overlays/mongodb/docker-compose.yml +44 -0
- package/overlays/mongodb/overlay.yml +17 -0
- package/overlays/mongodb/verify.sh +48 -0
- package/overlays/mysql/.env.example +11 -0
- package/overlays/mysql/README.md +542 -0
- package/overlays/mysql/devcontainer.patch.json +34 -0
- package/overlays/mysql/docker-compose.yml +55 -0
- package/overlays/mysql/overlay.yml +16 -0
- package/overlays/mysql/verify.sh +48 -0
- package/overlays/nats/.env.example +5 -0
- package/overlays/nats/README.md +762 -0
- package/overlays/nats/devcontainer.patch.json +24 -0
- package/overlays/nats/docker-compose.yml +31 -0
- package/overlays/nats/overlay.yml +18 -0
- package/overlays/nats/verify.sh +50 -0
- package/overlays/ngrok/README.md +503 -0
- package/overlays/ngrok/devcontainer.patch.json +3 -0
- package/overlays/ngrok/overlay.yml +14 -0
- package/overlays/ngrok/setup.sh +125 -0
- package/overlays/nodejs/README.md +192 -0
- package/overlays/nodejs/devcontainer.patch.json +49 -0
- package/overlays/nodejs/global-packages.txt +16 -0
- package/overlays/nodejs/overlay.yml +14 -0
- package/overlays/nodejs/setup.sh +46 -0
- package/overlays/nodejs/verify.sh +32 -0
- package/overlays/otel-collector/.env.example +9 -0
- package/overlays/otel-collector/README.md +1257 -0
- package/overlays/otel-collector/devcontainer.patch.json +28 -0
- package/overlays/otel-collector/docker-compose.yml +22 -0
- package/overlays/otel-collector/otel-collector-config.yaml +68 -0
- package/overlays/otel-collector/overlay.yml +21 -0
- package/overlays/otel-collector/setup.sh +49 -0
- package/overlays/otel-demo-nodejs/.env.example +2 -0
- package/overlays/otel-demo-nodejs/Dockerfile-otel-demo-nodejs +17 -0
- package/overlays/otel-demo-nodejs/README.md +409 -0
- package/overlays/otel-demo-nodejs/devcontainer.patch.json +12 -0
- package/overlays/otel-demo-nodejs/docker-compose.yml +19 -0
- package/overlays/otel-demo-nodejs/overlay.yml +23 -0
- package/overlays/otel-demo-nodejs/package-otel-demo-nodejs.json +20 -0
- package/overlays/otel-demo-nodejs/server-otel-demo-nodejs.js +259 -0
- package/overlays/otel-demo-nodejs/tracing-otel-demo-nodejs.js +57 -0
- package/overlays/otel-demo-nodejs/verify.sh +31 -0
- package/overlays/otel-demo-python/.env.example +2 -0
- package/overlays/otel-demo-python/Dockerfile-otel-demo-python +16 -0
- package/overlays/otel-demo-python/README.md +82 -0
- package/overlays/otel-demo-python/app-otel-demo-python.py +208 -0
- package/overlays/otel-demo-python/devcontainer.patch.json +12 -0
- package/overlays/otel-demo-python/docker-compose.yml +19 -0
- package/overlays/otel-demo-python/overlay.yml +23 -0
- package/overlays/otel-demo-python/requirements-otel-demo-python.txt +4 -0
- package/overlays/otel-demo-python/verify.sh +31 -0
- package/overlays/playwright/README.md +629 -0
- package/overlays/playwright/devcontainer.patch.json +9 -0
- package/overlays/playwright/overlay.yml +13 -0
- package/overlays/postgres/.env.example +6 -0
- package/overlays/postgres/README.md +602 -0
- package/overlays/postgres/devcontainer.patch.json +21 -0
- package/overlays/postgres/docker-compose.yml +22 -0
- package/overlays/postgres/overlay.yml +15 -0
- package/overlays/postgres/verify.sh +45 -0
- package/overlays/powershell/README.md +314 -0
- package/overlays/powershell/devcontainer.patch.json +22 -0
- package/overlays/powershell/overlay.yml +13 -0
- package/overlays/powershell/setup.sh +29 -0
- package/overlays/powershell/verify.sh +38 -0
- package/overlays/pre-commit/README.md +263 -0
- package/overlays/pre-commit/devcontainer.patch.json +9 -0
- package/overlays/pre-commit/overlay.yml +16 -0
- package/overlays/pre-commit/setup.sh +129 -0
- package/overlays/presets/docs-site.yml +118 -0
- package/overlays/presets/fullstack.yml +181 -0
- package/overlays/presets/microservice.yml +118 -0
- package/overlays/presets/web-api.yml +109 -0
- package/overlays/prometheus/.env.example +5 -0
- package/overlays/prometheus/README.md +1246 -0
- package/overlays/prometheus/devcontainer.patch.json +12 -0
- package/overlays/prometheus/docker-compose.yml +22 -0
- package/overlays/prometheus/overlay.yml +17 -0
- package/overlays/prometheus/prometheus.yml +12 -0
- package/overlays/prometheus/verify.sh +34 -0
- package/overlays/promtail/.env.example +2 -0
- package/overlays/promtail/README.md +357 -0
- package/overlays/promtail/devcontainer.patch.json +5 -0
- package/overlays/promtail/docker-compose.yml +16 -0
- package/overlays/promtail/overlay.yml +17 -0
- package/overlays/promtail/promtail-config.yaml +60 -0
- package/overlays/promtail/verify.sh +31 -0
- package/overlays/pulumi/README.md +472 -0
- package/overlays/pulumi/devcontainer.patch.json +13 -0
- package/overlays/pulumi/overlay.yml +14 -0
- package/overlays/pulumi/verify.sh +31 -0
- package/overlays/python/README.md +919 -0
- package/overlays/python/devcontainer.patch.json +41 -0
- package/overlays/python/overlay.yml +12 -0
- package/overlays/python/requirements-overlay.txt +13 -0
- package/overlays/python/setup.sh +47 -0
- package/overlays/python/verify.sh +32 -0
- package/overlays/rabbitmq/.env.example +7 -0
- package/overlays/rabbitmq/README.md +680 -0
- package/overlays/rabbitmq/devcontainer.patch.json +28 -0
- package/overlays/rabbitmq/docker-compose.yml +30 -0
- package/overlays/rabbitmq/overlay.yml +18 -0
- package/overlays/rabbitmq/verify.sh +41 -0
- package/overlays/redis/.env.example +4 -0
- package/overlays/redis/README.md +776 -0
- package/overlays/redis/devcontainer.patch.json +21 -0
- package/overlays/redis/docker-compose.yml +21 -0
- package/overlays/redis/overlay.yml +15 -0
- package/overlays/redis/verify.sh +41 -0
- package/overlays/redpanda/.env.example +10 -0
- package/overlays/redpanda/README.md +703 -0
- package/overlays/redpanda/devcontainer.patch.json +37 -0
- package/overlays/redpanda/docker-compose.yml +67 -0
- package/overlays/redpanda/overlay.yml +21 -0
- package/overlays/redpanda/verify.sh +48 -0
- package/overlays/rust/README.md +299 -0
- package/overlays/rust/devcontainer.patch.json +39 -0
- package/overlays/rust/overlay.yml +15 -0
- package/overlays/rust/setup.sh +36 -0
- package/overlays/rust/verify.sh +51 -0
- package/overlays/sqlite/README.md +584 -0
- package/overlays/sqlite/devcontainer.patch.json +14 -0
- package/overlays/sqlite/overlay.yml +15 -0
- package/overlays/sqlite/setup.sh +27 -0
- package/overlays/sqlite/verify.sh +43 -0
- package/overlays/sqlserver/.env.example +6 -0
- package/overlays/sqlserver/README.md +592 -0
- package/overlays/sqlserver/devcontainer.patch.json +22 -0
- package/overlays/sqlserver/docker-compose.yml +32 -0
- package/overlays/sqlserver/overlay.yml +17 -0
- package/overlays/sqlserver/verify.sh +30 -0
- package/overlays/tempo/.env.example +5 -0
- package/overlays/tempo/README.md +273 -0
- package/overlays/tempo/devcontainer.patch.json +12 -0
- package/overlays/tempo/docker-compose.yml +20 -0
- package/overlays/tempo/overlay.yml +20 -0
- package/overlays/tempo/tempo-config.yaml +32 -0
- package/overlays/tempo/verify.sh +31 -0
- package/overlays/terraform/README.md +389 -0
- package/overlays/terraform/devcontainer.patch.json +15 -0
- package/overlays/terraform/overlay.yml +14 -0
- package/overlays/terraform/verify.sh +63 -0
- package/package.json +74 -0
- package/templates/README.md +285 -0
- package/templates/compose/.devcontainer/devcontainer.json +46 -0
- package/templates/compose/.devcontainer/docker-compose.yml +12 -0
- package/templates/compose/README.md +20 -0
- package/templates/plain/.devcontainer/devcontainer.json +35 -0
- package/templates/plain/README.md +21 -0
- package/tool/README.md +281 -0
- package/tool/schema/base-images.schema.json +43 -0
- package/tool/schema/base-templates.schema.json +34 -0
- package/tool/schema/config.schema.json +71 -0
- package/tool/schema/overlay-manifest.schema.json +86 -0
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
# Just Task Runner Overlay
|
|
2
|
+
|
|
3
|
+
Simple, fast, and powerful task runner using `just` (Rust-based).
|
|
4
|
+
|
|
5
|
+
## What's Included
|
|
6
|
+
|
|
7
|
+
- **just** - Command runner (v1.25.2)
|
|
8
|
+
- **Sample Justfile** - Ready-to-use task definitions
|
|
9
|
+
- **Shell completion** - Tab completion for bash/zsh
|
|
10
|
+
- **Common tasks** - Build, test, lint, dev server patterns
|
|
11
|
+
|
|
12
|
+
## Why Just?
|
|
13
|
+
|
|
14
|
+
- **Simple syntax** - Easier than Makefiles
|
|
15
|
+
- **Fast** - Rust-based, minimal overhead
|
|
16
|
+
- **Cross-platform** - Works on Linux, macOS, Windows
|
|
17
|
+
- **No dependencies** - Single binary
|
|
18
|
+
- **Great UX** - Clear errors, helpful messages
|
|
19
|
+
- **Popular** - 18k+ GitHub stars, widely adopted
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
List available tasks:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
just --list
|
|
27
|
+
# or simply
|
|
28
|
+
just
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Run a task:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
just build
|
|
35
|
+
just test
|
|
36
|
+
just dev
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Justfile Syntax
|
|
40
|
+
|
|
41
|
+
### Basic Task
|
|
42
|
+
|
|
43
|
+
```just
|
|
44
|
+
# Simple task
|
|
45
|
+
hello:
|
|
46
|
+
echo "Hello, world!"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Task with Arguments
|
|
50
|
+
|
|
51
|
+
```just
|
|
52
|
+
# Task with parameters
|
|
53
|
+
greet name:
|
|
54
|
+
echo "Hello, {{name}}!"
|
|
55
|
+
|
|
56
|
+
# Usage: just greet "Alice"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Task Dependencies
|
|
60
|
+
|
|
61
|
+
```just
|
|
62
|
+
# Task that depends on others
|
|
63
|
+
deploy: build test
|
|
64
|
+
./deploy.sh
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Variables
|
|
68
|
+
|
|
69
|
+
```just
|
|
70
|
+
# Set variables
|
|
71
|
+
version := "1.0.0"
|
|
72
|
+
|
|
73
|
+
show-version:
|
|
74
|
+
echo "Version: {{version}}"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Conditional Execution
|
|
78
|
+
|
|
79
|
+
```just
|
|
80
|
+
# Run only if condition is true
|
|
81
|
+
test:
|
|
82
|
+
#!/usr/bin/env bash
|
|
83
|
+
if [ -f package.json ]; then
|
|
84
|
+
npm test
|
|
85
|
+
fi
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Environment Variables
|
|
89
|
+
|
|
90
|
+
```just
|
|
91
|
+
# Export environment variable
|
|
92
|
+
export DATABASE_URL := "postgres://localhost/db"
|
|
93
|
+
|
|
94
|
+
migrate:
|
|
95
|
+
./migrate.sh
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Sample Justfile Tasks
|
|
99
|
+
|
|
100
|
+
The generated Justfile includes:
|
|
101
|
+
|
|
102
|
+
### Development Tasks
|
|
103
|
+
|
|
104
|
+
- `install` - Install dependencies
|
|
105
|
+
- `build` - Build the project
|
|
106
|
+
- `dev` - Start development server
|
|
107
|
+
- `serve` - Start production server
|
|
108
|
+
- `clean` - Remove build artifacts
|
|
109
|
+
|
|
110
|
+
### Quality Tasks
|
|
111
|
+
|
|
112
|
+
- `test` - Run tests
|
|
113
|
+
- `test-watch` - Run tests in watch mode
|
|
114
|
+
- `lint` - Run linter
|
|
115
|
+
- `lint-fix` - Fix linting issues
|
|
116
|
+
- `format` - Format code
|
|
117
|
+
- `check` - Run all checks (lint + test + build)
|
|
118
|
+
|
|
119
|
+
### Git Tasks
|
|
120
|
+
|
|
121
|
+
- `git-status` - Show git status
|
|
122
|
+
- `git-log` - Show recent commits
|
|
123
|
+
|
|
124
|
+
### Docker Tasks
|
|
125
|
+
|
|
126
|
+
- `docker-up` - Start containers
|
|
127
|
+
- `docker-down` - Stop containers
|
|
128
|
+
- `docker-logs` - View logs
|
|
129
|
+
|
|
130
|
+
### Database Tasks
|
|
131
|
+
|
|
132
|
+
- `db-migrate` - Run migrations
|
|
133
|
+
- `db-seed` - Seed database
|
|
134
|
+
- `db-reset` - Reset database
|
|
135
|
+
|
|
136
|
+
## Advanced Features
|
|
137
|
+
|
|
138
|
+
### Private Tasks
|
|
139
|
+
|
|
140
|
+
Prefix with underscore:
|
|
141
|
+
|
|
142
|
+
```just
|
|
143
|
+
# Won't show in --list
|
|
144
|
+
_internal:
|
|
145
|
+
echo "Internal task"
|
|
146
|
+
|
|
147
|
+
public: _internal
|
|
148
|
+
echo "Public task"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Default Recipe
|
|
152
|
+
|
|
153
|
+
```just
|
|
154
|
+
# Runs when you type `just`
|
|
155
|
+
default:
|
|
156
|
+
@just --list
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Recipe Parameters with Defaults
|
|
160
|
+
|
|
161
|
+
```just
|
|
162
|
+
# Parameter with default value
|
|
163
|
+
deploy env="staging":
|
|
164
|
+
./deploy.sh {{env}}
|
|
165
|
+
|
|
166
|
+
# Usage:
|
|
167
|
+
# just deploy -> uses "staging"
|
|
168
|
+
# just deploy prod -> uses "prod"
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Multi-line Commands
|
|
172
|
+
|
|
173
|
+
```just
|
|
174
|
+
complex:
|
|
175
|
+
#!/usr/bin/env bash
|
|
176
|
+
set -euxo pipefail
|
|
177
|
+
echo "Starting complex task"
|
|
178
|
+
for i in {1..5}; do
|
|
179
|
+
echo "Step $i"
|
|
180
|
+
done
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Command Evaluation
|
|
184
|
+
|
|
185
|
+
```just
|
|
186
|
+
# Backticks execute commands
|
|
187
|
+
now := `date +%Y-%m-%d`
|
|
188
|
+
|
|
189
|
+
backup:
|
|
190
|
+
cp data.db "data-{{now}}.db"
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### Conditional Recipes
|
|
194
|
+
|
|
195
|
+
```just
|
|
196
|
+
# Different behavior per OS
|
|
197
|
+
install-deps:
|
|
198
|
+
#!/usr/bin/env bash
|
|
199
|
+
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
200
|
+
apt-get install -y nodejs
|
|
201
|
+
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
|
202
|
+
brew install node
|
|
203
|
+
fi
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### .env File Support
|
|
207
|
+
|
|
208
|
+
```just
|
|
209
|
+
# Load .env file
|
|
210
|
+
set dotenv-load
|
|
211
|
+
|
|
212
|
+
# Now all .env variables are available
|
|
213
|
+
show-db:
|
|
214
|
+
echo $DATABASE_URL
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Common Patterns
|
|
218
|
+
|
|
219
|
+
### Node.js Project
|
|
220
|
+
|
|
221
|
+
```just
|
|
222
|
+
install:
|
|
223
|
+
npm install
|
|
224
|
+
|
|
225
|
+
dev:
|
|
226
|
+
npm run dev
|
|
227
|
+
|
|
228
|
+
build:
|
|
229
|
+
npm run build
|
|
230
|
+
|
|
231
|
+
test:
|
|
232
|
+
npm test
|
|
233
|
+
|
|
234
|
+
lint:
|
|
235
|
+
npm run lint
|
|
236
|
+
|
|
237
|
+
format:
|
|
238
|
+
npm run format
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Python Project
|
|
242
|
+
|
|
243
|
+
```just
|
|
244
|
+
install:
|
|
245
|
+
pip install -r requirements.txt
|
|
246
|
+
|
|
247
|
+
test:
|
|
248
|
+
pytest
|
|
249
|
+
|
|
250
|
+
lint:
|
|
251
|
+
pylint src/
|
|
252
|
+
|
|
253
|
+
format:
|
|
254
|
+
black src/
|
|
255
|
+
|
|
256
|
+
run:
|
|
257
|
+
python -m src.main
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Docker Project
|
|
261
|
+
|
|
262
|
+
```just
|
|
263
|
+
build:
|
|
264
|
+
docker build -t myapp .
|
|
265
|
+
|
|
266
|
+
run:
|
|
267
|
+
docker run -p 8080:8080 myapp
|
|
268
|
+
|
|
269
|
+
up:
|
|
270
|
+
docker-compose up -d
|
|
271
|
+
|
|
272
|
+
down:
|
|
273
|
+
docker-compose down
|
|
274
|
+
|
|
275
|
+
logs:
|
|
276
|
+
docker-compose logs -f
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Tips and Tricks
|
|
280
|
+
|
|
281
|
+
### Suppress Command Echo
|
|
282
|
+
|
|
283
|
+
Use `@` prefix:
|
|
284
|
+
|
|
285
|
+
```just
|
|
286
|
+
# Shows command and output
|
|
287
|
+
loud:
|
|
288
|
+
echo "I'm loud!"
|
|
289
|
+
|
|
290
|
+
# Shows only output
|
|
291
|
+
quiet:
|
|
292
|
+
@echo "I'm quiet!"
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### Ignore Errors
|
|
296
|
+
|
|
297
|
+
Use `-` prefix:
|
|
298
|
+
|
|
299
|
+
```just
|
|
300
|
+
# Continue even if command fails
|
|
301
|
+
cleanup:
|
|
302
|
+
-rm -rf temp/
|
|
303
|
+
-docker stop container || true
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### List Recipes
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
just --list # List all recipes
|
|
310
|
+
just --list --unsorted # List in file order
|
|
311
|
+
just --show <recipe> # Show recipe definition
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Dry Run
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
just --dry-run build # Show what would run
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Working Directory
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
just --working-directory /path/to/dir build
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### Choose Recipe Interactively
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
just --choose # Interactive selection
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
## Customization
|
|
333
|
+
|
|
334
|
+
### Set Options
|
|
335
|
+
|
|
336
|
+
```just
|
|
337
|
+
# Set shell
|
|
338
|
+
set shell := ["bash", "-c"]
|
|
339
|
+
|
|
340
|
+
# Set working directory
|
|
341
|
+
set working-directory := "./src"
|
|
342
|
+
|
|
343
|
+
# Enable .env loading
|
|
344
|
+
set dotenv-load
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
### Aliases
|
|
348
|
+
|
|
349
|
+
```just
|
|
350
|
+
alias b := build
|
|
351
|
+
alias t := test
|
|
352
|
+
alias d := dev
|
|
353
|
+
|
|
354
|
+
# Now you can use: just b, just t, just d
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
## Debugging
|
|
358
|
+
|
|
359
|
+
### Verbose Output
|
|
360
|
+
|
|
361
|
+
```bash
|
|
362
|
+
just --verbose build
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### Show Recipe
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
just --show build
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### Evaluate Justfile
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
just --evaluate
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
## Integration with Pre-commit
|
|
378
|
+
|
|
379
|
+
Add to `.pre-commit-config.yaml`:
|
|
380
|
+
|
|
381
|
+
```yaml
|
|
382
|
+
repos:
|
|
383
|
+
- repo: local
|
|
384
|
+
hooks:
|
|
385
|
+
- id: just-lint
|
|
386
|
+
name: Run just lint
|
|
387
|
+
entry: just lint
|
|
388
|
+
language: system
|
|
389
|
+
pass_filenames: false
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
## Best Practices
|
|
393
|
+
|
|
394
|
+
1. **Use @echo for user feedback** - Make tasks informative
|
|
395
|
+
2. **Group related tasks** - Keep Justfile organized
|
|
396
|
+
3. **Document tasks** - Add comments above recipes
|
|
397
|
+
4. **Use dependencies** - Compose tasks from smaller tasks
|
|
398
|
+
5. **Set default task** - Make `just` without args useful
|
|
399
|
+
6. **Keep tasks simple** - Complex logic belongs in scripts
|
|
400
|
+
7. **Use variables** - DRY principle
|
|
401
|
+
8. **Test on clean state** - Ensure tasks work from scratch
|
|
402
|
+
|
|
403
|
+
## Migration from Make
|
|
404
|
+
|
|
405
|
+
| Make | Just |
|
|
406
|
+
| -------------------- | ----------------------- |
|
|
407
|
+
| `target: dependency` | `recipe: dependency` |
|
|
408
|
+
| `$(var)` | `{{var}}` |
|
|
409
|
+
| `@command` | `@command` |
|
|
410
|
+
| `.PHONY: target` | (not needed) |
|
|
411
|
+
| `export VAR=value` | `export VAR := "value"` |
|
|
412
|
+
|
|
413
|
+
## Troubleshooting
|
|
414
|
+
|
|
415
|
+
### Command Not Found
|
|
416
|
+
|
|
417
|
+
Ensure just is in PATH:
|
|
418
|
+
|
|
419
|
+
```bash
|
|
420
|
+
which just
|
|
421
|
+
# Should output: /usr/local/bin/just
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### Justfile Syntax Error
|
|
425
|
+
|
|
426
|
+
Use `just --evaluate` to check syntax.
|
|
427
|
+
|
|
428
|
+
### Recipe Not Found
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
just --list # Verify recipe exists
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
### Working Directory Issues
|
|
435
|
+
|
|
436
|
+
Use absolute paths or `set working-directory`.
|
|
437
|
+
|
|
438
|
+
## Additional Resources
|
|
439
|
+
|
|
440
|
+
- [Just Documentation](https://just.systems/)
|
|
441
|
+
- [Just GitHub Repository](https://github.com/casey/just)
|
|
442
|
+
- [Just Examples](https://github.com/casey/just#recipes)
|
|
443
|
+
- [Justfile Cheatsheet](https://cheatography.com/linux-china/cheat-sheets/justfile/)
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Just task runner setup script
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "โก Setting up just task runner..."
|
|
7
|
+
|
|
8
|
+
# Install just from GitHub releases
|
|
9
|
+
JUST_VERSION="1.25.2"
|
|
10
|
+
ARCH=$(uname -m)
|
|
11
|
+
|
|
12
|
+
# SHA256 checksums for just v1.25.2
|
|
13
|
+
if [ "$ARCH" = "x86_64" ]; then
|
|
14
|
+
ARCH="x86_64"
|
|
15
|
+
CHECKSUM="6804798c3744fd1ce563840ee9fe14ae53c74b3cc7b8536da3f87751d7f85501"
|
|
16
|
+
elif [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then
|
|
17
|
+
ARCH="aarch64"
|
|
18
|
+
CHECKSUM="f287a95846131ce8de65181b0b1ec0a0b7db4f6f8d393b3b548f70fcb5a4b0ee"
|
|
19
|
+
else
|
|
20
|
+
echo "โ ๏ธ Unsupported architecture: $ARCH"
|
|
21
|
+
ARCH="x86_64"
|
|
22
|
+
CHECKSUM="6804798c3744fd1ce563840ee9fe14ae53c74b3cc7b8536da3f87751d7f85501"
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
echo "๐ฆ Downloading just v${JUST_VERSION} for ${ARCH}..."
|
|
26
|
+
curl -L "https://github.com/casey/just/releases/download/${JUST_VERSION}/just-${JUST_VERSION}-${ARCH}-unknown-linux-musl.tar.gz" \
|
|
27
|
+
-o /tmp/just.tar.gz
|
|
28
|
+
|
|
29
|
+
# Verify checksum
|
|
30
|
+
echo "๐ Verifying checksum..."
|
|
31
|
+
echo "${CHECKSUM} /tmp/just.tar.gz" | sha256sum -c - || {
|
|
32
|
+
echo "โ Checksum verification failed"
|
|
33
|
+
rm /tmp/just.tar.gz
|
|
34
|
+
exit 1
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
# Extract and install
|
|
38
|
+
tar -xzf /tmp/just.tar.gz -C /tmp
|
|
39
|
+
sudo mv /tmp/just /usr/local/bin/
|
|
40
|
+
sudo chmod +x /usr/local/bin/just
|
|
41
|
+
rm /tmp/just.tar.gz
|
|
42
|
+
|
|
43
|
+
# Verify installation
|
|
44
|
+
if command -v just &> /dev/null; then
|
|
45
|
+
echo "โ just installed: $(just --version)"
|
|
46
|
+
else
|
|
47
|
+
echo "โ just installation failed"
|
|
48
|
+
exit 1
|
|
49
|
+
fi
|
|
50
|
+
|
|
51
|
+
# Create sample Justfile if it doesn't exist
|
|
52
|
+
if [ ! -f Justfile ]; then
|
|
53
|
+
cat > Justfile << 'EOF'
|
|
54
|
+
# Justfile - Task runner configuration
|
|
55
|
+
# Run `just --list` to see all available tasks
|
|
56
|
+
# Run `just <task>` to execute a task
|
|
57
|
+
|
|
58
|
+
# Default task (runs when you type `just`)
|
|
59
|
+
default:
|
|
60
|
+
@just --list
|
|
61
|
+
|
|
62
|
+
# Install project dependencies
|
|
63
|
+
install:
|
|
64
|
+
@echo "๐ฆ Installing dependencies..."
|
|
65
|
+
npm install
|
|
66
|
+
@echo "โ Dependencies installed"
|
|
67
|
+
|
|
68
|
+
# Build the project
|
|
69
|
+
build:
|
|
70
|
+
@echo "๐จ Building project..."
|
|
71
|
+
npm run build
|
|
72
|
+
@echo "โ Build complete"
|
|
73
|
+
|
|
74
|
+
# Run tests
|
|
75
|
+
test:
|
|
76
|
+
@echo "๐งช Running tests..."
|
|
77
|
+
npm test
|
|
78
|
+
|
|
79
|
+
# Run tests in watch mode
|
|
80
|
+
test-watch:
|
|
81
|
+
@echo "๐ Running tests in watch mode..."
|
|
82
|
+
npm run test:watch
|
|
83
|
+
|
|
84
|
+
# Run linter
|
|
85
|
+
lint:
|
|
86
|
+
@echo "๐ Running linter..."
|
|
87
|
+
npm run lint
|
|
88
|
+
|
|
89
|
+
# Fix linting issues
|
|
90
|
+
lint-fix:
|
|
91
|
+
@echo "๐ง Fixing linting issues..."
|
|
92
|
+
npm run lint -- --fix
|
|
93
|
+
|
|
94
|
+
# Format code
|
|
95
|
+
format:
|
|
96
|
+
@echo "๐
Formatting code..."
|
|
97
|
+
npm run format
|
|
98
|
+
|
|
99
|
+
# Clean build artifacts
|
|
100
|
+
clean:
|
|
101
|
+
@echo "๐งน Cleaning build artifacts..."
|
|
102
|
+
rm -rf dist/ build/ .cache/
|
|
103
|
+
@echo "โ Clean complete"
|
|
104
|
+
|
|
105
|
+
# Development server
|
|
106
|
+
dev:
|
|
107
|
+
@echo "๐ Starting development server..."
|
|
108
|
+
npm run dev
|
|
109
|
+
|
|
110
|
+
# Production server
|
|
111
|
+
serve:
|
|
112
|
+
@echo "๐ Starting production server..."
|
|
113
|
+
npm start
|
|
114
|
+
|
|
115
|
+
# Run all checks (lint, test, build)
|
|
116
|
+
check: lint test build
|
|
117
|
+
@echo "โ
All checks passed"
|
|
118
|
+
|
|
119
|
+
# Git helpers
|
|
120
|
+
git-status:
|
|
121
|
+
@echo "๐ Git status:"
|
|
122
|
+
@git status
|
|
123
|
+
|
|
124
|
+
git-log:
|
|
125
|
+
@echo "๐ Recent commits:"
|
|
126
|
+
@git log --oneline -10
|
|
127
|
+
|
|
128
|
+
# Docker helpers
|
|
129
|
+
docker-up:
|
|
130
|
+
@echo "๐ณ Starting Docker containers..."
|
|
131
|
+
docker-compose up -d
|
|
132
|
+
|
|
133
|
+
docker-down:
|
|
134
|
+
@echo "๐ Stopping Docker containers..."
|
|
135
|
+
docker-compose down
|
|
136
|
+
|
|
137
|
+
docker-logs:
|
|
138
|
+
@echo "๐ Docker logs:"
|
|
139
|
+
docker-compose logs -f
|
|
140
|
+
|
|
141
|
+
# Database helpers (example)
|
|
142
|
+
db-migrate:
|
|
143
|
+
@echo "๐๏ธ Running database migrations..."
|
|
144
|
+
npm run db:migrate
|
|
145
|
+
|
|
146
|
+
db-seed:
|
|
147
|
+
@echo "๐ฑ Seeding database..."
|
|
148
|
+
npm run db:seed
|
|
149
|
+
|
|
150
|
+
db-reset: db-migrate db-seed
|
|
151
|
+
@echo "โ Database reset complete"
|
|
152
|
+
|
|
153
|
+
# Help / Documentation
|
|
154
|
+
help:
|
|
155
|
+
@echo "Available tasks:"
|
|
156
|
+
@just --list
|
|
157
|
+
@echo ""
|
|
158
|
+
@echo "Usage: just <task>"
|
|
159
|
+
@echo "Example: just build"
|
|
160
|
+
EOF
|
|
161
|
+
echo "โ Sample Justfile created"
|
|
162
|
+
fi
|
|
163
|
+
|
|
164
|
+
# Set up bash completion (if available)
|
|
165
|
+
if [ -d /etc/bash_completion.d ]; then
|
|
166
|
+
just --completions bash | sudo tee /etc/bash_completion.d/just > /dev/null
|
|
167
|
+
echo "โ Bash completion installed"
|
|
168
|
+
fi
|
|
169
|
+
|
|
170
|
+
# Set up zsh completion (if available)
|
|
171
|
+
if [ -d /usr/local/share/zsh/site-functions ]; then
|
|
172
|
+
just --completions zsh | sudo tee /usr/local/share/zsh/site-functions/_just > /dev/null
|
|
173
|
+
echo "โ Zsh completion installed"
|
|
174
|
+
fi
|
|
175
|
+
|
|
176
|
+
echo "โ Just setup complete"
|
|
177
|
+
echo ""
|
|
178
|
+
echo "๐ก Usage:"
|
|
179
|
+
echo " - List tasks: just --list or just"
|
|
180
|
+
echo " - Run task: just <task-name>"
|
|
181
|
+
echo " - Show task: just --show <task-name>"
|
|
182
|
+
echo " - Edit Justfile: edit your project's Justfile"
|