├── set-version.sh ├── test-feature.sh ├── test ├── cosmonic │ └── test.sh ├── dioxus │ └── test.sh ├── mprocs │ └── test.sh ├── wasmcloud │ └── test.sh ├── zellij │ └── test.sh ├── cargo-web │ └── test.sh ├── helix │ └── test.sh ├── honggfuzz │ └── test.sh ├── cargo-make │ └── test.sh ├── cargo-mobile │ └── test.sh ├── cargo-watch │ └── test.sh ├── cargo-llvm-cov │ └── test.sh ├── cargo-nextest │ └── test.sh ├── bacon │ └── test.sh ├── fermyon-spin │ └── test.sh ├── wasm-bindgen-cli │ └── test.sh ├── _global │ ├── scenarios.json │ └── ensure_rustlang_group.sh ├── wasm-server-runner │ └── test.sh ├── dexterous_developer │ └── test.sh ├── spin-message-trigger │ └── test.sh ├── wasm32-unknown-unknown │ └── test.sh ├── cargo-bundle │ └── test.sh ├── cargo-deny │ └── test.sh ├── cargo-expand │ └── test.sh ├── cargo-audit │ └── test.sh ├── sccache │ └── test.sh ├── cargo-binstall │ └── test.sh └── rust_windows_msvc │ └── test.sh ├── template ├── test │ └── test.sh └── src │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── src ├── helix │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cosmonic │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── wasmcloud │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── fermyon-spin │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-llvm-cov │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── bacon │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── dioxus │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── mprocs │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── sccache │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── spin-message-trigger │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── wasm32-unknown-unknown │ ├── devcontainer-feature.json │ ├── install.sh │ └── README.md ├── zellij │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-web │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── honggfuzz │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-deny │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-make │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-audit │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-bundle │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-expand │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-mobile │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-watch │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-nextest │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── wasm-bindgen-cli │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── wasm-server-runner │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── rust_windows_msvc │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── cargo-binstall │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh └── dexterous_developer │ ├── devcontainer-feature.json │ ├── README.md │ └── install.sh ├── .github └── workflows │ ├── validate.yml │ ├── release.yaml │ └── test.yaml ├── generate-new.sh ├── .devcontainer.json ├── LICENSE ├── README.md └── CONTRIBUTING.md /set-version.sh: -------------------------------------------------------------------------------- 1 | echo "Setting Version to $1" 2 | 3 | grep -RiIl '\"version\": ' | xargs sed -i "s/[0-9]\+[.][0-9]\+[.][0-9]\+/$1/g" 4 | -------------------------------------------------------------------------------- /test-feature.sh: -------------------------------------------------------------------------------- 1 | devcontainer features test --skip-scenarios -f $1 -i $2 2 | devcontainer features test --skip-autogenerated -f $1 -i $2 -------------------------------------------------------------------------------- /test/cosmonic/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" which cosmo | grep "cosmo" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/dioxus/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "dioxus" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/mprocs/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "mprocs" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/wasmcloud/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "wash" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/zellij/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "zellij" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /template/test/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "feature_id" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/cargo-web/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-web" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/helix/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "helix-term" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/honggfuzz/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "honggfuzz" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/cargo-make/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-make" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/cargo-mobile/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-mobile" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/cargo-watch/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-watch" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/cargo-llvm-cov/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-llvm-cov" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/cargo-nextest/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-nextest" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/bacon/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "bacon" 10 | 11 | bacon --help 12 | 13 | # Report result 14 | reportResults -------------------------------------------------------------------------------- /test/fermyon-spin/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | #check "installed" spin plugins list | grep "message" 10 | spin --help 11 | 12 | # Report result 13 | reportResults -------------------------------------------------------------------------------- /test/wasm-bindgen-cli/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "wasm-bindgen-cli" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /src/helix/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Helix", 3 | "id": "helix", 4 | "version": "0.1.8", 5 | "description": "A feature to install Helix", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /test/_global/scenarios.json: -------------------------------------------------------------------------------- 1 | { 2 | "ensure_rustlang_group": { 3 | "image": "mcr.microsoft.com/devcontainers/rust:1-1-bullseye", 4 | "features": { 5 | "bacon": {}, 6 | "cargo-binstall": {}, 7 | "cargo-watch": {} 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /test/wasm-server-runner/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "wasm-server-runner" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/dexterous_developer/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "dexterous_developer_cli" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/spin-message-trigger/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | spin plugins list 8 | # Definition specific tests 9 | check "installed" spin plugins list | grep "trigger-message" 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /test/wasm32-unknown-unknown/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "version" rustc --print target-list | grep wasm32-unknown-unknown 10 | 11 | # Report result 12 | reportResults -------------------------------------------------------------------------------- /src/cosmonic/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cosmonic", 3 | "id": "cosmonic", 4 | "version": "0.1.8", 5 | "description": "A feature to install Cosmonic", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/wasmcloud/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Wasmcloud", 3 | "id": "wasmcloud", 4 | "version": "0.1.8", 5 | "description": "A feature to install Wasmcloud", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /test/cargo-bundle/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-bundle" 10 | 11 | cargo bundle --help 12 | 13 | # Report result 14 | reportResults -------------------------------------------------------------------------------- /test/cargo-deny/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-deny" 10 | 11 | 12 | cargo deny --help 13 | 14 | # Report result 15 | reportResults -------------------------------------------------------------------------------- /test/cargo-expand/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-expand" 10 | 11 | cargo expand --help 12 | 13 | # Report result 14 | reportResults -------------------------------------------------------------------------------- /src/fermyon-spin/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Fermyon Spin", 3 | "id": "fermyon-spin", 4 | "version": "0.1.8", 5 | "description": "A feature to install Fermyon Spin", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/cargo-llvm-cov/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cargo LLVM Cov", 3 | "id": "cargo-llvm-cov", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo-llvm-cov", 6 | "options": {}, 7 | "installsAfter": ["ghcr.io/devcontainers/features/rust", "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall"] 8 | } 9 | -------------------------------------------------------------------------------- /src/bacon/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Bacon", 3 | "id": "bacon", 4 | "version": "0.1.8", 5 | "description": "A feature to install bacon", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /test/cargo-audit/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-audit" 10 | 11 | cargo new test_pkg 12 | cd ./test_pkg 13 | cargo build 14 | cargo audit 15 | 16 | # Report result 17 | reportResults -------------------------------------------------------------------------------- /src/dioxus/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Dioxus", 3 | "id": "dioxus", 4 | "version": "0.1.8", 5 | "description": "A feature to install dioxus", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/mprocs/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Mprocs", 3 | "id": "mprocs", 4 | "version": "0.1.8", 5 | "description": "A feature to install mprocs", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/sccache/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sccache", 3 | "id": "sccache", 4 | "version": "0.1.8", 5 | "description": "A feature to install sccache", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/spin-message-trigger/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Spin Message Trigger", 3 | "id": "spin-message-trigger", 4 | "version": "0.1.8", 5 | "description": "A feature to install spin message trigger", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/lee-orr/rusty-dev-containers/fermyon-spin" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/wasm32-unknown-unknown/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Rust wasm32_unknown_unknown", 3 | "id": "wasm32-unknown-unknown", 4 | "version": "0.1.8", 5 | "description": "A feature to install wasm32_unknown_unknown", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/zellij/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Zellij", 3 | "id": "zellij", 4 | "version": "0.1.8", 5 | "description": "A feature to install zellij", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/cargo-web/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cargo Web", 3 | "id": "cargo-web", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo web", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/honggfuzz/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Honggfuzz", 3 | "id": "honggfuzz", 4 | "version": "0.1.8", 5 | "description": "A feature to install honggfuzz", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/cargo-deny/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cargo Deny", 3 | "id": "cargo-deny", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo deny", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/cargo-make/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cargo-make", 3 | "id": "cargo-make", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo-make", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/cargo-audit/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cargo Audit", 3 | "id": "cargo-audit", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo audit", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/cargo-bundle/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cargo-bundle", 3 | "id": "cargo-bundle", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo-bundle", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/cargo-expand/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cargo Expand", 3 | "id": "cargo-expand", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo expand", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/cargo-mobile/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cargo-mobile", 3 | "id": "cargo-mobile", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo-mobile", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/cargo-watch/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cargo Watch", 3 | "id": "cargo-watch", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo watch", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /template/src/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "upercase_title", 3 | "id": "feature_id", 4 | "version": "0.1.8", 5 | "description": "A feature to install lowercase_title", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /test/sccache/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "sccache" 10 | check "can find sccache" which sccache 11 | check "sccache set in config" cat /.cargo/config.toml | grep "sccache" 12 | 13 | # Report result 14 | reportResults -------------------------------------------------------------------------------- /src/cargo-nextest/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cargo-nextest", 3 | "id": "cargo-nextest", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo-nextest", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/wasm-bindgen-cli/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wasm bindgen cli", 3 | "id": "wasm-bindgen-cli", 4 | "version": "0.1.8", 5 | "description": "A feature to install wasm-bingen-cli", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/wasm-server-runner/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Wasm Server Runner", 3 | "id": "wasm-server-runner", 4 | "version": "0.1.8", 5 | "description": "A feature to install wasm server runner", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /.github/workflows/validate.yml: -------------------------------------------------------------------------------- 1 | name: "Validate devcontainer-feature.json files" 2 | on: 3 | workflow_dispatch: 4 | pull_request: 5 | 6 | jobs: 7 | validate: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v3 11 | 12 | - name: "Validate devcontainer-feature.json files" 13 | uses: devcontainers/action@v1 14 | with: 15 | validate-only: "true" 16 | base-path-to-features: "./src" 17 | -------------------------------------------------------------------------------- /src/wasm32-unknown-unknown/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | rustup target add wasm32-unknown-unknown -------------------------------------------------------------------------------- /test/cargo-binstall/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | check "installed" cargo install --list | grep "cargo-binstall" 10 | 11 | if !cargo binstall --locked mprocs -y > /dev/null; then 12 | cargo install --locked mprocs 13 | } 14 | 15 | check "installed" cargo install --list | grep "mprocs" 16 | 17 | # Report result 18 | reportResults -------------------------------------------------------------------------------- /src/rust_windows_msvc/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Rust Windows MSVC", 3 | "id": "rust_windows_msvc", 4 | "version": "0.1.8", 5 | "description": "A feature to install xwin & the x86_64-pc-windows-msvc target, allowing cross compilation of windows executables", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/cargo-binstall/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Cargo Binstall", 3 | "id": "cargo-binstall", 4 | "version": "0.1.8", 5 | "description": "A feature to install cargo binstall", 6 | "options": { 7 | "packages": { 8 | "type": "string", 9 | "default": "", 10 | "description": "Comma separated list of cargo applications to install." 11 | } 12 | }, 13 | "installsAfter": [ 14 | "ghcr.io/devcontainers/features/rust" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /src/dexterous_developer/devcontainer-feature.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Dexterous Developer", 3 | "id": "dexterous_developer", 4 | "version": "0.1.8", 5 | "description": "A feature to install the dexterous_developer cli, a hot reload system for the bevy game engine, as well as the dependencies for compiling bevy on linux.", 6 | "options": { 7 | }, 8 | "installsAfter": [ 9 | "ghcr.io/devcontainers/features/rust", 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /src/bacon/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Bacon (bacon) 3 | 4 | A feature to install bacon 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/bacon:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/bacon/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/helix/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Helix (helix) 3 | 4 | A feature to install Helix 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/helix:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/helix/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/dioxus/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Dioxus (dioxus) 3 | 4 | A feature to install dioxus 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/dioxus:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/dioxus/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/mprocs/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Mprocs (mprocs) 3 | 4 | A feature to install mprocs 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/mprocs:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/mprocs/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/zellij/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Zellij (zellij) 3 | 4 | A feature to install zellij 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/zellij:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/zellij/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/sccache/README.md: -------------------------------------------------------------------------------- 1 | 2 | # sccache (sccache) 3 | 4 | A feature to install sccache 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/sccache:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/sccache/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cosmonic/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Cosmonic (cosmonic) 3 | 4 | A feature to install Cosmonic 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cosmonic:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cosmonic/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-web/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Cargo Web (cargo-web) 3 | 4 | A feature to install cargo web 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-web:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-web/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/honggfuzz/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Honggfuzz (honggfuzz) 3 | 4 | A feature to install honggfuzz 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/honggfuzz:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/honggfuzz/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/wasmcloud/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Wasmcloud (wasmcloud) 3 | 4 | A feature to install Wasmcloud 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/wasmcloud:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/wasmcloud/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-deny/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Cargo Deny (cargo-deny) 3 | 4 | A feature to install cargo deny 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-deny:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-deny/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-make/README.md: -------------------------------------------------------------------------------- 1 | 2 | # cargo-make (cargo-make) 3 | 4 | A feature to install cargo-make 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-make:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-make/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-audit/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Cargo Audit (cargo-audit) 3 | 4 | A feature to install cargo audit 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-audit:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-audit/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-watch/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Cargo Watch (cargo-watch) 3 | 4 | A feature to install cargo watch 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-watch:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-watch/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-bundle/README.md: -------------------------------------------------------------------------------- 1 | 2 | # cargo-bundle (cargo-bundle) 3 | 4 | A feature to install cargo-bundle 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-bundle:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-bundle/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-expand/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Cargo Expand (cargo-expand) 3 | 4 | A feature to install cargo expand 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-expand:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-expand/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-mobile/README.md: -------------------------------------------------------------------------------- 1 | 2 | # cargo-mobile (cargo-mobile) 3 | 4 | A feature to install cargo-mobile 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-mobile:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-mobile/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/fermyon-spin/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Fermyon Spin (fermyon-spin) 3 | 4 | A feature to install Fermyon Spin 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/fermyon-spin:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/fermyon-spin/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /template/src/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Cargo Expand (cargo-expand) 3 | 4 | A feature to install cargo expand 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-expand:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-expand/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-nextest/README.md: -------------------------------------------------------------------------------- 1 | 2 | # cargo-nextest (cargo-nextest) 3 | 4 | A feature to install cargo-nextest 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-nextest:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-nextest/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /test/rust_windows_msvc/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | # Optional: Import test library 6 | source dev-container-features-test-lib 7 | 8 | # Definition specific tests 9 | echo "Check XWIN is installed" 10 | cargo install --list | grep "xwin" 11 | 12 | echo "Check for XWIN dir" 13 | ls -la / | grep ".xwin" 14 | 15 | echo "Cat config.toml" 16 | cat /.cargo/config.toml | grep "/.xwin" 17 | 18 | check "installed" cargo install --list | grep "xwin" 19 | check "setup directory" ls -la / | grep ".xwin" 20 | check "added to cargo config" cat /.cargo/config.toml | grep "/.xwin" 21 | 22 | # Report result 23 | reportResults -------------------------------------------------------------------------------- /src/bacon/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall bacon --locked -y > /dev/null; then 20 | cargo install bacon --locked 21 | fi -------------------------------------------------------------------------------- /src/cargo-llvm-cov/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Cargo LLVM Cov (cargo-llvm-cov) 3 | 4 | A feature to install cargo-llvm-cov 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-llvm-cov:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-llvm-cov/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/mprocs/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall mprocs --locked -y > /dev/null; then 20 | cargo install mprocs --locked 21 | fi -------------------------------------------------------------------------------- /src/zellij/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall zellij --locked -y > /dev/null; then 20 | cargo install zellij --locked 21 | fi -------------------------------------------------------------------------------- /src/wasm-bindgen-cli/README.md: -------------------------------------------------------------------------------- 1 | 2 | # wasm bindgen cli (wasm-bindgen-cli) 3 | 4 | A feature to install wasm-bingen-cli 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/wasm-bindgen-cli:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/wasm-bindgen-cli/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-watch/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall cargo-watch --locked -y > /dev/null; then 20 | cargo install cargo-watch --locked 21 | fi -------------------------------------------------------------------------------- /src/wasm-server-runner/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Wasm Server Runner (wasm-server-runner) 3 | 4 | A feature to install wasm server runner 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/wasm-server-runner:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/wasm-server-runner/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/spin-message-trigger/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Spin Message Trigger (spin-message-trigger) 3 | 4 | A feature to install spin message trigger 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/spin-message-trigger:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/spin-message-trigger/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/wasm-bindgen-cli/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall wasm-bindgen-cli --locked -y > /dev/null; then 20 | cargo install wasm-bindgen-cli --locked 21 | fi -------------------------------------------------------------------------------- /src/cargo-web/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall cargo-web --locked -y > /dev/null; then 20 | cargo install cargo-web --locked 21 | fi -------------------------------------------------------------------------------- /src/honggfuzz/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall honggfuzz --locked -y > /dev/null; then 20 | cargo install honggfuzz --locked 21 | fi -------------------------------------------------------------------------------- /template/src/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall feature_id --locked -y > /dev/null; then 20 | cargo install feature_id --locked 21 | } -------------------------------------------------------------------------------- /src/cargo-deny/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall cargo-deny --locked -y > /dev/null; then 20 | cargo install cargo-deny --locked 21 | fi -------------------------------------------------------------------------------- /src/cargo-make/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall cargo-make --locked -y > /dev/null; then 20 | cargo install cargo-make --locked 21 | fi -------------------------------------------------------------------------------- /src/cargo-bundle/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall cargo-bundle --locked -y > /dev/null; then 20 | cargo install cargo-bundle --locked 21 | fi -------------------------------------------------------------------------------- /src/cargo-expand/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall cargo-expand --locked -y > /dev/null; then 20 | cargo install cargo-expand --locked 21 | fi -------------------------------------------------------------------------------- /src/wasm-server-runner/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 13 | cargo install cargo-binstall 14 | fi 15 | 16 | umask 002 17 | if !cargo binstall wasm-server-runner -f -y > /dev/null; then 18 | cargo install wasm-server-runner -f 19 | fi 20 | -------------------------------------------------------------------------------- /src/wasm32-unknown-unknown/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Rust wasm32_unknown_unknown (wasm32-unknown-unknown) 3 | 4 | A feature to install wasm32_unknown_unknown 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/wasm32-unknown-unknown:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/wasm32-unknown-unknown/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /generate-new.sh: -------------------------------------------------------------------------------- 1 | echo "Generating Template For $1" 2 | 3 | mkdir ./src/$1 4 | mkdir ./test/$1 5 | cp -R ./template/src/* ./src/$1/ 6 | cp -R ./template/test/* ./test/$1/ 7 | 8 | cd ./src/$1 9 | grep -RiIl 'feature_id' | xargs sed -i "s/feature_id/$1/g" 10 | grep -RiIl 'lowercase_title' | xargs sed -i "s/lowercase_title/${2,,}/g" 11 | grep -RiIl 'upercase_title' | xargs sed -i "s/upercase_title/$2/g" 12 | 13 | cd ../../test/$1 14 | grep -RiIl 'feature_id' | xargs sed -i "s/feature_id/$1/g" 15 | 16 | cd ../../ 17 | 18 | echo "| $2 | ghcr.io/lee-orr/rusty-dev-containers/$1:0 | $3 |" >> README.md 19 | 20 | echo ".github/workflows/test.yaml" | xargs sed -i "s/# NEXT/- $1\n # NEXT/g" -------------------------------------------------------------------------------- /src/cargo-llvm-cov/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall cargo-llvm-cov --locked -y > /dev/null; then 20 | cargo install cargo-llvm-cov --locked 21 | fi -------------------------------------------------------------------------------- /src/cargo-binstall/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Cargo Binstall (cargo-binstall) 3 | 4 | A feature to install cargo binstall 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | | packages | Comma separated list of cargo applications to install. | string | - | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/cargo-binstall/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/rust_windows_msvc/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Rust Windows MSVC (rust_windows_msvc) 3 | 4 | A feature to install xwin & the x86_64-pc-windows-msvc target, allowing cross compilation of windows executables 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/rust_windows_msvc:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/rust_windows_msvc/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/cargo-mobile/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 13 | cargo install cargo-binstall 14 | fi 15 | 16 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 17 | cargo install cargo-binstall 18 | fi 19 | 20 | umask 002 21 | cargo install --git https://github.com/BrainiumLLC/cargo-mobile -------------------------------------------------------------------------------- /src/cargo-binstall/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | PACKAGES=${PACKAGES:-""} 5 | 6 | CARGO_PACKAGES=("${PACKAGES//,/ }") 7 | 8 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 9 | which curl > /dev/null || (apt update && apt install curl -y -qq) 10 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 11 | source $HOME/.cargo/env 12 | fi 13 | 14 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 15 | 16 | cargo install cargo-binstall 17 | 18 | if [ -z "${PACKAGES}" ]; then 19 | echo "No packages specified, and no upgrade required. Skip installation..." 20 | exit 0 21 | fi 22 | 23 | umask 002 24 | cargo binstall -y --force --locked $CARGO_PACKAGES 25 | -------------------------------------------------------------------------------- /src/cargo-audit/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | dpkg -l | grep libssl3 || (apt update && apt install libssl3 libssl-dev -y -qq) 12 | 13 | 14 | 15 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 16 | cargo install cargo-binstall 17 | fi 18 | 19 | umask 002 20 | if !cargo binstall cargo-audit --locked -y > /dev/null; then 21 | cargo install cargo-audit --locked 22 | fi -------------------------------------------------------------------------------- /src/dexterous_developer/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Dexterous Developer (dexterous_developer) 3 | 4 | A feature to install the dexterous_developer cli, a hot reload system for the bevy game engine, as well as the dependencies for compiling bevy on linux. 5 | 6 | ## Example Usage 7 | 8 | ```json 9 | "features": { 10 | "ghcr.io/lee-orr/rusty-dev-containers/dexterous_developer:0": {} 11 | } 12 | ``` 13 | 14 | ## Options 15 | 16 | | Options Id | Description | Type | Default Value | 17 | |-----|-----|-----|-----| 18 | 19 | 20 | 21 | 22 | --- 23 | 24 | _Note: This file was auto-generated from the [devcontainer-feature.json](https://github.com/lee-orr/rusty-dev-containers/blob/main/src/dexterous_developer/devcontainer-feature.json). Add additional notes to a `NOTES.md`._ 25 | -------------------------------------------------------------------------------- /src/sccache/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | umask 002 19 | if !cargo binstall sccache --locked -y > /dev/null; then 20 | cargo install sccache --locked 21 | fi 22 | 23 | mkdir /.cargo 24 | echo "[build]" >> /.cargo/config.toml 25 | echo "rustc-wrapper = \"sccache\"" >> /.cargo/config.toml -------------------------------------------------------------------------------- /src/helix/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | dpkg -l | grep pkg-config || (apt update && apt install pkg-config -y -qq) 12 | dpkg -l | grep "ii git" || (apt update && apt install git -y -qq) 13 | 14 | 15 | git clone https://github.com/helix-editor/helix 16 | cd helix 17 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 18 | cargo install cargo-binstall 19 | fi 20 | 21 | umask 002 22 | cargo install --path helix-term --locked -------------------------------------------------------------------------------- /test/_global/ensure_rustlang_group.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | function testgroup() { 6 | local groupname="$1" 7 | local filename="$2" 8 | test "$(stat --printf '%G' ${filename})" = "$groupname" 9 | } 10 | 11 | # text for g=rwx 12 | function test_directory_perms() { 13 | local filename="$1" 14 | local permissions="$(stat --printf '%05a' $filename)" 15 | ((("$permissions" & 070) == 070)) 16 | } 17 | 18 | source dev-container-features-test-lib 19 | 20 | check 'rustlang group exists' grep ^rustlang /etc/group 21 | check '$CARGO_HOME/registry/: group is set' testgroup rustlang $CARGO_HOME/registry 22 | check '$CARGO_HOME/registry/: group permissions' test_directory_perms $CARGO_HOME/registry 23 | 24 | reportResults 25 | -------------------------------------------------------------------------------- /src/dioxus/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 19 | cargo install cargo-binstall 20 | fi 21 | 22 | umask 002 23 | if !cargo binstall dioxus-cli --locked -y > /dev/null; then 24 | cargo install dioxus-cli --locked 25 | fi -------------------------------------------------------------------------------- /src/cargo-nextest/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 15 | cargo install cargo-binstall 16 | fi 17 | 18 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 19 | cargo install cargo-binstall 20 | fi 21 | 22 | umask 002 23 | if !cargo binstall cargo-nextest --locked -y > /dev/null; then 24 | cargo install cargo-nextest --locked 25 | fi -------------------------------------------------------------------------------- /.devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "image": "mcr.microsoft.com/devcontainers/javascript-node:0-18", 3 | "customizations": { 4 | "vscode": { 5 | "settings": { 6 | "json.schemas": [ 7 | { 8 | "fileMatch": [ 9 | "*/devcontainer-feature.json" 10 | ], 11 | "url": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainerFeature.schema.json" 12 | } 13 | ] 14 | }, 15 | "extensions": [ 16 | "mads-hartmann.bash-ide-vscode" 17 | ] 18 | } 19 | }, 20 | "features": { 21 | "ghcr.io/devcontainers/features/docker-in-docker:2": {} 22 | }, 23 | "remoteUser": "node", 24 | "updateContentCommand": "npm install -g @devcontainers/cli" 25 | } 26 | -------------------------------------------------------------------------------- /src/fermyon-spin/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | dpkg -l | grep libssl-dev || (apt update && apt install libssl-dev -y -qq) 12 | dpkg -l | grep pkg-config || (apt update && apt install pkg-config -y -qq) 13 | dpkg -l | grep "ii git" || (apt update && apt install git -y -qq) 14 | 15 | 16 | rustup target add wasm32-unknown-unknown 17 | rustup target add wasm32-wasi 18 | 19 | curl -fsSL https://developer.fermyon.com/downloads/install.sh | bash 20 | cp spin /usr/local/bin/ 21 | 22 | spin plugins install --url https://github.com/itowlson/spin-pluginify/releases/download/canary/pluginify.json --yes -------------------------------------------------------------------------------- /src/cosmonic/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | dpkg -l | grep pkg-config || (apt update && apt install pkg-config -y -qq) 12 | dpkg -l | grep libz-dev|| (apt update && apt install libz-dev -y -qq) 13 | dpkg -l | grep "ii git" || (apt update && apt install git -y -qq) 14 | 15 | curl -fLO https://www.openssl.org/source/openssl-1.1.1s.tar.gz 16 | tar -xvf openssl-1.1.1s.tar.gz 17 | cd openssl-1.1.1s 18 | ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib 19 | make 20 | make test 21 | make install 22 | 23 | bash -c "$(curl -fsSL https://cosmonic.sh/install.sh)" 24 | 25 | echo "export PATH=\"${HOME}/.cosmo/bin:\${PATH}\"" >> "${HOME}/.bashrc" && source "${HOME}/.bashrc" 26 | -------------------------------------------------------------------------------- /src/dexterous_developer/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | dpkg -l | grep libssl-dev || (apt update && apt install libssl-dev -y -qq) 12 | dpkg -l | grep pkg-config || (apt update && apt install pkg-config -y -qq) 13 | 14 | 15 | 16 | apt install -y g++ pkg-config libx11-dev libasound2-dev libudev-dev libwayland-dev libxkbcommon-dev clang lld mold 17 | 18 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 19 | cargo install cargo-binstall 20 | fi 21 | 22 | umask 002 23 | if !cargo binstall dexterous_developer_cli --locked -y > /dev/null; then 24 | cargo install dexterous_developer_cli --locked 25 | fi 26 | 27 | rustup default nightly 28 | -------------------------------------------------------------------------------- /src/wasmcloud/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which rustup > /dev/null; then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | dpkg -l | grep pkg-config || (apt update && apt install pkg-config -y -qq) 12 | dpkg -l | grep libz-dev|| (apt update && apt install libz-dev -y -qq) 13 | dpkg -l | grep "ii git" || (apt update && apt install git -y -qq) 14 | 15 | curl -fLO https://www.openssl.org/source/openssl-1.1.1s.tar.gz 16 | tar -xvf openssl-1.1.1s.tar.gz 17 | cd openssl-1.1.1s 18 | ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib 19 | make 20 | make test 21 | make install 22 | 23 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 24 | cargo install cargo-binstall 25 | fi 26 | 27 | umask 002 28 | cargo install wash-cli --git https://github.com/wasmcloud/wash --force 29 | 30 | -------------------------------------------------------------------------------- /src/spin-message-trigger/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! which spin > /dev/null; then 5 | 6 | if ! which rustup > /dev/null; then 7 | which curl > /dev/null || (apt update && apt install curl -y -qq) 8 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 9 | source $HOME/.cargo/env 10 | fi 11 | 12 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 13 | dpkg -l | grep libssl-dev || (apt update && apt install libssl-dev -y -qq) 14 | dpkg -l | grep pkg-config || (apt update && apt install pkg-config -y -qq) 15 | dpkg -l | grep "ii git" || (apt update && apt install git -y -qq) 16 | 17 | 18 | rustup target add wasm32-unknown-unknown 19 | rustup target add wasm32-wasi 20 | 21 | curl -fsSL https://developer.fermyon.com/downloads/install.sh | bash 22 | cp spin /usr/local/bin/ 23 | 24 | spin plugins install --url https://github.com/itowlson/spin-pluginify/releases/download/canary/pluginify.json --yes 25 | fi 26 | 27 | spin plugin install --url https://github.com/lee-orr/spin-message-trigger/releases/download/canary/trigger-message.json --yes -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Lee-Orr 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/rust_windows_msvc/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | if ! (which rustup > /dev/null && which cargo > /dev/null); then 5 | which curl > /dev/null || (apt update && apt install curl -y -qq) 6 | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y 7 | source $HOME/.cargo/env 8 | fi 9 | 10 | dpkg -l | grep build-essential || (apt update && apt install build-essential -y -qq) 11 | 12 | 13 | 14 | rustup target add x86_64-pc-windows-msvc 15 | if ! cargo install --list | grep "cargo-binstall" > /dev/null; then 16 | cargo install cargo-binstall 17 | fi 18 | 19 | umask 002 20 | cargo install xwin 21 | 22 | xwin --accept-license splat --output /.xwin 23 | 24 | mkdir /.cargo 25 | 26 | echo "[target.x86_64-pc-windows-msvc]" >> /.cargo/config.toml 27 | echo "linker = \"lld\"" >> /.cargo/config.toml 28 | echo "rustflags = [" >> /.cargo/config.toml 29 | echo " \"-Lnative=/.xwin/crt/lib/x86_64\"," >> /.cargo/config.toml 30 | echo " \"-Lnative=/.xwin/sdk/lib/um/x86_64\"," >> /.cargo/config.toml 31 | echo " \"-Lnative=/.xwin/sdk/lib/ucrt/x86_64\"" >> /.cargo/config.toml 32 | echo "]" >> /.cargo/config.toml 33 | -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: "Release dev container features & Generate Documentation" 2 | on: 3 | workflow_dispatch: 4 | 5 | jobs: 6 | deploy: 7 | if: ${{ github.ref == 'refs/heads/main' }} 8 | runs-on: ubuntu-latest 9 | permissions: 10 | contents: write 11 | pull-requests: write 12 | packages: write 13 | steps: 14 | - uses: actions/checkout@v3 15 | 16 | - name: "Publish Features" 17 | uses: devcontainers/action@v1 18 | with: 19 | publish-features: "true" 20 | base-path-to-features: "./src" 21 | generate-docs: "true" 22 | 23 | env: 24 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 25 | 26 | - name: Create PR for Documentation 27 | id: push_image_info 28 | env: 29 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 30 | run: | 31 | set -e 32 | echo "Start." 33 | # Configure git and Push updates 34 | git config --global user.email github-actions@github.com 35 | git config --global user.name github-actions 36 | git config pull.rebase false 37 | branch=automated-documentation-update-$GITHUB_RUN_ID 38 | git checkout -b $branch 39 | message='Automated documentation update' 40 | # Add / update and commit 41 | git add */**/README.md 42 | git commit -m 'Automated documentation update [skip ci]' || export NO_UPDATES=true 43 | # Push 44 | if [ "$NO_UPDATES" != "true" ] ; then 45 | git push origin "$branch" 46 | gh pr create --title "$message" --body "$message" 47 | fi 48 | -------------------------------------------------------------------------------- /.github/workflows/test.yaml: -------------------------------------------------------------------------------- 1 | name: "CI - Test Features" 2 | on: 3 | push: 4 | branches: 5 | - main 6 | pull_request: 7 | workflow_dispatch: 8 | 9 | concurrency: 10 | group: ${{ github.ref }} 11 | cancel-in-progress: true 12 | 13 | jobs: 14 | test-autogenerated: 15 | runs-on: ubuntu-latest 16 | continue-on-error: true 17 | strategy: 18 | matrix: 19 | features: 20 | - cargo-watch 21 | - cargo-expand 22 | - cargo-binstall 23 | - wasm32-unknown-unknown 24 | - wasm-bindgen-cli 25 | - mprocs 26 | - bacon 27 | - zellij 28 | - fermyon-spin 29 | - wasmcloud 30 | - cosmonic 31 | - helix 32 | - cargo-bundle 33 | - cargo-mobile 34 | - cargo-audit 35 | - cargo-make 36 | - cargo-deny 37 | - cargo-nextest 38 | - honggfuzz 39 | - spin-message-trigger 40 | - dioxus 41 | - cargo-web 42 | - wasm-server-runner 43 | - dexterous_developer 44 | - rust_windows_msvc 45 | - sccache 46 | - cargo-llvm-cov 47 | # NEXT 48 | baseImage: 49 | - debian:latest 50 | - ubuntu:latest 51 | - rust:bookworm 52 | steps: 53 | - uses: actions/checkout@v3 54 | 55 | - name: "Install latest devcontainer CLI" 56 | run: npm install -g @devcontainers/cli 57 | 58 | - name: "Generating tests for '${{ matrix.features }}' against '${{ matrix.baseImage }}'" 59 | run: devcontainer features test --skip-scenarios -f ${{ matrix.features }} -i ${{ matrix.baseImage }} . 60 | 61 | test-scenarios: 62 | runs-on: ubuntu-latest 63 | continue-on-error: true 64 | strategy: 65 | matrix: 66 | features: 67 | - cargo-watch 68 | - cargo-expand 69 | - cargo-binstall 70 | - wasm32-unknown-unknown 71 | - wasm-bindgen-cli 72 | - mprocs 73 | - bacon 74 | - zellij 75 | - fermyon-spin 76 | - wasmcloud 77 | - cosmonic 78 | - helix 79 | - cargo-bundle 80 | - cargo-mobile 81 | - cargo-audit 82 | - cargo-make 83 | - cargo-deny 84 | - cargo-nextest 85 | - honggfuzz 86 | - spin-message-trigger 87 | - dioxus 88 | - cargo-web 89 | - wasm-server-runner 90 | - dexterous_developer 91 | - rust_windows_msvc 92 | - sccache 93 | - cargo-llvm-cov 94 | # NEXT 95 | steps: 96 | - uses: actions/checkout@v3 97 | 98 | - name: "Install latest devcontainer CLI" 99 | run: npm install -g @devcontainers/cli 100 | 101 | - name: "Generating tests for '${{ matrix.features }}' scenarios" 102 | run: devcontainer features test -f ${{ matrix.features }} --skip-autogenerated . 103 | 104 | # test-global: 105 | # runs-on: ubuntu-latest 106 | # continue-on-error: true 107 | # steps: 108 | # - uses: actions/checkout@v3 109 | 110 | # - name: "Install latest devcontainer CLI" 111 | # run: npm install -g @devcontainers/cli 112 | 113 | # - name: "Testing global scenarios" 114 | # run: devcontainer features test --global-scenarios-only . 115 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rusty Dev Containers 2 | A collection of dev container features designed for working with rust in various contexts. 3 | 4 | ## Usage 5 | To use a feature from this repository, add it to a devcontainer.json. You can read more about devcontainer features here: https://containers.dev/features 6 | 7 | 8 | ## Compatibility 9 | Note that all these images depend on having the rust feature set up (`ghcr.io/devcontainers/features/rust:1`), as well as using either `debian:latest` or `ubuntu:latest` as the base image since the default devcontainer image causes issues with permissions. 10 | 11 | ## Available Features 12 | | Feature | OCI Image | Description | 13 | | - | - | - | 14 | | | **Rust Tools** | | 15 | | Cargo Binstall | ghcr.io/lee-orr/rusty-dev-containers/cargo-binstall:0 | Installs [Cargo Binstall](https://github.com/cargo-bins/cargo-binstall) - an alternative to cargo install that will download binaries if they exist, and only build from source if binaries aren't found. You can also specify a `packages` option - which is a comma-separated list of cargo applications you want to install. | 16 | | Cargo Expand | ghcr.io/lee-orr/rusty-dev-containers/cargo-expand:0 | Installs [Cargo Expand](https://github.com/dtolnay/cargo-expand) - a command that prints out the expanded version of a macro, useful when developing macros | 17 | | Cargo Watch | ghcr.io/lee-orr/rusty-dev-containers/cargo-watch:0 | Installs [Cargo Watch](ghcr.io/lee-orr/rusty-dev-containers/cargo-watch:0) - a command that allows rust to watch for file changes and re-build, re-run tests, or even run arbitrary scripts | 18 | | Wasm32-Unknown-Unknown | ghcr.io/lee-orr/rusty-dev-containers/wasm32-unknown-unknown:0 | There already exists a feature for wasm-wasi, but none for wasm32-unknown-unknown, which is useful for building wasm for the browser | 19 | | Wasm Bindgen CLI | ghcr.io/lee-orr/rusty-dev-containers/wasm-bindgen-cli:0 | Installs the [Wasm Bindgen CLI](https://rustwasm.github.io/wasm-bindgen/reference/cli.html) - a command line tool for generating javascript and typescript bindings for Rust WASM | 20 | | Cargo Bundle | ghcr.io/lee-orr/rusty-dev-containers/cargo-bundle:0 | Installs [Cargo Bundle](https://github.com/burtonageo/cargo-bundle) - a tool for wrapping rust executables in OS specific bundles/installers (.deb on linux, .app on Mac/iOS, .msi on Windows) | 21 | | Cargo Mobile | ghcr.io/lee-orr/rusty-dev-containers/cargo-mobile:0 | Installs [Cargo Mobile](https://github.com/BrainiumLLC/cargo-mobile) - a tool for building & running rust apps on mobile | 22 | | Cargo Make | ghcr.io/lee-orr/rusty-dev-containers/cargo-make:0 | Installs [Cargo Make](https://sagiegurari.github.io/cargo-make/) - a task runner built in rust | 23 | | Cargo Audit | ghcr.io/lee-orr/rusty-dev-containers/cargo-audit:0 | Installs [Cargo Audit](https://rustsec.org/) - a tool for auditing cargo files for security vaulnerabilities | 24 | | Cargo Deny | ghcr.io/lee-orr/rusty-dev-containers/cargo-deny:0 | Installs [Cargo Deny](https://rustsec.org/) - a tool for limit usage of particular dependencies | 25 | | Cargo Nexttest | ghcr.io/lee-orr/rusty-dev-containers/cargo-nextest:0 | Installs [Cargo Nextest](https://nexte.st/) - a powerful test runner for rust | 26 | | Honggfuzz | ghcr.io/lee-orr/rusty-dev-containers/honggfuzz:0 | Installs [Honggfuzz](https://github.com/rust-fuzz/honggfuzz-rs/blob/master/README.md) - a security oriented fuzzer | 27 | | Cargo Web | ghcr.io/lee-orr/rusty-dev-containers/cargo-web:0 | Installs [Cargo Web](https://github.com/koute/cargo-web) - a toolset for client side web | 28 | | sccache | ghcr.io/lee-orr/rusty-dev-containers/sccache:0 | Installs [sccache](https://github.com/mozilla/sccache) - a tool to speed up recompilation by caching previous compilations.| 29 | | Cargo LLVm Cov | ghcr.io/lee-orr/rusty-dev-containers/cargo-llvm-cov:0 | Install [cargo-llvm-cov](https://github.com/taiki-e/cargo-llvm-cov) - a cargo subcommand to easily use LLVM source-based code coverage (-C instrument-coverage). | 30 | | | **Terminal Tools** | | 31 | | Bacon | ghcr.io/lee-orr/rusty-dev-containers/bacon:0 | Intalls [Bacon](https://github.com/Canop/bacon) - a terminal based rust code checker that can watch & run check, flippy, fmt, and tests in the background | 32 | | Mprocs | ghcr.io/lee-orr/rusty-dev-containers/mprocs:0 | Installs [mprocs](https://github.com/pvolok/mprocs) - a command line tool for running multiple commands in parallel. | 33 | | Zellij | ghcr.io/lee-orr/rusty-dev-containers/zellij:0 | Installs [Zellij](https://zellij.dev/) - a terminal workspace with batteries included. | 34 | Helix | ghcr.io/lee-orr/rusty-dev-containers/helix:0 | Installs the [Helix](https://helix-editor.com/) text editor - a modal text editor written in rust | 35 | | | **WASM Server Frameworks**| | 36 | | Fermyon Spin | ghcr.io/lee-orr/rusty-dev-containers/fermyon-spin:0 | Installs the [Spin CLI](https://developer.fermyon.com/spin/index), allowing building, testing and deploying for Spin-based WASM applications | 37 | | Wasmcloud | ghcr.io/lee-orr/rusty-dev-containers/wasmcloud:0 | Installs Wash - the CLI for [Wasmcloud](https://wasmcloud.com/docs/intro) - a platform for building wasm-based cloud environments. | 38 | | Cosmonic | ghcr.io/lee-orr/rusty-dev-containers/cosmonic:0 | Installs Cosmo - the CLI for [Cosmonic](cosmonic.com/) - a PaaS based on Wasmcloud. Note that it contains all the features provided by Wash, but with the capacity to automatically login to your cosmonic account & connect your dev environment to your constellation on their servers. | 39 | | Spin Message Trigger | ghcr.io/lee-orr/rusty-dev-containers/spin-message-trigger:0 | Installs the [Spin Message Trigger](https://github.com/lee-orr/spin-message-trigger) plugin for Fermyon Spin. Requires the Fermyon Spin feature as well. | 40 | | Dioxus | ghcr.io/lee-orr/rusty-dev-containers/dioxus:0 | Installs the [Dioxus CLI](https://github.com/DioxusLabs/cli) to enable easy development with the Dioxus framework | 41 | | | **Other Tools** | | 42 | | Wasm Server Runner | ghcr.io/lee-orr/rusty-dev-containers/wasm-server-runner:0 | Installs [Wasm Server Runner](https://github.com/jakobhellermann/wasm-server-runner) - a cargo plugin allowing the use of `cargo run` with wasm32-unknown-unknown projects, and serving those projects | 43 | | Dexterous Developer | ghcr.io/lee-orr/rusty-dev-containers/dexterous_developer:0 | [Dexterous Developer](https://github.com/lee-orr/dexterous_developer) is a Hot Reload system for the bevy game engine | 44 | | Rust Windows MSVC | ghcr.io/lee-orr/rusty-dev-containers/rust_windows_msvc:0 | Sets up rust to be able to compile x86_64-pc-windows-msvc binaries from a dev container, using xwin. Note that xwin relies on you accepting this Microsoft Software License: https://visualstudio.microsoft.com/license-terms/mlt031519/ | 45 | 46 | 47 | ## Deprecated 48 | 49 | | Tiny Go (no sudo) | ghcr.io/lee-orr/rusty-dev-containers/tinygo:0 | Installs Tiny Go without requiring a Sudo. Useful for working with WasmCloud | Please replace with: ghcr.io/devcontainers-community/features/tinygo from https://github.com/devcontainers-community/features-tinygo | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | # Contributing to Rusty Dev Containers 3 | 4 | First off, thanks for taking the time to contribute! ❤️ 5 | 6 | All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉 7 | 8 | > And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about: 9 | > - Star the project 10 | > - Tweet about it 11 | > - Refer this project in your project's readme 12 | > - Mention the project at local meetups and tell your friends/colleagues 13 | 14 | 15 | ## Table of Contents 16 | 17 | - [I Have a Question](#i-have-a-question) 18 | - [I Want To Contribute](#i-want-to-contribute) 19 | - [Reporting Bugs](#reporting-bugs) 20 | - [Suggesting Enhancements](#suggesting-enhancements) 21 | - [Your First Code Contribution](#your-first-code-contribution) 22 | - [Improving The Documentation](#improving-the-documentation) 23 | - [Styleguides](#styleguides) 24 | - [Commit Messages](#commit-messages) 25 | - [Join The Project Team](#join-the-project-team) 26 | 27 | 28 | 29 | ## I Have a Question 30 | 31 | Before you ask a question, it is best to search for existing [Issues](https://github.com/lee-orr/rusty-dev-containers/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first. 32 | 33 | If you then still feel the need to ask a question and need clarification, we recommend the following: 34 | 35 | - Open an [Issue](https://github.com/lee-orr/rusty-dev-containers/issues/new). 36 | - Provide as much context as you can about what you're running into. 37 | - Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant. 38 | 39 | We will then take care of the issue as soon as possible. 40 | 41 | 55 | 56 | ## I Want To Contribute 57 | 58 | > ### Legal Notice 59 | > When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project license. 60 | 61 | ### Reporting Bugs 62 | 63 | 64 | #### Before Submitting a Bug Report 65 | 66 | A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible. 67 | 68 | - Make sure that you are using the latest version. 69 | - Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (If you are looking for support, you might want to check [this section](#i-have-a-question)). 70 | - To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://github.com/lee-orr/rusty-dev-containersissues?q=label%3Abug). 71 | - Also make sure to search the internet (including Stack Overflow) to see if users outside of the GitHub community have discussed the issue. 72 | - Collect information about the bug: 73 | - Stack trace (Traceback) 74 | - OS, Platform and Version (Windows, Linux, macOS, x86, ARM) 75 | - Version of the interpreter, compiler, SDK, runtime environment, package manager, depending on what seems relevant. 76 | - Possibly your input and the output 77 | - Can you reliably reproduce the issue? And can you also reproduce it with older versions? 78 | 79 | 80 | #### How Do I Submit a Good Bug Report? 81 | 82 | We use GitHub issues to track bugs and errors. If you run into an issue with the project: 83 | 84 | - Open an [Issue](https://github.com/lee-orr/rusty-dev-containers/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.) 85 | - Explain the behavior you would expect and the actual behavior. 86 | - Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case. 87 | - Provide the information you collected in the previous section. 88 | 89 | Once it's filed: 90 | 91 | - The project team will label the issue accordingly. 92 | - A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `needs-repro`. Bugs with the `needs-repro` tag will not be addressed until they are reproduced. 93 | - If the team is able to reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as `critical`), and the issue will be left to be [implemented by someone](#your-first-code-contribution). 94 | 95 | 96 | 97 | 98 | ### Suggesting Enhancements 99 | 100 | This section guides you through submitting an enhancement suggestion for Rusty Dev Containers, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions. 101 | 102 | 103 | #### Before Submitting an Enhancement 104 | 105 | - Make sure that you are using the latest version. 106 | - Find out if the functionality is already covered, maybe by an individual configuration. 107 | - Perform a [search](https://github.com/lee-orr/rusty-dev-containers/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. 108 | - Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library. 109 | 110 | 111 | #### How Do I Submit a Good Enhancement Suggestion? 112 | 113 | Enhancement suggestions are tracked as [GitHub issues](https://github.com/lee-orr/rusty-dev-containers/issues). 114 | 115 | - Use a **clear and descriptive title** for the issue to identify the suggestion. 116 | - Provide a **step-by-step description of the suggested enhancement** in as many details as possible. 117 | - **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you. 118 | - **Explain why this enhancement would be useful** to most Rusty Dev Containers users. You may also want to point out the other projects that solved it better and which could serve as inspiration. 119 | 120 | 121 | 122 | 123 | ## Attribution 124 | This guide is based on the **contributing-gen**. [Make your own](https://github.com/bttger/contributing-gen)! 125 | --------------------------------------------------------------------------------