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.
Files changed (327) hide show
  1. package/README.md +843 -0
  2. package/dist/scripts/init.d.ts +3 -0
  3. package/dist/scripts/init.d.ts.map +1 -0
  4. package/dist/scripts/init.js +1190 -0
  5. package/dist/scripts/init.js.map +1 -0
  6. package/dist/scripts/migrate-to-manifests.d.ts +12 -0
  7. package/dist/scripts/migrate-to-manifests.d.ts.map +1 -0
  8. package/dist/scripts/migrate-to-manifests.js +230 -0
  9. package/dist/scripts/migrate-to-manifests.js.map +1 -0
  10. package/dist/tool/questionnaire/composer.d.ts +6 -0
  11. package/dist/tool/questionnaire/composer.d.ts.map +1 -0
  12. package/dist/tool/questionnaire/composer.js +1232 -0
  13. package/dist/tool/questionnaire/composer.js.map +1 -0
  14. package/dist/tool/readme/markdown-parser.d.ts +30 -0
  15. package/dist/tool/readme/markdown-parser.d.ts.map +1 -0
  16. package/dist/tool/readme/markdown-parser.js +139 -0
  17. package/dist/tool/readme/markdown-parser.js.map +1 -0
  18. package/dist/tool/readme/readme-generator.d.ts +9 -0
  19. package/dist/tool/readme/readme-generator.d.ts.map +1 -0
  20. package/dist/tool/readme/readme-generator.js +422 -0
  21. package/dist/tool/readme/readme-generator.js.map +1 -0
  22. package/dist/tool/schema/custom-loader.d.ts +17 -0
  23. package/dist/tool/schema/custom-loader.d.ts.map +1 -0
  24. package/dist/tool/schema/custom-loader.js +149 -0
  25. package/dist/tool/schema/custom-loader.js.map +1 -0
  26. package/dist/tool/schema/overlay-loader.d.ts +47 -0
  27. package/dist/tool/schema/overlay-loader.d.ts.map +1 -0
  28. package/dist/tool/schema/overlay-loader.js +252 -0
  29. package/dist/tool/schema/overlay-loader.js.map +1 -0
  30. package/dist/tool/schema/types.d.ts +212 -0
  31. package/dist/tool/schema/types.d.ts.map +1 -0
  32. package/dist/tool/schema/types.js +5 -0
  33. package/dist/tool/schema/types.js.map +1 -0
  34. package/docs/README.md +308 -0
  35. package/docs/architecture.md +233 -0
  36. package/docs/creating-overlays.md +549 -0
  37. package/docs/custom-patches.md +540 -0
  38. package/docs/dependencies.md +279 -0
  39. package/docs/examples/custom-patches-example.md +85 -0
  40. package/docs/examples.md +576 -0
  41. package/docs/messaging-comparison.md +265 -0
  42. package/docs/messaging-quick-start.md +385 -0
  43. package/docs/observability-workflow.md +537 -0
  44. package/docs/overlay-manifest-refactoring.md +214 -0
  45. package/docs/overlay-metadata-archive.md +54 -0
  46. package/docs/overlays.md +523 -0
  47. package/docs/presets-architecture.md +498 -0
  48. package/docs/presets.md +366 -0
  49. package/docs/publishing.md +476 -0
  50. package/docs/quick-reference.md +326 -0
  51. package/docs/ux.md +170 -0
  52. package/features/README.md +85 -0
  53. package/features/cross-distro-packages/README.md +146 -0
  54. package/features/cross-distro-packages/devcontainer-feature.json +20 -0
  55. package/features/cross-distro-packages/install.sh +58 -0
  56. package/features/local-secrets-manager/devcontainer-feature.json +18 -0
  57. package/features/local-secrets-manager/install.sh +127 -0
  58. package/features/project-scaffolder/devcontainer-feature.json +24 -0
  59. package/features/project-scaffolder/install.sh +100 -0
  60. package/features/team-conventions/devcontainer-feature.json +24 -0
  61. package/features/team-conventions/install.sh +93 -0
  62. package/overlays/.registry/README.md +14 -0
  63. package/overlays/.registry/base-images.yml +26 -0
  64. package/overlays/.registry/base-templates.yml +7 -0
  65. package/overlays/README.md +155 -0
  66. package/overlays/alertmanager/.env.example +5 -0
  67. package/overlays/alertmanager/README.md +465 -0
  68. package/overlays/alertmanager/alert-rules.yml +56 -0
  69. package/overlays/alertmanager/alertmanager.yml +42 -0
  70. package/overlays/alertmanager/devcontainer.patch.json +12 -0
  71. package/overlays/alertmanager/docker-compose.yml +20 -0
  72. package/overlays/alertmanager/overlay.yml +17 -0
  73. package/overlays/alertmanager/setup.sh +53 -0
  74. package/overlays/alertmanager/verify.sh +31 -0
  75. package/overlays/aws-cli/README.md +473 -0
  76. package/overlays/aws-cli/devcontainer.patch.json +13 -0
  77. package/overlays/aws-cli/overlay.yml +13 -0
  78. package/overlays/azure-cli/README.md +551 -0
  79. package/overlays/azure-cli/devcontainer.patch.json +8 -0
  80. package/overlays/azure-cli/overlay.yml +13 -0
  81. package/overlays/bun/README.md +312 -0
  82. package/overlays/bun/devcontainer.patch.json +41 -0
  83. package/overlays/bun/overlay.yml +16 -0
  84. package/overlays/bun/setup.sh +79 -0
  85. package/overlays/bun/verify.sh +30 -0
  86. package/overlays/codex/README.md +128 -0
  87. package/overlays/codex/devcontainer.patch.json +3 -0
  88. package/overlays/codex/overlay.yml +14 -0
  89. package/overlays/codex/setup.sh +24 -0
  90. package/overlays/codex/verify.sh +30 -0
  91. package/overlays/commitlint/README.md +333 -0
  92. package/overlays/commitlint/devcontainer.patch.json +8 -0
  93. package/overlays/commitlint/overlay.yml +16 -0
  94. package/overlays/commitlint/setup.sh +234 -0
  95. package/overlays/direnv/README.md +504 -0
  96. package/overlays/direnv/devcontainer.patch.json +6 -0
  97. package/overlays/direnv/overlay.yml +13 -0
  98. package/overlays/direnv/setup.sh +139 -0
  99. package/overlays/docker-in-docker/README.md +534 -0
  100. package/overlays/docker-in-docker/devcontainer.patch.json +10 -0
  101. package/overlays/docker-in-docker/overlay.yml +13 -0
  102. package/overlays/docker-sock/README.md +256 -0
  103. package/overlays/docker-sock/devcontainer.patch.json +9 -0
  104. package/overlays/docker-sock/docker-compose.yml +8 -0
  105. package/overlays/docker-sock/overlay.yml +13 -0
  106. package/overlays/dotnet/README.md +147 -0
  107. package/overlays/dotnet/devcontainer.patch.json +51 -0
  108. package/overlays/dotnet/global-tools.txt +24 -0
  109. package/overlays/dotnet/overlay.yml +13 -0
  110. package/overlays/dotnet/setup.sh +51 -0
  111. package/overlays/dotnet/verify.sh +26 -0
  112. package/overlays/gcloud/README.md +269 -0
  113. package/overlays/gcloud/devcontainer.patch.json +14 -0
  114. package/overlays/gcloud/overlay.yml +14 -0
  115. package/overlays/gcloud/verify.sh +52 -0
  116. package/overlays/git-helpers/README.md +168 -0
  117. package/overlays/git-helpers/devcontainer.patch.json +33 -0
  118. package/overlays/git-helpers/overlay.yml +15 -0
  119. package/overlays/git-helpers/setup.sh +91 -0
  120. package/overlays/go/README.md +293 -0
  121. package/overlays/go/devcontainer.patch.json +43 -0
  122. package/overlays/go/overlay.yml +15 -0
  123. package/overlays/go/setup.sh +33 -0
  124. package/overlays/go/verify.sh +40 -0
  125. package/overlays/grafana/.env.example +9 -0
  126. package/overlays/grafana/README.md +462 -0
  127. package/overlays/grafana/dashboard-provider.yml +11 -0
  128. package/overlays/grafana/dashboards/observability-overview.json +263 -0
  129. package/overlays/grafana/devcontainer.patch.json +12 -0
  130. package/overlays/grafana/docker-compose.yml +27 -0
  131. package/overlays/grafana/grafana-datasources.yml +57 -0
  132. package/overlays/grafana/overlay.yml +21 -0
  133. package/overlays/grafana/verify.sh +34 -0
  134. package/overlays/jaeger/.env.example +7 -0
  135. package/overlays/jaeger/README.md +867 -0
  136. package/overlays/jaeger/devcontainer.patch.json +12 -0
  137. package/overlays/jaeger/docker-compose.yml +17 -0
  138. package/overlays/jaeger/overlay.yml +19 -0
  139. package/overlays/java/README.md +267 -0
  140. package/overlays/java/devcontainer.patch.json +44 -0
  141. package/overlays/java/overlay.yml +16 -0
  142. package/overlays/java/setup.sh +41 -0
  143. package/overlays/java/verify.sh +42 -0
  144. package/overlays/just/README.md +443 -0
  145. package/overlays/just/devcontainer.patch.json +3 -0
  146. package/overlays/just/overlay.yml +13 -0
  147. package/overlays/just/setup.sh +182 -0
  148. package/overlays/kubectl-helm/README.md +660 -0
  149. package/overlays/kubectl-helm/devcontainer.patch.json +10 -0
  150. package/overlays/kubectl-helm/overlay.yml +13 -0
  151. package/overlays/loki/.env.example +5 -0
  152. package/overlays/loki/README.md +1156 -0
  153. package/overlays/loki/devcontainer.patch.json +12 -0
  154. package/overlays/loki/docker-compose.yml +18 -0
  155. package/overlays/loki/loki-config.yaml +45 -0
  156. package/overlays/loki/overlay.yml +17 -0
  157. package/overlays/minio/.env.example +9 -0
  158. package/overlays/minio/README.md +639 -0
  159. package/overlays/minio/devcontainer.patch.json +30 -0
  160. package/overlays/minio/docker-compose.yml +28 -0
  161. package/overlays/minio/overlay.yml +18 -0
  162. package/overlays/minio/setup.sh +61 -0
  163. package/overlays/minio/verify.sh +64 -0
  164. package/overlays/mkdocs/README.md +309 -0
  165. package/overlays/mkdocs/devcontainer.patch.json +24 -0
  166. package/overlays/mkdocs/overlay.yml +15 -0
  167. package/overlays/modern-cli-tools/README.md +556 -0
  168. package/overlays/modern-cli-tools/devcontainer.patch.json +3 -0
  169. package/overlays/modern-cli-tools/overlay.yml +13 -0
  170. package/overlays/modern-cli-tools/setup.sh +153 -0
  171. package/overlays/mongodb/.env.example +9 -0
  172. package/overlays/mongodb/README.md +481 -0
  173. package/overlays/mongodb/devcontainer.patch.json +32 -0
  174. package/overlays/mongodb/docker-compose.yml +44 -0
  175. package/overlays/mongodb/overlay.yml +17 -0
  176. package/overlays/mongodb/verify.sh +48 -0
  177. package/overlays/mysql/.env.example +11 -0
  178. package/overlays/mysql/README.md +542 -0
  179. package/overlays/mysql/devcontainer.patch.json +34 -0
  180. package/overlays/mysql/docker-compose.yml +55 -0
  181. package/overlays/mysql/overlay.yml +16 -0
  182. package/overlays/mysql/verify.sh +48 -0
  183. package/overlays/nats/.env.example +5 -0
  184. package/overlays/nats/README.md +762 -0
  185. package/overlays/nats/devcontainer.patch.json +24 -0
  186. package/overlays/nats/docker-compose.yml +31 -0
  187. package/overlays/nats/overlay.yml +18 -0
  188. package/overlays/nats/verify.sh +50 -0
  189. package/overlays/ngrok/README.md +503 -0
  190. package/overlays/ngrok/devcontainer.patch.json +3 -0
  191. package/overlays/ngrok/overlay.yml +14 -0
  192. package/overlays/ngrok/setup.sh +125 -0
  193. package/overlays/nodejs/README.md +192 -0
  194. package/overlays/nodejs/devcontainer.patch.json +49 -0
  195. package/overlays/nodejs/global-packages.txt +16 -0
  196. package/overlays/nodejs/overlay.yml +14 -0
  197. package/overlays/nodejs/setup.sh +46 -0
  198. package/overlays/nodejs/verify.sh +32 -0
  199. package/overlays/otel-collector/.env.example +9 -0
  200. package/overlays/otel-collector/README.md +1257 -0
  201. package/overlays/otel-collector/devcontainer.patch.json +28 -0
  202. package/overlays/otel-collector/docker-compose.yml +22 -0
  203. package/overlays/otel-collector/otel-collector-config.yaml +68 -0
  204. package/overlays/otel-collector/overlay.yml +21 -0
  205. package/overlays/otel-collector/setup.sh +49 -0
  206. package/overlays/otel-demo-nodejs/.env.example +2 -0
  207. package/overlays/otel-demo-nodejs/Dockerfile-otel-demo-nodejs +17 -0
  208. package/overlays/otel-demo-nodejs/README.md +409 -0
  209. package/overlays/otel-demo-nodejs/devcontainer.patch.json +12 -0
  210. package/overlays/otel-demo-nodejs/docker-compose.yml +19 -0
  211. package/overlays/otel-demo-nodejs/overlay.yml +23 -0
  212. package/overlays/otel-demo-nodejs/package-otel-demo-nodejs.json +20 -0
  213. package/overlays/otel-demo-nodejs/server-otel-demo-nodejs.js +259 -0
  214. package/overlays/otel-demo-nodejs/tracing-otel-demo-nodejs.js +57 -0
  215. package/overlays/otel-demo-nodejs/verify.sh +31 -0
  216. package/overlays/otel-demo-python/.env.example +2 -0
  217. package/overlays/otel-demo-python/Dockerfile-otel-demo-python +16 -0
  218. package/overlays/otel-demo-python/README.md +82 -0
  219. package/overlays/otel-demo-python/app-otel-demo-python.py +208 -0
  220. package/overlays/otel-demo-python/devcontainer.patch.json +12 -0
  221. package/overlays/otel-demo-python/docker-compose.yml +19 -0
  222. package/overlays/otel-demo-python/overlay.yml +23 -0
  223. package/overlays/otel-demo-python/requirements-otel-demo-python.txt +4 -0
  224. package/overlays/otel-demo-python/verify.sh +31 -0
  225. package/overlays/playwright/README.md +629 -0
  226. package/overlays/playwright/devcontainer.patch.json +9 -0
  227. package/overlays/playwright/overlay.yml +13 -0
  228. package/overlays/postgres/.env.example +6 -0
  229. package/overlays/postgres/README.md +602 -0
  230. package/overlays/postgres/devcontainer.patch.json +21 -0
  231. package/overlays/postgres/docker-compose.yml +22 -0
  232. package/overlays/postgres/overlay.yml +15 -0
  233. package/overlays/postgres/verify.sh +45 -0
  234. package/overlays/powershell/README.md +314 -0
  235. package/overlays/powershell/devcontainer.patch.json +22 -0
  236. package/overlays/powershell/overlay.yml +13 -0
  237. package/overlays/powershell/setup.sh +29 -0
  238. package/overlays/powershell/verify.sh +38 -0
  239. package/overlays/pre-commit/README.md +263 -0
  240. package/overlays/pre-commit/devcontainer.patch.json +9 -0
  241. package/overlays/pre-commit/overlay.yml +16 -0
  242. package/overlays/pre-commit/setup.sh +129 -0
  243. package/overlays/presets/docs-site.yml +118 -0
  244. package/overlays/presets/fullstack.yml +181 -0
  245. package/overlays/presets/microservice.yml +118 -0
  246. package/overlays/presets/web-api.yml +109 -0
  247. package/overlays/prometheus/.env.example +5 -0
  248. package/overlays/prometheus/README.md +1246 -0
  249. package/overlays/prometheus/devcontainer.patch.json +12 -0
  250. package/overlays/prometheus/docker-compose.yml +22 -0
  251. package/overlays/prometheus/overlay.yml +17 -0
  252. package/overlays/prometheus/prometheus.yml +12 -0
  253. package/overlays/prometheus/verify.sh +34 -0
  254. package/overlays/promtail/.env.example +2 -0
  255. package/overlays/promtail/README.md +357 -0
  256. package/overlays/promtail/devcontainer.patch.json +5 -0
  257. package/overlays/promtail/docker-compose.yml +16 -0
  258. package/overlays/promtail/overlay.yml +17 -0
  259. package/overlays/promtail/promtail-config.yaml +60 -0
  260. package/overlays/promtail/verify.sh +31 -0
  261. package/overlays/pulumi/README.md +472 -0
  262. package/overlays/pulumi/devcontainer.patch.json +13 -0
  263. package/overlays/pulumi/overlay.yml +14 -0
  264. package/overlays/pulumi/verify.sh +31 -0
  265. package/overlays/python/README.md +919 -0
  266. package/overlays/python/devcontainer.patch.json +41 -0
  267. package/overlays/python/overlay.yml +12 -0
  268. package/overlays/python/requirements-overlay.txt +13 -0
  269. package/overlays/python/setup.sh +47 -0
  270. package/overlays/python/verify.sh +32 -0
  271. package/overlays/rabbitmq/.env.example +7 -0
  272. package/overlays/rabbitmq/README.md +680 -0
  273. package/overlays/rabbitmq/devcontainer.patch.json +28 -0
  274. package/overlays/rabbitmq/docker-compose.yml +30 -0
  275. package/overlays/rabbitmq/overlay.yml +18 -0
  276. package/overlays/rabbitmq/verify.sh +41 -0
  277. package/overlays/redis/.env.example +4 -0
  278. package/overlays/redis/README.md +776 -0
  279. package/overlays/redis/devcontainer.patch.json +21 -0
  280. package/overlays/redis/docker-compose.yml +21 -0
  281. package/overlays/redis/overlay.yml +15 -0
  282. package/overlays/redis/verify.sh +41 -0
  283. package/overlays/redpanda/.env.example +10 -0
  284. package/overlays/redpanda/README.md +703 -0
  285. package/overlays/redpanda/devcontainer.patch.json +37 -0
  286. package/overlays/redpanda/docker-compose.yml +67 -0
  287. package/overlays/redpanda/overlay.yml +21 -0
  288. package/overlays/redpanda/verify.sh +48 -0
  289. package/overlays/rust/README.md +299 -0
  290. package/overlays/rust/devcontainer.patch.json +39 -0
  291. package/overlays/rust/overlay.yml +15 -0
  292. package/overlays/rust/setup.sh +36 -0
  293. package/overlays/rust/verify.sh +51 -0
  294. package/overlays/sqlite/README.md +584 -0
  295. package/overlays/sqlite/devcontainer.patch.json +14 -0
  296. package/overlays/sqlite/overlay.yml +15 -0
  297. package/overlays/sqlite/setup.sh +27 -0
  298. package/overlays/sqlite/verify.sh +43 -0
  299. package/overlays/sqlserver/.env.example +6 -0
  300. package/overlays/sqlserver/README.md +592 -0
  301. package/overlays/sqlserver/devcontainer.patch.json +22 -0
  302. package/overlays/sqlserver/docker-compose.yml +32 -0
  303. package/overlays/sqlserver/overlay.yml +17 -0
  304. package/overlays/sqlserver/verify.sh +30 -0
  305. package/overlays/tempo/.env.example +5 -0
  306. package/overlays/tempo/README.md +273 -0
  307. package/overlays/tempo/devcontainer.patch.json +12 -0
  308. package/overlays/tempo/docker-compose.yml +20 -0
  309. package/overlays/tempo/overlay.yml +20 -0
  310. package/overlays/tempo/tempo-config.yaml +32 -0
  311. package/overlays/tempo/verify.sh +31 -0
  312. package/overlays/terraform/README.md +389 -0
  313. package/overlays/terraform/devcontainer.patch.json +15 -0
  314. package/overlays/terraform/overlay.yml +14 -0
  315. package/overlays/terraform/verify.sh +63 -0
  316. package/package.json +74 -0
  317. package/templates/README.md +285 -0
  318. package/templates/compose/.devcontainer/devcontainer.json +46 -0
  319. package/templates/compose/.devcontainer/docker-compose.yml +12 -0
  320. package/templates/compose/README.md +20 -0
  321. package/templates/plain/.devcontainer/devcontainer.json +35 -0
  322. package/templates/plain/README.md +21 -0
  323. package/tool/README.md +281 -0
  324. package/tool/schema/base-images.schema.json +43 -0
  325. package/tool/schema/base-templates.schema.json +34 -0
  326. package/tool/schema/config.schema.json +71 -0
  327. 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,3 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json"
3
+ }
@@ -0,0 +1,13 @@
1
+ id: just
2
+ name: Just Task Runner
3
+ description: Fast, simple command runner (Rust-based alternative to Make)
4
+ category: dev
5
+ supports: []
6
+ requires: []
7
+ suggests: []
8
+ conflicts: []
9
+ tags:
10
+ - dev
11
+ - automation
12
+ - tasks
13
+ ports: []
@@ -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"