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,312 @@
|
|
|
1
|
+
# Bun Overlay
|
|
2
|
+
|
|
3
|
+
Adds Bun runtime - an all-in-one JavaScript runtime, bundler, test runner, and package manager that's faster than Node.js.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Bun** - Latest version of the Bun runtime
|
|
8
|
+
- **Built-in bundler** - Fast bundling without webpack/vite
|
|
9
|
+
- **Built-in test runner** - Jest-compatible testing
|
|
10
|
+
- **Built-in package manager** - npm-compatible, faster installs
|
|
11
|
+
- **TypeScript support** - Native TypeScript execution
|
|
12
|
+
- **Node.js compatibility** - Runs most Node.js packages
|
|
13
|
+
- **VS Code Extensions:**
|
|
14
|
+
- Bun for Visual Studio Code (oven.bun-vscode)
|
|
15
|
+
- ESLint (dbaeumer.vscode-eslint)
|
|
16
|
+
- Prettier (esbenp.prettier-vscode)
|
|
17
|
+
|
|
18
|
+
## How It Works
|
|
19
|
+
|
|
20
|
+
This overlay installs Bun via the official installation script. Bun is a drop-in replacement for Node.js with significantly faster startup times and module resolution. It includes Node.js LTS for compatibility with packages that require native Node.js APIs.
|
|
21
|
+
|
|
22
|
+
**Installation method:**
|
|
23
|
+
|
|
24
|
+
- Bun via official install script
|
|
25
|
+
- Node.js LTS for compatibility
|
|
26
|
+
- Installed to ~/.bun
|
|
27
|
+
|
|
28
|
+
## Common Commands
|
|
29
|
+
|
|
30
|
+
### Package Management
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Install dependencies (npm-compatible)
|
|
34
|
+
bun install
|
|
35
|
+
|
|
36
|
+
# Add package
|
|
37
|
+
bun add express
|
|
38
|
+
|
|
39
|
+
# Add dev dependency
|
|
40
|
+
bun add -d typescript
|
|
41
|
+
|
|
42
|
+
# Remove package
|
|
43
|
+
bun remove express
|
|
44
|
+
|
|
45
|
+
# Update all dependencies
|
|
46
|
+
bun update
|
|
47
|
+
|
|
48
|
+
# Global install
|
|
49
|
+
bun add -g typescript
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Running Scripts
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Run TypeScript/JavaScript directly
|
|
56
|
+
bun run index.ts
|
|
57
|
+
bun run server.js
|
|
58
|
+
|
|
59
|
+
# Run package.json script
|
|
60
|
+
bun run dev
|
|
61
|
+
bun run build
|
|
62
|
+
bun run test
|
|
63
|
+
|
|
64
|
+
# Run with watch mode
|
|
65
|
+
bun --watch run index.ts
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Building and Bundling
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Bundle application
|
|
72
|
+
bun build ./index.tsx --outdir ./dist
|
|
73
|
+
|
|
74
|
+
# Bundle with minification
|
|
75
|
+
bun build ./index.tsx --minify --outdir ./dist
|
|
76
|
+
|
|
77
|
+
# Bundle for production
|
|
78
|
+
bun build ./index.tsx --minify --sourcemap --outdir ./dist
|
|
79
|
+
|
|
80
|
+
# Create standalone executable
|
|
81
|
+
bun build ./cli.ts --compile --outfile mycli
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Testing
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# Run tests (Jest-compatible)
|
|
88
|
+
bun test
|
|
89
|
+
|
|
90
|
+
# Run specific test file
|
|
91
|
+
bun test file.test.ts
|
|
92
|
+
|
|
93
|
+
# Watch mode
|
|
94
|
+
bun test --watch
|
|
95
|
+
|
|
96
|
+
# Coverage
|
|
97
|
+
bun test --coverage
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### HTTP Server
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# Create simple server (built-in)
|
|
104
|
+
bun run server.ts
|
|
105
|
+
|
|
106
|
+
# Example server.ts:
|
|
107
|
+
cat > server.ts << 'EOF'
|
|
108
|
+
const server = Bun.serve({
|
|
109
|
+
port: 3000,
|
|
110
|
+
fetch(request) {
|
|
111
|
+
return new Response("Hello from Bun!");
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
console.log(`Listening on http://localhost:${server.port}`);
|
|
116
|
+
EOF
|
|
117
|
+
|
|
118
|
+
bun run server.ts
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Use Cases
|
|
122
|
+
|
|
123
|
+
- **Modern web applications** - React, Vue, Svelte with faster builds
|
|
124
|
+
- **API servers** - High-performance REST/GraphQL APIs
|
|
125
|
+
- **CLI tools** - Fast command-line applications
|
|
126
|
+
- **Microservices** - Lightweight services with fast cold starts
|
|
127
|
+
- **Edge functions** - Serverless functions with quick startup
|
|
128
|
+
- **Full-stack apps** - Next.js, Remix with Bun runtime
|
|
129
|
+
|
|
130
|
+
**Integrates well with:**
|
|
131
|
+
|
|
132
|
+
- `postgres`, `redis`, `mysql` - Database drivers (pg, ioredis, mysql2)
|
|
133
|
+
- `docker-sock` - Docker SDK (dockerode)
|
|
134
|
+
- `prometheus` - Metrics collection (prom-client)
|
|
135
|
+
|
|
136
|
+
## Configuration
|
|
137
|
+
|
|
138
|
+
### bunfig.toml
|
|
139
|
+
|
|
140
|
+
Create `bunfig.toml` in project root:
|
|
141
|
+
|
|
142
|
+
```toml
|
|
143
|
+
[install]
|
|
144
|
+
# Configure package manager
|
|
145
|
+
production = false
|
|
146
|
+
optional = true
|
|
147
|
+
dev = true
|
|
148
|
+
|
|
149
|
+
# Registry
|
|
150
|
+
registry = "https://registry.npmjs.org"
|
|
151
|
+
|
|
152
|
+
[test]
|
|
153
|
+
# Test configuration
|
|
154
|
+
coverage = true
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### tsconfig.json
|
|
158
|
+
|
|
159
|
+
Bun works with standard TypeScript configuration:
|
|
160
|
+
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"compilerOptions": {
|
|
164
|
+
"target": "ES2022",
|
|
165
|
+
"module": "ESNext",
|
|
166
|
+
"moduleResolution": "bundler",
|
|
167
|
+
"types": ["bun-types"]
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Application Integration
|
|
173
|
+
|
|
174
|
+
### Web Server with Bun
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
// server.ts
|
|
178
|
+
const server = Bun.serve({
|
|
179
|
+
port: 3000,
|
|
180
|
+
fetch(req) {
|
|
181
|
+
const url = new URL(req.url);
|
|
182
|
+
|
|
183
|
+
if (url.pathname === '/') {
|
|
184
|
+
return new Response('Hello from Bun!');
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
if (url.pathname === '/json') {
|
|
188
|
+
return Response.json({ message: 'JSON response' });
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return new Response('Not Found', { status: 404 });
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
console.log(`Server running on http://localhost:${server.port}`);
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**Run:**
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
bun run server.ts
|
|
202
|
+
# Access at http://localhost:3000
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### React with Bun
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Create React app
|
|
209
|
+
bun create react myapp
|
|
210
|
+
cd myapp
|
|
211
|
+
|
|
212
|
+
# Install dependencies
|
|
213
|
+
bun install
|
|
214
|
+
|
|
215
|
+
# Run dev server
|
|
216
|
+
bun run dev
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### PostgreSQL with Bun
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
import postgres from 'postgres';
|
|
223
|
+
|
|
224
|
+
const sql = postgres('postgres://postgres:postgres@postgres/mydb');
|
|
225
|
+
|
|
226
|
+
const users = await sql`SELECT * FROM users`;
|
|
227
|
+
console.log(users);
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Performance Comparison
|
|
231
|
+
|
|
232
|
+
| Operation | Bun | Node.js | Speedup |
|
|
233
|
+
| ------------------- | ---- | ------- | --------- |
|
|
234
|
+
| **Package install** | 5s | 25s | 5x faster |
|
|
235
|
+
| **Cold start** | 50ms | 200ms | 4x faster |
|
|
236
|
+
| **Bundling** | 2s | 10s | 5x faster |
|
|
237
|
+
| **Test execution** | 1s | 5s | 5x faster |
|
|
238
|
+
|
|
239
|
+
_Approximate benchmarks for typical projects_
|
|
240
|
+
|
|
241
|
+
## Troubleshooting
|
|
242
|
+
|
|
243
|
+
### Issue: Package compatibility
|
|
244
|
+
|
|
245
|
+
**Symptoms:**
|
|
246
|
+
|
|
247
|
+
- Package doesn't work with Bun
|
|
248
|
+
- Native module errors
|
|
249
|
+
|
|
250
|
+
**Solution:**
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# Use Node.js for specific commands
|
|
254
|
+
node script.js
|
|
255
|
+
|
|
256
|
+
# Or install with npm
|
|
257
|
+
npm install problematic-package
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Issue: TypeScript types
|
|
261
|
+
|
|
262
|
+
**Symptoms:**
|
|
263
|
+
|
|
264
|
+
- Missing type definitions for Bun APIs
|
|
265
|
+
|
|
266
|
+
**Solution:**
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
# Install Bun types
|
|
270
|
+
bun add -d bun-types
|
|
271
|
+
|
|
272
|
+
# Add to tsconfig.json
|
|
273
|
+
{
|
|
274
|
+
"compilerOptions": {
|
|
275
|
+
"types": ["bun-types"]
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### Issue: Bun not in PATH
|
|
281
|
+
|
|
282
|
+
**Solution:**
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
# Add to shell profile
|
|
286
|
+
export BUN_INSTALL="$HOME/.bun"
|
|
287
|
+
export PATH="$BUN_INSTALL/bin:$PATH"
|
|
288
|
+
|
|
289
|
+
# Reload shell
|
|
290
|
+
source ~/.bashrc
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
## References
|
|
294
|
+
|
|
295
|
+
- [Official Bun Documentation](https://bun.sh/docs) - Complete Bun documentation
|
|
296
|
+
- [Bun API Reference](https://bun.sh/docs/api) - Built-in APIs
|
|
297
|
+
- [Bun vs Node.js](https://bun.sh/docs/runtime/nodejs-apis) - Compatibility guide
|
|
298
|
+
- [Bun Examples](https://github.com/oven-sh/bun/tree/main/examples) - Sample projects
|
|
299
|
+
|
|
300
|
+
**Related Overlays:**
|
|
301
|
+
|
|
302
|
+
- `postgres` - PostgreSQL with pg driver
|
|
303
|
+
- `redis` - Redis with ioredis
|
|
304
|
+
- `docker-sock` - Docker access
|
|
305
|
+
- `prometheus` - Metrics with prom-client
|
|
306
|
+
|
|
307
|
+
## Notes
|
|
308
|
+
|
|
309
|
+
- **Node.js Compatibility:** Bun aims for Node.js compatibility but some packages may not work
|
|
310
|
+
- **Native Modules:** Some native Node.js modules may require Node.js runtime
|
|
311
|
+
- **Ecosystem Maturity:** Bun is newer than Node.js; some tools may have limited support
|
|
312
|
+
- **Production Use:** Evaluate thoroughly before production deployment
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.base.schema.json",
|
|
3
|
+
"features": {
|
|
4
|
+
"./features/cross-distro-packages": {
|
|
5
|
+
"apt": "unzip curl",
|
|
6
|
+
"apk": "unzip curl"
|
|
7
|
+
},
|
|
8
|
+
"ghcr.io/devcontainers/features/node:1": {
|
|
9
|
+
"version": "lts",
|
|
10
|
+
"nodeGypDependencies": false
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"customizations": {
|
|
14
|
+
"vscode": {
|
|
15
|
+
"extensions": ["oven.bun-vscode", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode"],
|
|
16
|
+
"settings": {
|
|
17
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
18
|
+
"[typescript]": {
|
|
19
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
20
|
+
},
|
|
21
|
+
"[javascript]": {
|
|
22
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"remoteEnv": {
|
|
28
|
+
"PATH": "${containerEnv:HOME}/.bun/bin:${containerEnv:PATH}"
|
|
29
|
+
},
|
|
30
|
+
"forwardPorts": [3000, 8080],
|
|
31
|
+
"portsAttributes": {
|
|
32
|
+
"3000": {
|
|
33
|
+
"label": "Dev Server",
|
|
34
|
+
"onAutoForward": "openBrowser"
|
|
35
|
+
},
|
|
36
|
+
"8080": {
|
|
37
|
+
"label": "Web App",
|
|
38
|
+
"onAutoForward": "notify"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: bun
|
|
2
|
+
name: Bun
|
|
3
|
+
description: Bun runtime - faster JavaScript runtime and package manager
|
|
4
|
+
category: language
|
|
5
|
+
supports: []
|
|
6
|
+
requires: []
|
|
7
|
+
suggests: []
|
|
8
|
+
conflicts: []
|
|
9
|
+
tags:
|
|
10
|
+
- language
|
|
11
|
+
- bun
|
|
12
|
+
- javascript
|
|
13
|
+
- typescript
|
|
14
|
+
ports:
|
|
15
|
+
- 3000
|
|
16
|
+
- 8080
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Bun setup script - Install Bun runtime
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "đ§ Setting up Bun development environment..."
|
|
7
|
+
|
|
8
|
+
# Install Bun with version pinning for security
|
|
9
|
+
echo "đĻ Installing Bun..."
|
|
10
|
+
if ! command -v bun &> /dev/null; then
|
|
11
|
+
# Pin to a specific version for security and reproducibility
|
|
12
|
+
BUN_VERSION="1.1.38"
|
|
13
|
+
|
|
14
|
+
# Detect architecture
|
|
15
|
+
ARCH=$(uname -m)
|
|
16
|
+
case $ARCH in
|
|
17
|
+
x86_64)
|
|
18
|
+
BUN_ARCH="x64"
|
|
19
|
+
# SHA256 checksum for bun-linux-x64 v1.1.38
|
|
20
|
+
BUN_CHECKSUM="a61da5357e28d4977fccd4851fed62ff4da3ea33853005c7dd93dac80bc53932"
|
|
21
|
+
;;
|
|
22
|
+
aarch64|arm64)
|
|
23
|
+
BUN_ARCH="aarch64"
|
|
24
|
+
# SHA256 checksum for bun-linux-aarch64 v1.1.38
|
|
25
|
+
BUN_CHECKSUM="3b08fd0b31f745509e1fed9c690c80d1a32ef2b3c8d059583f643f696639bd21"
|
|
26
|
+
;;
|
|
27
|
+
*)
|
|
28
|
+
echo " â Unsupported architecture: $ARCH"
|
|
29
|
+
echo " Bun supports x86_64 and aarch64/arm64. Your architecture is not supported."
|
|
30
|
+
exit 1
|
|
31
|
+
;;
|
|
32
|
+
esac
|
|
33
|
+
|
|
34
|
+
BUN_URL="https://github.com/oven-sh/bun/releases/download/bun-v${BUN_VERSION}/bun-linux-${BUN_ARCH}.zip"
|
|
35
|
+
|
|
36
|
+
echo " Downloading Bun version ${BUN_VERSION} for ${ARCH}..."
|
|
37
|
+
if ! wget "${BUN_URL}" -O /tmp/bun.zip 2>&1; then
|
|
38
|
+
echo " â Failed to download Bun from ${BUN_URL}"
|
|
39
|
+
exit 1
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# Verify checksum
|
|
43
|
+
echo " Verifying checksum..."
|
|
44
|
+
echo "${BUN_CHECKSUM} /tmp/bun.zip" | sha256sum -c - || {
|
|
45
|
+
echo " â Checksum verification failed!"
|
|
46
|
+
rm -f /tmp/bun.zip
|
|
47
|
+
exit 1
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# Extract and install
|
|
51
|
+
unzip -q /tmp/bun.zip -d /tmp/
|
|
52
|
+
mkdir -p "$HOME/.bun/bin"
|
|
53
|
+
mv /tmp/bun-linux-${BUN_ARCH}/bun "$HOME/.bun/bin/"
|
|
54
|
+
rm -rf /tmp/bun.zip /tmp/bun-linux-${BUN_ARCH}
|
|
55
|
+
echo " â
Bun installed (${BUN_VERSION})"
|
|
56
|
+
else
|
|
57
|
+
echo " â
Bun already installed"
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
# Reload shell environment
|
|
61
|
+
export BUN_INSTALL="$HOME/.bun"
|
|
62
|
+
export PATH="$BUN_INSTALL/bin:$PATH"
|
|
63
|
+
|
|
64
|
+
# Verify installation
|
|
65
|
+
if command -v bun &> /dev/null; then
|
|
66
|
+
INSTALLED_VERSION=$(bun --version)
|
|
67
|
+
echo "â Bun verified: v$INSTALLED_VERSION"
|
|
68
|
+
else
|
|
69
|
+
echo "â Bun installation failed - bun command not found"
|
|
70
|
+
exit 1
|
|
71
|
+
fi
|
|
72
|
+
|
|
73
|
+
# Install project dependencies if package.json exists
|
|
74
|
+
if [ -f "package.json" ]; then
|
|
75
|
+
echo "đĻ Installing project dependencies with Bun..."
|
|
76
|
+
bun install || echo "â ī¸ bun install failed"
|
|
77
|
+
fi
|
|
78
|
+
|
|
79
|
+
echo "â Bun setup complete"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Verification script for Bun overlay
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "đ Verifying Bun overlay..."
|
|
7
|
+
echo ""
|
|
8
|
+
|
|
9
|
+
# Check Bun is installed
|
|
10
|
+
echo "1ī¸âŖ Checking Bun..."
|
|
11
|
+
if command -v bun &> /dev/null; then
|
|
12
|
+
bun --version
|
|
13
|
+
echo " â
Bun found"
|
|
14
|
+
else
|
|
15
|
+
echo " â Bun not found"
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Check Node.js is available (for compatibility)
|
|
20
|
+
echo ""
|
|
21
|
+
echo "2ī¸âŖ Checking Node.js (for compatibility)..."
|
|
22
|
+
if command -v node &> /dev/null; then
|
|
23
|
+
node --version
|
|
24
|
+
echo " â
Node.js found (for compatibility)"
|
|
25
|
+
else
|
|
26
|
+
echo " â ī¸ Node.js not found (optional)"
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
echo ""
|
|
30
|
+
echo "â
Bun overlay verification complete"
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Codex Overlay
|
|
2
|
+
|
|
3
|
+
Adds OpenAI Codex CLI with a persistent `.codex` folder for configurations.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **OpenAI Codex CLI** - AI-powered code generation and assistance from the command line
|
|
8
|
+
- **Codex directory** - Creates `$HOME/.codex` for persistent configurations
|
|
9
|
+
|
|
10
|
+
## What is OpenAI Codex CLI?
|
|
11
|
+
|
|
12
|
+
The OpenAI Codex CLI (`@openai/codex`) provides command-line access to OpenAI's Codex AI model for:
|
|
13
|
+
|
|
14
|
+
- **Code generation** - Generate code from natural language descriptions
|
|
15
|
+
- **Code completion** - Intelligent code suggestions
|
|
16
|
+
- **Code explanation** - Understand complex code
|
|
17
|
+
- **Refactoring** - Improve existing code
|
|
18
|
+
|
|
19
|
+
## Configuration
|
|
20
|
+
|
|
21
|
+
**Configured paths:**
|
|
22
|
+
|
|
23
|
+
- `$HOME/.codex` - Configuration and tools directory (created automatically during setup)
|
|
24
|
+
|
|
25
|
+
## How It Works
|
|
26
|
+
|
|
27
|
+
This overlay:
|
|
28
|
+
|
|
29
|
+
1. Installs OpenAI Codex CLI globally via npm (`npm install -g @openai/codex`)
|
|
30
|
+
2. Creates the `$HOME/.codex` directory for persistent configurations
|
|
31
|
+
|
|
32
|
+
**After setup:**
|
|
33
|
+
|
|
34
|
+
- The `codex` command will be available immediately (npm global binaries are in PATH)
|
|
35
|
+
- Use it for AI-powered coding assistance
|
|
36
|
+
|
|
37
|
+
## Verification
|
|
38
|
+
|
|
39
|
+
After setup, run the verification script to ensure proper installation:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
bash .devcontainer/verify-codex.sh
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
This will check:
|
|
46
|
+
|
|
47
|
+
- Codex CLI is installed and in PATH
|
|
48
|
+
- `.codex` directory exists
|
|
49
|
+
|
|
50
|
+
## Troubleshooting
|
|
51
|
+
|
|
52
|
+
### codex command not found
|
|
53
|
+
|
|
54
|
+
**Issue:** After installing codex overlay, `codex` command is not recognized.
|
|
55
|
+
|
|
56
|
+
**Solution:**
|
|
57
|
+
|
|
58
|
+
1. Verify npm global binaries are in PATH:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npm config get prefix
|
|
62
|
+
# Should show: /usr/local or similar
|
|
63
|
+
|
|
64
|
+
which codex
|
|
65
|
+
# Should show: /usr/local/bin/codex or similar
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
2. If not found, rebuild the devcontainer:
|
|
69
|
+
- VS Code: `Cmd+Shift+P` â "Dev Containers: Rebuild Container"
|
|
70
|
+
|
|
71
|
+
3. Check installation manually:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npm list -g @openai/codex
|
|
75
|
+
# Should show installed version
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Usage
|
|
79
|
+
|
|
80
|
+
### Basic Commands
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Generate code from natural language
|
|
84
|
+
codex "create a function that fetches user data from an API"
|
|
85
|
+
|
|
86
|
+
# Get code explanations
|
|
87
|
+
codex explain "what does this regex do: /^[a-zA-Z0-9]+$/"
|
|
88
|
+
|
|
89
|
+
# Code completion (provide partial code)
|
|
90
|
+
codex complete "function fibonacci(n) {"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
For full documentation, visit: [OpenAI Codex CLI Documentation](https://github.com/openai/openai-codex-cli)
|
|
94
|
+
|
|
95
|
+
## Optional: Persistent .codex Mount
|
|
96
|
+
|
|
97
|
+
To share your `.codex` configurations between your host and container, create the directory on your host:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
mkdir -p ~/.codex
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Then add this mount to your `devcontainer.json`:
|
|
104
|
+
|
|
105
|
+
```json
|
|
106
|
+
"mounts": [
|
|
107
|
+
"source=${localEnv:HOME}${localEnv:USERPROFILE}/.codex,target=${containerEnv:HOME}/.codex,type=bind,consistency=cached"
|
|
108
|
+
]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
This allows you to:
|
|
112
|
+
|
|
113
|
+
- Share Codex configurations across multiple devcontainers
|
|
114
|
+
- Persist configurations on your host machine
|
|
115
|
+
- Maintain consistent settings across projects
|
|
116
|
+
|
|
117
|
+
**Important**: Only add this mount after creating the `~/.codex` directory on your host. Otherwise, the container may fail to start.
|
|
118
|
+
|
|
119
|
+
## Related Overlays
|
|
120
|
+
|
|
121
|
+
- **nodejs** - Required for npm and running the Codex CLI
|
|
122
|
+
- **git-helpers** - Git integration for AI-generated code
|
|
123
|
+
- **pre-commit** - Quality gates for AI-generated code
|
|
124
|
+
|
|
125
|
+
## Additional Resources
|
|
126
|
+
|
|
127
|
+
- [OpenAI Codex CLI](https://github.com/openai/openai-codex-cli)
|
|
128
|
+
- [OpenAI Platform](https://platform.openai.com/)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Codex setup script - Install OpenAI Codex CLI
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "đĻ Installing OpenAI Codex CLI..."
|
|
7
|
+
|
|
8
|
+
# Install @openai/codex globally
|
|
9
|
+
npm install -g @openai/codex
|
|
10
|
+
|
|
11
|
+
# Verify codex installation
|
|
12
|
+
if command -v codex &> /dev/null; then
|
|
13
|
+
echo "â Codex CLI installed successfully: $(codex --version 2>/dev/null || echo 'installed')"
|
|
14
|
+
else
|
|
15
|
+
echo "â Codex CLI installation failed"
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Create .codex directory for configuration
|
|
20
|
+
mkdir -p "$HOME/.codex"
|
|
21
|
+
|
|
22
|
+
echo "â Codex setup complete"
|
|
23
|
+
echo "âšī¸ OpenAI Codex CLI: https://github.com/openai/openai-codex-cli"
|
|
24
|
+
echo "âšī¸ Configuration directory: $HOME/.codex"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Codex overlay verification script
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
echo "đ Verifying Codex overlay setup..."
|
|
7
|
+
|
|
8
|
+
# Check if codex CLI is installed
|
|
9
|
+
if ! command -v codex &> /dev/null; then
|
|
10
|
+
echo "â codex CLI is not installed or not in PATH"
|
|
11
|
+
exit 1
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
echo "â codex CLI is installed: $(codex --version 2>/dev/null || echo 'installed')"
|
|
15
|
+
|
|
16
|
+
# Check .codex directory exists
|
|
17
|
+
if [ -d "$HOME/.codex" ]; then
|
|
18
|
+
echo "â .codex directory exists: $HOME/.codex"
|
|
19
|
+
else
|
|
20
|
+
echo "â ī¸ .codex directory not found at $HOME/.codex"
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
echo ""
|
|
24
|
+
echo "â
Codex overlay verification complete!"
|
|
25
|
+
echo ""
|
|
26
|
+
|
|
27
|
+
echo "đĄ Tips:"
|
|
28
|
+
echo " - Run 'codex --help' to see available commands"
|
|
29
|
+
echo " - Your Codex home directory is: $HOME/.codex"
|
|
30
|
+
echo " - Ensure 'codex' is available on your PATH inside the devcontainer"
|