From ad6a4ef823f32bba33735debc48e18ef609e2bdc Mon Sep 17 00:00:00 2001 From: kvokka Date: Sun, 30 Mar 2025 05:58:53 +0700 Subject: [PATCH 1/8] Remove projects from the fork --- src/act-asdf/README.md | 24 --- src/act-asdf/devcontainer-feature.json | 20 -- src/act-asdf/install.sh | 24 --- src/act-asdf/library_scripts.sh | 179 ------------------ src/act/README.md | 24 --- src/act/devcontainer-feature.json | 20 -- src/act/install.sh | 23 --- src/act/library_scripts.sh | 172 ----------------- src/actionlint/README.md | 24 --- src/actionlint/devcontainer-feature.json | 20 -- src/actionlint/install.sh | 23 --- src/actionlint/library_scripts.sh | 172 ----------------- src/actions-runner/README.md | 25 --- src/actions-runner/devcontainer-feature.json | 29 --- src/actions-runner/install.sh | 40 ---- src/actions-runner/library_scripts.sh | 172 ----------------- src/activemq-sdkman/README.md | 33 ---- src/activemq-sdkman/devcontainer-feature.json | 44 ----- src/activemq-sdkman/install.sh | 51 ----- src/activemq-sdkman/library_scripts.sh | 179 ------------------ src/age/README.md | 24 --- src/age/devcontainer-feature.json | 20 -- src/age/install.sh | 18 -- src/age/library_scripts.sh | 172 ----------------- src/akamai-cli/README.md | 24 --- src/akamai-cli/devcontainer-feature.json | 20 -- src/akamai-cli/install.sh | 23 --- src/akamai-cli/library_scripts.sh | 172 ----------------- src/alertmanager/README.md | 24 --- src/alertmanager/devcontainer-feature.json | 20 -- src/alertmanager/install.sh | 23 --- src/alertmanager/library_scripts.sh | 172 ----------------- src/alp-asdf/README.md | 24 --- src/alp-asdf/devcontainer-feature.json | 20 -- src/alp-asdf/install.sh | 24 --- src/alp-asdf/library_scripts.sh | 179 ------------------ src/amplify-cli/README.md | 24 --- src/amplify-cli/devcontainer-feature.json | 21 -- src/amplify-cli/install.sh | 23 --- src/amplify-cli/library_scripts.sh | 172 ----------------- src/angular-cli/README.md | 24 --- src/angular-cli/devcontainer-feature.json | 21 -- src/angular-cli/install.sh | 23 --- src/angular-cli/library_scripts.sh | 172 ----------------- src/ansible/README.md | 25 --- src/ansible/devcontainer-feature.json | 30 --- src/ansible/install.sh | 18 -- src/ansible/library_scripts.sh | 172 ----------------- src/ant-sdkman/README.md | 33 ---- src/ant-sdkman/devcontainer-feature.json | 44 ----- src/ant-sdkman/install.sh | 44 ----- src/ant-sdkman/library_scripts.sh | 179 ------------------ src/apko/README.md | 24 --- src/apko/devcontainer-feature.json | 20 -- src/apko/install.sh | 23 --- src/apko/library_scripts.sh | 172 ----------------- src/apt-get-packages/README.md | 28 --- .../devcontainer-feature.json | 43 ----- src/apt-get-packages/install.sh | 28 --- src/apt-get-packages/library_scripts.sh | 179 ------------------ src/apt-packages/README.md | 28 --- src/apt-packages/devcontainer-feature.json | 43 ----- src/apt-packages/install.sh | 28 --- src/apt-packages/library_scripts.sh | 179 ------------------ src/argo-cd/README.md | 24 --- src/argo-cd/devcontainer-feature.json | 18 -- src/argo-cd/install.sh | 87 --------- src/argo-workflows/README.md | 24 --- src/argo-workflows/devcontainer-feature.json | 18 -- src/argo-workflows/install.sh | 95 ---------- src/asciidoctorj-sdkman/README.md | 28 --- .../devcontainer-feature.json | 44 ----- src/asciidoctorj-sdkman/install.sh | 44 ----- src/asciidoctorj-sdkman/library_scripts.sh | 179 ------------------ src/asdf-package/README.md | 27 --- src/asdf-package/devcontainer-feature.json | 46 ----- src/asdf-package/install.sh | 145 -------------- src/assemblyscript/README.md | 24 --- src/assemblyscript/devcontainer-feature.json | 21 -- src/assemblyscript/install.sh | 23 --- src/assemblyscript/library_scripts.sh | 172 ----------------- src/atlantis/README.md | 24 --- src/atlantis/devcontainer-feature.json | 20 -- src/atlantis/install.sh | 23 --- src/atlantis/library_scripts.sh | 172 ----------------- src/atmos/README.md | 24 --- src/atmos/devcontainer-feature.json | 20 -- src/atmos/install.sh | 23 --- src/atmos/library_scripts.sh | 172 ----------------- src/auditjs/README.md | 24 --- src/auditjs/devcontainer-feature.json | 21 -- src/auditjs/install.sh | 23 --- src/auditjs/library_scripts.sh | 172 ----------------- src/autoenv/README.md | 24 --- src/autoenv/devcontainer-feature.json | 21 -- src/autoenv/install.sh | 23 --- src/autoenv/library_scripts.sh | 172 ----------------- src/aws-cdk/README.md | 24 --- src/aws-cdk/devcontainer-feature.json | 21 -- src/aws-cdk/install.sh | 23 --- src/aws-cdk/library_scripts.sh | 172 ----------------- src/aws-eb-cli/README.md | 24 --- src/aws-eb-cli/devcontainer-feature.json | 21 -- src/aws-eb-cli/install.sh | 23 --- src/aws-eb-cli/library_scripts.sh | 172 ----------------- src/aws-sso-cli/README.md | 19 -- src/aws-sso-cli/devcontainer-feature.json | 18 -- src/aws-sso-cli/install.sh | 21 -- src/aws-sso-cli/library_scripts.sh | 173 ----------------- src/aztfexport/README.md | 24 --- src/aztfexport/devcontainer-feature.json | 20 -- src/aztfexport/install.sh | 23 --- src/aztfexport/library_scripts.sh | 172 ----------------- src/azure-apiops/README.md | 24 --- src/azure-apiops/devcontainer-feature.json | 20 -- src/azure-apiops/install.sh | 24 --- src/azure-apiops/library_scripts.sh | 172 ----------------- src/ballerina-sdkman/README.md | 27 --- .../devcontainer-feature.json | 41 ---- src/ballerina-sdkman/install.sh | 44 ----- src/ballerina-sdkman/library_scripts.sh | 179 ------------------ src/bandit/README.md | 24 --- src/bandit/devcontainer-feature.json | 21 -- src/bandit/install.sh | 23 --- src/bandit/library_scripts.sh | 172 ----------------- src/bartib/README.md | 24 --- src/bartib/devcontainer-feature.json | 20 -- src/bartib/install.sh | 23 --- src/bartib/library_scripts.sh | 172 ----------------- src/bash-command/README.md | 24 --- src/bash-command/devcontainer-feature.json | 17 -- src/bash-command/install.sh | 15 -- src/beehive/README.md | 24 --- src/beehive/devcontainer-feature.json | 20 -- src/beehive/install.sh | 23 --- src/beehive/library_scripts.sh | 172 ----------------- src/bikeshed/README.md | 24 --- src/bikeshed/devcontainer-feature.json | 21 -- src/bikeshed/install.sh | 23 --- src/bikeshed/library_scripts.sh | 172 ----------------- src/bin/README.md | 24 --- src/bin/devcontainer-feature.json | 20 -- src/bin/install.sh | 23 --- src/bin/library_scripts.sh | 172 ----------------- src/black/README.md | 24 --- src/black/devcontainer-feature.json | 21 -- src/black/install.sh | 23 --- src/black/library_scripts.sh | 172 ----------------- src/blackbox-exporter/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/blackbox-exporter/install.sh | 23 --- src/blackbox-exporter/library_scripts.sh | 172 ----------------- src/bomber/README.md | 24 --- src/bomber/devcontainer-feature.json | 20 -- src/bomber/install.sh | 23 --- src/bomber/library_scripts.sh | 172 ----------------- src/bower/README.md | 24 --- src/bower/devcontainer-feature.json | 21 -- src/bower/install.sh | 23 --- src/bower/library_scripts.sh | 172 ----------------- src/bpipe-sdkman/README.md | 26 --- src/bpipe-sdkman/devcontainer-feature.json | 44 ----- src/bpipe-sdkman/install.sh | 44 ----- src/bpipe-sdkman/library_scripts.sh | 179 ------------------ src/brownie/README.md | 25 --- src/brownie/devcontainer-feature.json | 28 --- src/brownie/install.sh | 18 -- src/brownie/library_scripts.sh | 172 ----------------- src/browserify/README.md | 24 --- src/browserify/devcontainer-feature.json | 21 -- src/browserify/install.sh | 23 --- src/browserify/library_scripts.sh | 172 ----------------- src/btop-homebrew/README.md | 24 --- src/btop-homebrew/devcontainer-feature.json | 20 -- src/btop-homebrew/install.sh | 23 --- src/btop-homebrew/library_scripts.sh | 179 ------------------ src/btrace-sdkman/README.md | 29 --- src/btrace-sdkman/devcontainer-feature.json | 44 ----- src/btrace-sdkman/install.sh | 44 ----- src/btrace-sdkman/library_scripts.sh | 179 ------------------ src/budibase-cli/README.md | 24 --- src/budibase-cli/devcontainer-feature.json | 21 -- src/budibase-cli/install.sh | 23 --- src/budibase-cli/library_scripts.sh | 172 ----------------- src/buku/README.md | 24 --- src/buku/devcontainer-feature.json | 21 -- src/buku/install.sh | 23 --- src/buku/library_scripts.sh | 172 ----------------- src/caddy/README.md | 25 --- src/caddy/devcontainer-feature.json | 32 ---- src/caddy/install.sh | 31 --- src/caddy/library_scripts.sh | 172 ----------------- src/ccache-asdf/README.md | 24 --- src/ccache-asdf/devcontainer-feature.json | 21 -- src/ccache-asdf/install.sh | 32 ---- src/ccache-asdf/library_scripts.sh | 179 ------------------ src/checkov/README.md | 24 --- src/checkov/devcontainer-feature.json | 21 -- src/checkov/install.sh | 23 --- src/checkov/library_scripts.sh | 172 ----------------- src/chezscheme-asdf/README.md | 24 --- src/chezscheme-asdf/devcontainer-feature.json | 21 -- src/chezscheme-asdf/install.sh | 32 ---- src/chezscheme-asdf/library_scripts.sh | 179 ------------------ src/chisel/README.md | 24 --- src/chisel/devcontainer-feature.json | 20 -- src/chisel/install.sh | 23 --- src/chisel/library_scripts.sh | 172 ----------------- src/circleci-cli/README.md | 24 --- src/circleci-cli/devcontainer-feature.json | 20 -- src/circleci-cli/install.sh | 23 --- src/circleci-cli/library_scripts.sh | 172 ----------------- src/clojure-asdf/README.md | 24 --- src/clojure-asdf/devcontainer-feature.json | 20 -- src/clojure-asdf/install.sh | 24 --- src/clojure-asdf/library_scripts.sh | 179 ------------------ src/cloud-nuke/README.md | 24 --- src/cloud-nuke/devcontainer-feature.json | 20 -- src/cloud-nuke/install.sh | 23 --- src/cloud-nuke/library_scripts.sh | 172 ----------------- src/cloudflare-wrangler/README.md | 24 --- .../devcontainer-feature.json | 21 -- src/cloudflare-wrangler/install.sh | 23 --- src/cloudflare-wrangler/library_scripts.sh | 172 ----------------- src/cloudflared-fips/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/cloudflared-fips/install.sh | 23 --- src/cloudflared-fips/library_scripts.sh | 172 ----------------- src/cloudflared/README.md | 24 --- src/cloudflared/devcontainer-feature.json | 20 -- src/cloudflared/install.sh | 23 --- src/cloudflared/library_scripts.sh | 172 ----------------- src/cloudinary-cli/README.md | 24 --- src/cloudinary-cli/devcontainer-feature.json | 21 -- src/cloudinary-cli/install.sh | 23 --- src/cloudinary-cli/library_scripts.sh | 172 ----------------- src/cmake/README.md | 24 --- src/cmake/devcontainer-feature.json | 21 -- src/cmake/install.sh | 29 --- src/cmake/library_scripts.sh | 173 ----------------- src/codefresh-cli/README.md | 24 --- src/codefresh-cli/devcontainer-feature.json | 20 -- src/codefresh-cli/install.sh | 23 --- src/codefresh-cli/library_scripts.sh | 172 ----------------- src/composer/README.md | 24 --- src/composer/devcontainer-feature.json | 20 -- src/composer/install.sh | 23 --- src/composer/library_scripts.sh | 172 ----------------- src/concurnas-sdkman/README.md | 28 --- .../devcontainer-feature.json | 41 ---- src/concurnas-sdkman/install.sh | 44 ----- src/concurnas-sdkman/library_scripts.sh | 179 ------------------ src/connor-sdkman/README.md | 27 --- src/connor-sdkman/devcontainer-feature.json | 44 ----- src/connor-sdkman/install.sh | 44 ----- src/connor-sdkman/library_scripts.sh | 179 ------------------ src/consul-asdf/README.md | 24 --- src/consul-asdf/devcontainer-feature.json | 20 -- src/consul-asdf/install.sh | 24 --- src/consul-asdf/library_scripts.sh | 179 ------------------ src/consul-exporter/README.md | 24 --- src/consul-exporter/devcontainer-feature.json | 20 -- src/consul-exporter/install.sh | 23 --- src/consul-exporter/library_scripts.sh | 172 ----------------- src/cookiecutter/README.md | 24 --- src/cookiecutter/devcontainer-feature.json | 21 -- src/cookiecutter/install.sh | 23 --- src/cookiecutter/library_scripts.sh | 172 ----------------- src/copier/README.md | 24 --- src/copier/devcontainer-feature.json | 26 --- src/copier/install.sh | 22 --- src/copier/library_scripts.sh | 172 ----------------- src/corepack/README.md | 24 --- src/corepack/devcontainer-feature.json | 21 -- src/corepack/install.sh | 23 --- src/corepack/library_scripts.sh | 172 ----------------- src/cosign/README.md | 24 --- src/cosign/devcontainer-feature.json | 20 -- src/cosign/install.sh | 23 --- src/cosign/library_scripts.sh | 172 ----------------- src/coverage-py/README.md | 24 --- src/coverage-py/devcontainer-feature.json | 21 -- src/coverage-py/install.sh | 23 --- src/coverage-py/library_scripts.sh | 172 ----------------- src/crystal-asdf/README.md | 24 --- src/crystal-asdf/devcontainer-feature.json | 20 -- src/crystal-asdf/install.sh | 24 --- src/crystal-asdf/library_scripts.sh | 179 ------------------ src/cuba-sdkman/README.md | 27 --- src/cuba-sdkman/devcontainer-feature.json | 44 ----- src/cuba-sdkman/install.sh | 44 ----- src/cuba-sdkman/library_scripts.sh | 179 ------------------ src/curl-apt-get/README.md | 24 --- src/curl-apt-get/devcontainer-feature.json | 11 -- src/curl-apt-get/install.sh | 23 --- src/curl-apt-get/library_scripts.sh | 179 ------------------ src/curl-homebrew/README.md | 24 --- src/curl-homebrew/devcontainer-feature.json | 20 -- src/curl-homebrew/install.sh | 23 --- src/curl-homebrew/library_scripts.sh | 179 ------------------ src/cve-bin-tool/README.md | 24 --- src/cve-bin-tool/devcontainer-feature.json | 21 -- src/cve-bin-tool/install.sh | 23 --- src/cve-bin-tool/library_scripts.sh | 172 ----------------- src/cxf-sdkman/README.md | 29 --- src/cxf-sdkman/devcontainer-feature.json | 44 ----- src/cxf-sdkman/install.sh | 44 ----- src/cxf-sdkman/library_scripts.sh | 179 ------------------ src/cyclonedx-cli/README.md | 24 --- src/cyclonedx-cli/devcontainer-feature.json | 20 -- src/cyclonedx-cli/install.sh | 23 --- src/cyclonedx-cli/library_scripts.sh | 172 ----------------- src/cyclonedx-python/README.md | 24 --- .../devcontainer-feature.json | 21 -- src/cyclonedx-python/install.sh | 23 --- src/cyclonedx-python/library_scripts.sh | 172 ----------------- src/cz-cli/README.md | 24 --- src/cz-cli/devcontainer-feature.json | 21 -- src/cz-cli/install.sh | 23 --- src/cz-cli/library_scripts.sh | 172 ----------------- src/d/README.md | 25 --- src/d/devcontainer-feature.json | 27 --- src/d/install.sh | 50 ----- src/dasel-asdf/README.md | 24 --- src/dasel-asdf/devcontainer-feature.json | 20 -- src/dasel-asdf/install.sh | 24 --- src/dasel-asdf/library_scripts.sh | 179 ------------------ src/dashlane-cli/README.md | 24 --- src/dashlane-cli/devcontainer-feature.json | 20 -- src/dashlane-cli/install.sh | 23 --- src/dashlane-cli/library_scripts.sh | 172 ----------------- src/datadog-ci-cli/README.md | 24 --- src/datadog-ci-cli/devcontainer-feature.json | 20 -- src/datadog-ci-cli/install.sh | 23 --- src/datadog-ci-cli/library_scripts.sh | 172 ----------------- src/datasette/README.md | 24 --- src/datasette/devcontainer-feature.json | 21 -- src/datasette/install.sh | 23 --- src/datasette/library_scripts.sh | 172 ----------------- src/dbt-coverage/README.md | 24 --- src/dbt-coverage/devcontainer-feature.json | 21 -- src/dbt-coverage/install.sh | 23 --- src/dbt-coverage/library_scripts.sh | 172 ----------------- src/ddgr-apt-get/README.md | 24 --- src/ddgr-apt-get/devcontainer-feature.json | 11 -- src/ddgr-apt-get/install.sh | 23 --- src/ddgr-apt-get/library_scripts.sh | 179 ------------------ src/ddgr-homebrew/README.md | 24 --- src/ddgr-homebrew/devcontainer-feature.json | 20 -- src/ddgr-homebrew/install.sh | 23 --- src/ddgr-homebrew/library_scripts.sh | 179 ------------------ src/deno-asdf/README.md | 24 --- src/deno-asdf/devcontainer-feature.json | 20 -- src/deno-asdf/install.sh | 24 --- src/deno-asdf/library_scripts.sh | 179 ------------------ src/deno/README.md | 24 --- src/deno/devcontainer-feature.json | 18 -- src/deno/install.sh | 67 ------- src/devcontainers-cli/README.md | 24 --- .../devcontainer-feature.json | 22 --- src/devcontainers-cli/install.sh | 23 --- src/devcontainers-cli/library_scripts.sh | 172 ----------------- src/digitalocean-cli/README.md | 24 --- .../devcontainer-feature.json | 18 -- src/digitalocean-cli/install.sh | 94 --------- src/direnv-asdf/README.md | 24 --- src/direnv-asdf/devcontainer-feature.json | 20 -- src/direnv-asdf/install.sh | 24 --- src/direnv-asdf/library_scripts.sh | 179 ------------------ src/direnv/README.md | 24 --- src/direnv/devcontainer-feature.json | 20 -- src/direnv/install.sh | 23 --- src/direnv/library_scripts.sh | 172 ----------------- src/dive/README.md | 24 --- src/dive/devcontainer-feature.json | 20 -- src/dive/install.sh | 23 --- src/dive/library_scripts.sh | 172 ----------------- src/dnote/README.md | 24 --- src/dnote/devcontainer-feature.json | 20 -- src/dnote/install.sh | 23 --- src/dnote/library_scripts.sh | 172 ----------------- src/doctoolchain-sdkman/README.md | 29 --- .../devcontainer-feature.json | 44 ----- src/doctoolchain-sdkman/install.sh | 44 ----- src/doctoolchain-sdkman/library_scripts.sh | 179 ------------------ src/dprint-asdf/README.md | 24 --- src/dprint-asdf/devcontainer-feature.json | 20 -- src/dprint-asdf/install.sh | 24 --- src/dprint-asdf/library_scripts.sh | 179 ------------------ src/driftctl/README.md | 24 --- src/driftctl/devcontainer-feature.json | 20 -- src/driftctl/install.sh | 23 --- src/driftctl/library_scripts.sh | 172 ----------------- src/drone-cli/README.md | 24 --- src/drone-cli/devcontainer-feature.json | 20 -- src/drone-cli/install.sh | 23 --- src/drone-cli/library_scripts.sh | 172 ----------------- src/dua/README.md | 24 --- src/dua/devcontainer-feature.json | 20 -- src/dua/install.sh | 23 --- src/dua/library_scripts.sh | 172 ----------------- src/duf/README.md | 24 --- src/duf/devcontainer-feature.json | 20 -- src/duf/install.sh | 23 --- src/duf/library_scripts.sh | 172 ----------------- src/dufs/README.md | 24 --- src/dufs/devcontainer-feature.json | 20 -- src/dufs/install.sh | 23 --- src/dufs/library_scripts.sh | 172 ----------------- src/eas-cli/README.md | 24 --- src/eas-cli/devcontainer-feature.json | 21 -- src/eas-cli/install.sh | 23 --- src/eas-cli/library_scripts.sh | 172 ----------------- src/eget/README.md | 24 --- src/eget/devcontainer-feature.json | 20 -- src/eget/install.sh | 23 --- src/eget/library_scripts.sh | 172 ----------------- src/elasticsearch-asdf/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/elasticsearch-asdf/install.sh | 24 --- src/elasticsearch-asdf/library_scripts.sh | 179 ------------------ src/elm-asdf/README.md | 24 --- src/elm-asdf/devcontainer-feature.json | 20 -- src/elm-asdf/install.sh | 24 --- src/elm-asdf/library_scripts.sh | 179 ------------------ src/ember-cli/README.md | 24 --- src/ember-cli/devcontainer-feature.json | 21 -- src/ember-cli/install.sh | 23 --- src/ember-cli/library_scripts.sh | 172 ----------------- src/envoy/README.md | 24 --- src/envoy/devcontainer-feature.json | 20 -- src/envoy/install.sh | 23 --- src/envoy/library_scripts.sh | 172 ----------------- src/epinio/README.md | 24 --- src/epinio/devcontainer-feature.json | 20 -- src/epinio/install.sh | 23 --- src/epinio/library_scripts.sh | 172 ----------------- src/etcd/README.md | 24 --- src/etcd/devcontainer-feature.json | 20 -- src/etcd/install.sh | 23 --- src/etcd/library_scripts.sh | 172 ----------------- src/exa/README.md | 24 --- src/exa/devcontainer-feature.json | 20 -- src/exa/install.sh | 23 --- src/exa/library_scripts.sh | 172 ----------------- src/exercism-cli/README.md | 24 --- src/exercism-cli/devcontainer-feature.json | 20 -- src/exercism-cli/install.sh | 23 --- src/exercism-cli/library_scripts.sh | 172 ----------------- src/expo-cli/README.md | 24 --- src/expo-cli/devcontainer-feature.json | 21 -- src/expo-cli/install.sh | 23 --- src/expo-cli/library_scripts.sh | 172 ----------------- src/express-generator/README.md | 24 --- .../devcontainer-feature.json | 21 -- src/express-generator/install.sh | 23 --- src/express-generator/library_scripts.sh | 172 ----------------- src/fd/README.md | 24 --- src/fd/devcontainer-feature.json | 20 -- src/fd/install.sh | 23 --- src/fd/library_scripts.sh | 172 ----------------- src/ffmpeg-apt-get/README.md | 24 --- src/ffmpeg-apt-get/devcontainer-feature.json | 11 -- src/ffmpeg-apt-get/install.sh | 23 --- src/ffmpeg-apt-get/library_scripts.sh | 179 ------------------ src/firebase-cli/README.md | 24 --- src/firebase-cli/devcontainer-feature.json | 21 -- src/firebase-cli/install.sh | 23 --- src/firebase-cli/library_scripts.sh | 172 ----------------- src/fish-apt-get/README.md | 24 --- src/fish-apt-get/devcontainer-feature.json | 11 -- src/fish-apt-get/install.sh | 23 --- src/fish-apt-get/library_scripts.sh | 179 ------------------ src/fkill/README.md | 24 --- src/fkill/devcontainer-feature.json | 21 -- src/fkill/install.sh | 23 --- src/fkill/library_scripts.sh | 172 ----------------- src/flake8/README.md | 25 --- src/flake8/devcontainer-feature.json | 30 --- src/flake8/install.sh | 23 --- src/flake8/library_scripts.sh | 172 ----------------- src/flink-sdkman/README.md | 29 --- src/flink-sdkman/devcontainer-feature.json | 44 ----- src/flink-sdkman/install.sh | 44 ----- src/flink-sdkman/library_scripts.sh | 179 ------------------ src/flit/README.md | 24 --- src/flit/devcontainer-feature.json | 21 -- src/flit/install.sh | 23 --- src/flit/library_scripts.sh | 172 ----------------- src/former2-cli/README.md | 24 --- src/former2-cli/devcontainer-feature.json | 21 -- src/former2-cli/install.sh | 31 --- src/former2-cli/library_scripts.sh | 172 ----------------- src/fossil-apt-get/README.md | 24 --- src/fossil-apt-get/devcontainer-feature.json | 11 -- src/fossil-apt-get/install.sh | 23 --- src/fossil-apt-get/library_scripts.sh | 179 ------------------ src/fossil-homebrew/README.md | 24 --- src/fossil-homebrew/devcontainer-feature.json | 20 -- src/fossil-homebrew/install.sh | 23 --- src/fossil-homebrew/library_scripts.sh | 179 ------------------ src/fulcio/README.md | 24 --- src/fulcio/devcontainer-feature.json | 20 -- src/fulcio/install.sh | 23 --- src/fulcio/library_scripts.sh | 172 ----------------- src/fzf/README.md | 24 --- src/fzf/devcontainer-feature.json | 20 -- src/fzf/install.sh | 23 --- src/fzf/library_scripts.sh | 172 ----------------- src/gaiden-sdkman/README.md | 26 --- src/gaiden-sdkman/devcontainer-feature.json | 47 ----- src/gaiden-sdkman/install.sh | 44 ----- src/gaiden-sdkman/library_scripts.sh | 179 ------------------ src/ganache/README.md | 24 --- src/ganache/devcontainer-feature.json | 21 -- src/ganache/install.sh | 23 --- src/ganache/library_scripts.sh | 172 ----------------- src/gcovr/README.md | 24 --- src/gcovr/devcontainer-feature.json | 20 -- src/gcovr/install.sh | 20 -- src/gcovr/library_scripts.sh | 173 ----------------- src/gdbgui/README.md | 24 --- src/gdbgui/devcontainer-feature.json | 21 -- src/gdbgui/install.sh | 23 --- src/gdbgui/library_scripts.sh | 172 ----------------- src/gh-cli/README.md | 24 --- src/gh-cli/devcontainer-feature.json | 20 -- src/gh-cli/install.sh | 23 --- src/gh-cli/library_scripts.sh | 172 ----------------- src/gh-release/README.md | 32 ---- src/gh-release/devcontainer-feature.json | 80 -------- src/gh-release/install.sh | 24 --- src/gh-release/library_scripts.sh | 172 ----------------- src/git-lfs/README.md | 24 --- src/git-lfs/devcontainer-feature.json | 20 -- src/git-lfs/install.sh | 23 --- src/git-lfs/library_scripts.sh | 172 ----------------- src/gitmux/README.md | 24 --- src/gitmux/devcontainer-feature.json | 20 -- src/gitmux/install.sh | 23 --- src/gitmux/library_scripts.sh | 172 ----------------- src/gitomatic/README.md | 24 --- src/gitomatic/devcontainer-feature.json | 20 -- src/gitomatic/install.sh | 23 --- src/gitomatic/library_scripts.sh | 172 ----------------- src/gitsign-credential-cache/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/gitsign-credential-cache/install.sh | 23 --- .../library_scripts.sh | 172 ----------------- src/gitsign/README.md | 24 --- src/gitsign/devcontainer-feature.json | 20 -- src/gitsign/install.sh | 23 --- src/gitsign/library_scripts.sh | 172 ----------------- src/gitty/README.md | 24 --- src/gitty/devcontainer-feature.json | 20 -- src/gitty/install.sh | 23 --- src/gitty/library_scripts.sh | 172 ----------------- src/glances/README.md | 24 --- src/glances/devcontainer-feature.json | 21 -- src/glances/install.sh | 23 --- src/glances/library_scripts.sh | 172 ----------------- src/gleam/README.md | 24 --- src/gleam/devcontainer-feature.json | 20 -- src/gleam/install.sh | 23 --- src/gleam/library_scripts.sh | 172 ----------------- src/go-task/README.md | 24 --- src/go-task/devcontainer-feature.json | 20 -- src/go-task/install.sh | 23 --- src/go-task/library_scripts.sh | 172 ----------------- src/graalvm-asdf/README.md | 24 --- src/graalvm-asdf/devcontainer-feature.json | 20 -- src/graalvm-asdf/install.sh | 24 --- src/graalvm-asdf/library_scripts.sh | 179 ------------------ src/gradle-sdkman/README.md | 30 --- src/gradle-sdkman/devcontainer-feature.json | 44 ----- src/gradle-sdkman/install.sh | 44 ----- src/gradle-sdkman/library_scripts.sh | 179 ------------------ src/gradleprofiler-sdkman/README.md | 26 --- .../devcontainer-feature.json | 44 ----- src/gradleprofiler-sdkman/install.sh | 44 ----- src/gradleprofiler-sdkman/library_scripts.sh | 179 ------------------ src/grails-sdkman/README.md | 31 --- src/grails-sdkman/devcontainer-feature.json | 44 ----- src/grails-sdkman/install.sh | 44 ----- src/grails-sdkman/library_scripts.sh | 179 ------------------ src/graphite-exporter/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/graphite-exporter/install.sh | 23 --- src/graphite-exporter/library_scripts.sh | 172 ----------------- src/groovy-sdkman/README.md | 32 ---- src/groovy-sdkman/devcontainer-feature.json | 44 ----- src/groovy-sdkman/install.sh | 44 ----- src/groovy-sdkman/library_scripts.sh | 179 ------------------ src/groovyserv-sdkman/README.md | 28 --- .../devcontainer-feature.json | 44 ----- src/groovyserv-sdkman/install.sh | 44 ----- src/groovyserv-sdkman/library_scripts.sh | 179 ------------------ src/grpcurl-asdf/README.md | 24 --- src/grpcurl-asdf/devcontainer-feature.json | 20 -- src/grpcurl-asdf/install.sh | 24 --- src/grpcurl-asdf/library_scripts.sh | 179 ------------------ src/grype/README.md | 24 --- src/grype/devcontainer-feature.json | 20 -- src/grype/install.sh | 23 --- src/grype/library_scripts.sh | 172 ----------------- src/gulp-cli/README.md | 24 --- src/gulp-cli/devcontainer-feature.json | 21 -- src/gulp-cli/install.sh | 23 --- src/gulp-cli/library_scripts.sh | 172 ----------------- src/hadoop-sdkman/README.md | 30 --- src/hadoop-sdkman/devcontainer-feature.json | 44 ----- src/hadoop-sdkman/install.sh | 44 ----- src/hadoop-sdkman/library_scripts.sh | 179 ------------------ src/haskell/README.md | 31 --- src/haskell/devcontainer-feature.json | 74 -------- src/haskell/install.sh | 107 ----------- src/hatch/README.md | 24 --- src/hatch/devcontainer-feature.json | 21 -- src/hatch/install.sh | 23 --- src/hatch/library_scripts.sh | 172 ----------------- src/haxe-asdf/README.md | 24 --- src/haxe-asdf/devcontainer-feature.json | 20 -- src/haxe-asdf/install.sh | 24 --- src/haxe-asdf/library_scripts.sh | 179 ------------------ src/helmfile/devcontainer-feature.json | 19 -- src/helmfile/install.sh | 22 --- src/helmfile/library_scripts.sh | 173 ----------------- src/heroku-cli/README.md | 24 --- src/heroku-cli/devcontainer-feature.json | 18 -- src/heroku-cli/install.sh | 77 -------- src/homebrew-package/README.md | 26 --- .../devcontainer-feature.json | 38 ---- src/homebrew-package/install.sh | 113 ----------- src/homebrew-package/library_scripts.sh | 179 ------------------ src/hotel/README.md | 24 --- src/hotel/devcontainer-feature.json | 21 -- src/hotel/install.sh | 23 --- src/hotel/library_scripts.sh | 172 ----------------- src/how2/README.md | 24 --- src/how2/devcontainer-feature.json | 20 -- src/how2/install.sh | 23 --- src/how2/library_scripts.sh | 172 ----------------- src/http-server/README.md | 24 --- src/http-server/devcontainer-feature.json | 21 -- src/http-server/install.sh | 23 --- src/http-server/library_scripts.sh | 172 ----------------- src/http4k-sdkman/README.md | 26 --- src/http4k-sdkman/devcontainer-feature.json | 44 ----- src/http4k-sdkman/install.sh | 44 ----- src/http4k-sdkman/library_scripts.sh | 179 ------------------ src/hyperfine/README.md | 24 --- src/hyperfine/devcontainer-feature.json | 20 -- src/hyperfine/install.sh | 23 --- src/hyperfine/library_scripts.sh | 172 ----------------- src/immuadmin-fips/README.md | 24 --- src/immuadmin-fips/devcontainer-feature.json | 20 -- src/immuadmin-fips/install.sh | 23 --- src/immuadmin-fips/library_scripts.sh | 172 ----------------- src/immuadmin/README.md | 24 --- src/immuadmin/devcontainer-feature.json | 20 -- src/immuadmin/install.sh | 23 --- src/immuadmin/library_scripts.sh | 172 ----------------- src/immuclient-fips/README.md | 24 --- src/immuclient-fips/devcontainer-feature.json | 20 -- src/immuclient-fips/install.sh | 23 --- src/immuclient-fips/library_scripts.sh | 172 ----------------- src/immuclient/README.md | 24 --- src/immuclient/devcontainer-feature.json | 20 -- src/immuclient/install.sh | 23 --- src/immuclient/library_scripts.sh | 172 ----------------- src/immudb-fips/README.md | 24 --- src/immudb-fips/devcontainer-feature.json | 20 -- src/immudb-fips/install.sh | 23 --- src/immudb-fips/library_scripts.sh | 172 ----------------- src/immudb/README.md | 24 --- src/immudb/devcontainer-feature.json | 20 -- src/immudb/install.sh | 23 --- src/immudb/library_scripts.sh | 172 ----------------- src/infracost/README.md | 24 --- src/infracost/devcontainer-feature.json | 20 -- src/infracost/install.sh | 23 --- src/infracost/library_scripts.sh | 172 ----------------- src/infrastructor-sdkman/README.md | 26 --- .../devcontainer-feature.json | 44 ----- src/infrastructor-sdkman/install.sh | 44 ----- src/infrastructor-sdkman/library_scripts.sh | 179 ------------------ src/invoke/README.md | 24 --- src/invoke/devcontainer-feature.json | 21 -- src/invoke/install.sh | 23 --- src/invoke/library_scripts.sh | 172 ----------------- src/ionic-cli/README.md | 24 --- src/ionic-cli/devcontainer-feature.json | 21 -- src/ionic-cli/install.sh | 23 --- src/ionic-cli/library_scripts.sh | 172 ----------------- src/isort/README.md | 24 --- src/isort/devcontainer-feature.json | 21 -- src/isort/install.sh | 23 --- src/isort/library_scripts.sh | 172 ----------------- src/istioctl/README.md | 24 --- src/istioctl/devcontainer-feature.json | 20 -- src/istioctl/install.sh | 23 --- src/istioctl/library_scripts.sh | 172 ----------------- src/jake/README.md | 24 --- src/jake/devcontainer-feature.json | 21 -- src/jake/install.sh | 23 --- src/jake/library_scripts.sh | 172 ----------------- src/jbake-sdkman/README.md | 27 --- src/jbake-sdkman/devcontainer-feature.json | 44 ----- src/jbake-sdkman/install.sh | 44 ----- src/jbake-sdkman/library_scripts.sh | 179 ------------------ src/jbang-sdkman/README.md | 27 --- src/jbang-sdkman/devcontainer-feature.json | 44 ----- src/jbang-sdkman/install.sh | 44 ----- src/jbang-sdkman/library_scripts.sh | 179 ------------------ src/jenkinsx-cli/README.md | 24 --- src/jenkinsx-cli/devcontainer-feature.json | 20 -- src/jenkinsx-cli/install.sh | 23 --- src/jenkinsx-cli/library_scripts.sh | 172 ----------------- src/jest/README.md | 24 --- src/jest/devcontainer-feature.json | 21 -- src/jest/install.sh | 23 --- src/jest/library_scripts.sh | 172 ----------------- src/jfrog-cli-homebrew/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/jfrog-cli-homebrew/install.sh | 23 --- src/jfrog-cli-homebrew/library_scripts.sh | 179 ------------------ src/jfrog-cli-npm/README.md | 24 --- src/jfrog-cli-npm/devcontainer-feature.json | 21 -- src/jfrog-cli-npm/install.sh | 23 --- src/jfrog-cli-npm/library_scripts.sh | 172 ----------------- src/jfrog-cli/README.md | 24 --- src/jfrog-cli/devcontainer-feature.json | 11 -- src/jfrog-cli/install.sh | 19 -- src/jfrog-cli/library_scripts.sh | 179 ------------------ src/jira-cli/README.md | 24 --- src/jira-cli/devcontainer-feature.json | 20 -- src/jira-cli/install.sh | 23 --- src/jira-cli/library_scripts.sh | 172 ----------------- src/jmc-sdkman/README.md | 32 ---- src/jmc-sdkman/devcontainer-feature.json | 44 ----- src/jmc-sdkman/install.sh | 44 ----- src/jmc-sdkman/library_scripts.sh | 179 ------------------ src/jmeter-sdkman/README.md | 29 --- src/jmeter-sdkman/devcontainer-feature.json | 44 ----- src/jmeter-sdkman/install.sh | 44 ----- src/jmeter-sdkman/library_scripts.sh | 179 ------------------ src/joern-sdkman/README.md | 32 ---- src/joern-sdkman/devcontainer-feature.json | 44 ----- src/joern-sdkman/install.sh | 44 ----- src/joern-sdkman/library_scripts.sh | 179 ------------------ src/jreleaser-sdkman/README.md | 28 --- .../devcontainer-feature.json | 44 ----- src/jreleaser-sdkman/install.sh | 44 ----- src/jreleaser-sdkman/library_scripts.sh | 179 ------------------ src/jrnl/README.md | 24 --- src/jrnl/devcontainer-feature.json | 21 -- src/jrnl/install.sh | 23 --- src/jrnl/library_scripts.sh | 172 ----------------- src/jshint/README.md | 24 --- src/jshint/devcontainer-feature.json | 21 -- src/jshint/install.sh | 23 --- src/jshint/library_scripts.sh | 172 ----------------- src/jsii-diff/README.md | 24 --- src/jsii-diff/devcontainer-feature.json | 21 -- src/jsii-diff/install.sh | 23 --- src/jsii-diff/library_scripts.sh | 172 ----------------- src/jsii-pacmak/README.md | 24 --- src/jsii-pacmak/devcontainer-feature.json | 21 -- src/jsii-pacmak/install.sh | 23 --- src/jsii-pacmak/library_scripts.sh | 172 ----------------- src/jsii-rosetta/README.md | 24 --- src/jsii-rosetta/devcontainer-feature.json | 21 -- src/jsii-rosetta/install.sh | 23 --- src/jsii-rosetta/library_scripts.sh | 172 ----------------- src/jsii/README.md | 24 --- src/jsii/devcontainer-feature.json | 21 -- src/jsii/install.sh | 23 --- src/jsii/library_scripts.sh | 172 ----------------- src/json-server/README.md | 24 --- src/json-server/devcontainer-feature.json | 21 -- src/json-server/install.sh | 23 --- src/json-server/library_scripts.sh | 172 ----------------- src/k2tf/README.md | 24 --- src/k2tf/devcontainer-feature.json | 20 -- src/k2tf/install.sh | 23 --- src/k2tf/library_scripts.sh | 172 ----------------- src/k6/README.md | 24 --- src/k6/devcontainer-feature.json | 20 -- src/k6/install.sh | 23 --- src/k6/library_scripts.sh | 172 ----------------- src/karaf-sdkman/README.md | 30 --- src/karaf-sdkman/devcontainer-feature.json | 41 ---- src/karaf-sdkman/install.sh | 44 ----- src/karaf-sdkman/library_scripts.sh | 179 ------------------ src/keepercommander/README.md | 24 --- src/keepercommander/devcontainer-feature.json | 21 -- src/keepercommander/install.sh | 23 --- src/keepercommander/library_scripts.sh | 172 ----------------- src/ki-sdkman/README.md | 28 --- src/ki-sdkman/devcontainer-feature.json | 44 ----- src/ki-sdkman/install.sh | 44 ----- src/ki-sdkman/library_scripts.sh | 179 ------------------ src/kind/README.md | 24 --- src/kind/devcontainer-feature.json | 20 -- src/kind/install.sh | 23 --- src/kind/library_scripts.sh | 172 ----------------- src/kobweb-sdkman/README.md | 27 --- src/kobweb-sdkman/devcontainer-feature.json | 44 ----- src/kobweb-sdkman/install.sh | 44 ----- src/kobweb-sdkman/library_scripts.sh | 179 ------------------ src/kops/README.md | 24 --- src/kops/devcontainer-feature.json | 20 -- src/kops/install.sh | 23 --- src/kops/library_scripts.sh | 172 ----------------- src/kotlin-sdkman/README.md | 27 --- src/kotlin-sdkman/devcontainer-feature.json | 44 ----- src/kotlin-sdkman/install.sh | 44 ----- src/kotlin-sdkman/library_scripts.sh | 179 ------------------ src/kscript-sdkman/README.md | 29 --- src/kscript-sdkman/devcontainer-feature.json | 52 ----- src/kscript-sdkman/install.sh | 51 ----- src/kscript-sdkman/library_scripts.sh | 179 ------------------ src/kubeclarity-cli/README.md | 24 --- src/kubeclarity-cli/devcontainer-feature.json | 20 -- src/kubeclarity-cli/install.sh | 23 --- src/kubeclarity-cli/library_scripts.sh | 172 ----------------- src/kubectl-asdf/README.md | 24 --- src/kubectl-asdf/devcontainer-feature.json | 20 -- src/kubectl-asdf/install.sh | 24 --- src/kubectl-asdf/library_scripts.sh | 179 ------------------ src/kubectx-kubens/README.md | 24 --- src/kubectx-kubens/devcontainer-feature.json | 21 -- src/kubectx-kubens/install.sh | 31 --- src/kubectx-kubens/library_scripts.sh | 172 ----------------- src/kubie/README.md | 24 --- src/kubie/devcontainer-feature.json | 18 -- src/kubie/install.sh | 83 -------- src/kyverno-cli/README.md | 24 --- src/kyverno-cli/devcontainer-feature.json | 20 -- src/kyverno-cli/install.sh | 23 --- src/kyverno-cli/library_scripts.sh | 172 ----------------- src/lastpass-cli-homebrew/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/lastpass-cli-homebrew/install.sh | 23 --- src/lastpass-cli-homebrew/library_scripts.sh | 179 ------------------ src/layrry-sdkman/README.md | 31 --- src/layrry-sdkman/devcontainer-feature.json | 44 ----- src/layrry-sdkman/install.sh | 44 ----- src/layrry-sdkman/library_scripts.sh | 179 ------------------ src/lean-asdf/README.md | 24 --- src/lean-asdf/devcontainer-feature.json | 20 -- src/lean-asdf/install.sh | 24 --- src/lean-asdf/library_scripts.sh | 179 ------------------ src/lefthook-asdf/README.md | 24 --- src/lefthook-asdf/devcontainer-feature.json | 20 -- src/lefthook-asdf/install.sh | 24 --- src/lefthook-asdf/library_scripts.sh | 179 ------------------ src/leiningen-sdkman/README.md | 28 --- .../devcontainer-feature.json | 44 ----- src/leiningen-sdkman/install.sh | 44 ----- src/leiningen-sdkman/library_scripts.sh | 179 ------------------ src/lektor/README.md | 24 --- src/lektor/devcontainer-feature.json | 21 -- src/lektor/install.sh | 23 --- src/lektor/library_scripts.sh | 172 ----------------- src/lerna-npm/README.md | 24 --- src/lerna-npm/devcontainer-feature.json | 21 -- src/lerna-npm/install.sh | 23 --- src/lerna-npm/library_scripts.sh | 172 ----------------- src/less/README.md | 24 --- src/less/devcontainer-feature.json | 21 -- src/less/install.sh | 23 --- src/less/library_scripts.sh | 172 ----------------- src/levant-asdf/README.md | 24 --- src/levant-asdf/devcontainer-feature.json | 20 -- src/levant-asdf/install.sh | 24 --- src/levant-asdf/library_scripts.sh | 179 ------------------ src/lighthouse-cli/README.md | 24 --- src/lighthouse-cli/devcontainer-feature.json | 21 -- src/lighthouse-cli/install.sh | 23 --- src/lighthouse-cli/library_scripts.sh | 172 ----------------- src/linkerd2-cli-edge/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/linkerd2-cli-edge/install.sh | 23 --- src/linkerd2-cli-edge/library_scripts.sh | 172 ----------------- src/linkerd2-cli-stable/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/linkerd2-cli-stable/install.sh | 23 --- src/linkerd2-cli-stable/library_scripts.sh | 172 ----------------- src/linode-cli/README.md | 24 --- src/linode-cli/devcontainer-feature.json | 21 -- src/linode-cli/install.sh | 23 --- src/linode-cli/library_scripts.sh | 172 ----------------- src/lite-server/README.md | 24 --- src/lite-server/devcontainer-feature.json | 21 -- src/lite-server/install.sh | 23 --- src/lite-server/library_scripts.sh | 172 ----------------- src/live-server/README.md | 24 --- src/live-server/devcontainer-feature.json | 21 -- src/live-server/install.sh | 23 --- src/live-server/library_scripts.sh | 172 ----------------- src/localstack/README.md | 24 --- src/localstack/devcontainer-feature.json | 31 --- src/localstack/install.sh | 42 ---- src/localstack/library_scripts.sh | 172 ----------------- src/localtunnel-npm/README.md | 24 --- src/localtunnel-npm/devcontainer-feature.json | 21 -- src/localtunnel-npm/install.sh | 23 --- src/localtunnel-npm/library_scripts.sh | 172 ----------------- src/mackup/README.md | 24 --- src/mackup/devcontainer-feature.json | 21 -- src/mackup/install.sh | 23 --- src/mackup/library_scripts.sh | 172 ----------------- src/markdownlint-cli/README.md | 24 --- .../devcontainer-feature.json | 21 -- src/markdownlint-cli/install.sh | 23 --- src/markdownlint-cli/library_scripts.sh | 172 ----------------- src/markdownlint-cli2/README.md | 24 --- .../devcontainer-feature.json | 21 -- src/markdownlint-cli2/install.sh | 23 --- src/markdownlint-cli2/library_scripts.sh | 172 ----------------- src/maven-sdkman/README.md | 28 --- src/maven-sdkman/devcontainer-feature.json | 44 ----- src/maven-sdkman/install.sh | 44 ----- src/maven-sdkman/library_scripts.sh | 179 ------------------ src/meltano/README.md | 24 --- src/meltano/devcontainer-feature.json | 21 -- src/meltano/install.sh | 23 --- src/meltano/library_scripts.sh | 172 ----------------- src/memcached-exporter/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/memcached-exporter/install.sh | 23 --- src/memcached-exporter/library_scripts.sh | 172 ----------------- src/micro/README.md | 24 --- src/micro/devcontainer-feature.json | 11 -- src/micro/install.sh | 23 --- src/micro/library_scripts.sh | 179 ------------------ src/micronaut-sdkman/README.md | 26 --- .../devcontainer-feature.json | 45 ----- src/micronaut-sdkman/install.sh | 51 ----- src/micronaut-sdkman/library_scripts.sh | 179 ------------------ src/mise/README.md | 22 --- src/mise/devcontainer-feature.json | 20 -- src/mise/install.sh | 24 --- src/mise/library_scripts.sh | 170 ----------------- src/mitmproxy/README.md | 24 --- src/mitmproxy/devcontainer-feature.json | 21 -- src/mitmproxy/install.sh | 23 --- src/mitmproxy/library_scripts.sh | 172 ----------------- src/mkcert/README.md | 24 --- src/mkcert/devcontainer-feature.json | 20 -- src/mkcert/install.sh | 23 --- src/mkcert/library_scripts.sh | 172 ----------------- src/mkdocs/README.md | 25 --- src/mkdocs/devcontainer-feature.json | 30 --- src/mkdocs/install.sh | 23 --- src/mkdocs/library_scripts.sh | 172 ----------------- src/mlocate-apt-get/README.md | 24 --- src/mlocate-apt-get/devcontainer-feature.json | 11 -- src/mlocate-apt-get/install.sh | 23 --- src/mlocate-apt-get/library_scripts.sh | 179 ------------------ src/mocha/README.md | 24 --- src/mocha/devcontainer-feature.json | 21 -- src/mocha/install.sh | 23 --- src/mocha/library_scripts.sh | 172 ----------------- src/mongodb-atlas-cli-homebrew/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/mongodb-atlas-cli-homebrew/install.sh | 23 --- .../library_scripts.sh | 179 ------------------ src/mongosh-homebrew/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/mongosh-homebrew/install.sh | 23 --- src/mongosh-homebrew/library_scripts.sh | 179 ------------------ src/mosh-apt-get/README.md | 24 --- src/mosh-apt-get/devcontainer-feature.json | 11 -- src/mosh-apt-get/install.sh | 23 --- src/mosh-apt-get/library_scripts.sh | 179 ------------------ src/mosh-homebrew/README.md | 24 --- src/mosh-homebrew/devcontainer-feature.json | 20 -- src/mosh-homebrew/install.sh | 23 --- src/mosh-homebrew/library_scripts.sh | 179 ------------------ src/mulefd-sdkman/README.md | 27 --- src/mulefd-sdkman/devcontainer-feature.json | 44 ----- src/mulefd-sdkman/install.sh | 44 ----- src/mulefd-sdkman/library_scripts.sh | 179 ------------------ src/mvnd-sdkman/README.md | 28 --- src/mvnd-sdkman/devcontainer-feature.json | 44 ----- src/mvnd-sdkman/install.sh | 44 ----- src/mvnd-sdkman/library_scripts.sh | 179 ------------------ src/mybatis-sdkman/README.md | 29 --- src/mybatis-sdkman/devcontainer-feature.json | 44 ----- src/mybatis-sdkman/install.sh | 44 ----- src/mybatis-sdkman/library_scripts.sh | 179 ------------------ src/mypy/README.md | 24 --- src/mypy/devcontainer-feature.json | 21 -- src/mypy/install.sh | 23 --- src/mypy/library_scripts.sh | 172 ----------------- src/mysql-homebrew/README.md | 24 --- src/mysql-homebrew/devcontainer-feature.json | 20 -- src/mysql-homebrew/install.sh | 23 --- src/mysql-homebrew/library_scripts.sh | 179 ------------------ src/mysqld-exporter/README.md | 24 --- src/mysqld-exporter/devcontainer-feature.json | 20 -- src/mysqld-exporter/install.sh | 23 --- src/mysqld-exporter/library_scripts.sh | 172 ----------------- src/n8n/README.md | 24 --- src/n8n/devcontainer-feature.json | 21 -- src/n8n/install.sh | 23 --- src/n8n/library_scripts.sh | 172 ----------------- src/namespace-cli/README.md | 17 -- src/namespace-cli/devcontainer-feature.json | 20 -- src/namespace-cli/install.sh | 21 -- src/namespace-cli/library_scripts.sh | 173 ----------------- src/nancy/README.md | 24 --- src/nancy/devcontainer-feature.json | 20 -- src/nancy/install.sh | 23 --- src/nancy/library_scripts.sh | 172 ----------------- src/navi/README.md | 24 --- src/navi/devcontainer-feature.json | 20 -- src/navi/install.sh | 23 --- src/navi/library_scripts.sh | 172 ----------------- src/ncdu/README.md | 24 --- src/ncdu/devcontainer-feature.json | 11 -- src/ncdu/install.sh | 23 --- src/ncdu/library_scripts.sh | 179 ------------------ src/neko-asdf/README.md | 24 --- src/neko-asdf/devcontainer-feature.json | 20 -- src/neko-asdf/install.sh | 24 --- src/neko-asdf/library_scripts.sh | 179 ------------------ src/neo4jmigrations-sdkman/README.md | 28 --- .../devcontainer-feature.json | 45 ----- src/neo4jmigrations-sdkman/install.sh | 51 ----- src/neo4jmigrations-sdkman/library_scripts.sh | 179 ------------------ src/neofetch/README.md | 24 --- src/neofetch/devcontainer-feature.json | 11 -- src/neofetch/install.sh | 23 --- src/neofetch/library_scripts.sh | 179 ------------------ src/neovim-apt-get/README.md | 24 --- src/neovim-apt-get/devcontainer-feature.json | 11 -- src/neovim-apt-get/install.sh | 24 --- src/neovim-apt-get/library_scripts.sh | 179 ------------------ src/neovim-homebrew/README.md | 24 --- src/neovim-homebrew/devcontainer-feature.json | 20 -- src/neovim-homebrew/install.sh | 23 --- src/neovim-homebrew/library_scripts.sh | 179 ------------------ src/nestjs-cli/README.md | 24 --- src/nestjs-cli/devcontainer-feature.json | 21 -- src/nestjs-cli/install.sh | 23 --- src/nestjs-cli/library_scripts.sh | 172 ----------------- src/netdata/README.md | 24 --- src/netdata/devcontainer-feature.json | 11 -- src/netdata/install.sh | 21 -- src/netdata/library_scripts.sh | 179 ------------------ src/netlify-cli/README.md | 24 --- src/netlify-cli/devcontainer-feature.json | 21 -- src/netlify-cli/install.sh | 23 --- src/netlify-cli/library_scripts.sh | 172 ----------------- src/nim-asdf/README.md | 24 --- src/nim-asdf/devcontainer-feature.json | 20 -- src/nim-asdf/install.sh | 20 -- src/nim-asdf/library_scripts.sh | 179 ------------------ src/ninja-asdf/README.md | 24 --- src/ninja-asdf/devcontainer-feature.json | 20 -- src/ninja-asdf/install.sh | 24 --- src/ninja-asdf/library_scripts.sh | 179 ------------------ src/nmap-apt-get/README.md | 24 --- src/nmap-apt-get/devcontainer-feature.json | 11 -- src/nmap-apt-get/install.sh | 23 --- src/nmap-apt-get/library_scripts.sh | 179 ------------------ src/nmap-homebrew/README.md | 24 --- src/nmap-homebrew/devcontainer-feature.json | 20 -- src/nmap-homebrew/install.sh | 23 --- src/nmap-homebrew/library_scripts.sh | 179 ------------------ src/nnn-apt-get/README.md | 24 --- src/nnn-apt-get/devcontainer-feature.json | 11 -- src/nnn-apt-get/install.sh | 23 --- src/nnn-apt-get/library_scripts.sh | 179 ------------------ src/nnn-homebrew/README.md | 24 --- src/nnn-homebrew/devcontainer-feature.json | 20 -- src/nnn-homebrew/install.sh | 23 --- src/nnn-homebrew/library_scripts.sh | 179 ------------------ src/node-asdf/README.md | 24 --- src/node-asdf/devcontainer-feature.json | 20 -- src/node-asdf/install.sh | 23 --- src/node-asdf/library_scripts.sh | 172 ----------------- src/node-exporter/README.md | 24 --- src/node-exporter/devcontainer-feature.json | 20 -- src/node-exporter/install.sh | 23 --- src/node-exporter/library_scripts.sh | 172 ----------------- src/nomad-asdf/README.md | 24 --- src/nomad-asdf/devcontainer-feature.json | 20 -- src/nomad-asdf/install.sh | 24 --- src/nomad-asdf/library_scripts.sh | 179 ------------------ src/nox/README.md | 24 --- src/nox/devcontainer-feature.json | 21 -- src/nox/install.sh | 23 --- src/nox/library_scripts.sh | 172 ----------------- src/npm-package/README.md | 25 --- src/npm-package/devcontainer-feature.json | 30 --- src/npm-package/install.sh | 64 ------- src/npm-packages/README.md | 24 --- src/npm-packages/devcontainer-feature.json | 18 -- src/npm-packages/install.sh | 39 ---- src/npm-packages/library_scripts.sh | 173 ----------------- src/nx-npm/README.md | 24 --- src/nx-npm/devcontainer-feature.json | 21 -- src/nx-npm/install.sh | 23 --- src/nx-npm/library_scripts.sh | 172 ----------------- src/ocaml-asdf/README.md | 24 --- src/ocaml-asdf/devcontainer-feature.json | 20 -- src/ocaml-asdf/install.sh | 24 --- src/ocaml-asdf/library_scripts.sh | 179 ------------------ src/ocaml-opam/devcontainer-feature.json | 34 ---- src/ocaml-opam/install.sh | 35 ---- src/ocaml-opam/library_scripts.sh | 173 ----------------- src/oclif/README.md | 24 --- src/oclif/devcontainer-feature.json | 21 -- src/oclif/install.sh | 23 --- src/oclif/library_scripts.sh | 172 ----------------- src/opa/README.md | 24 --- src/opa/devcontainer-feature.json | 20 -- src/opa/install.sh | 23 --- src/opa/library_scripts.sh | 172 ----------------- src/opam-asdf/README.md | 24 --- src/opam-asdf/devcontainer-feature.json | 20 -- src/opam-asdf/install.sh | 24 --- src/opam-asdf/library_scripts.sh | 179 ------------------ src/ory-cli/README.md | 24 --- src/ory-cli/devcontainer-feature.json | 20 -- src/ory-cli/install.sh | 23 --- src/ory-cli/library_scripts.sh | 172 ----------------- src/ory-hydra/README.md | 24 --- src/ory-hydra/devcontainer-feature.json | 20 -- src/ory-hydra/install.sh | 23 --- src/ory-hydra/library_scripts.sh | 172 ----------------- src/ory-kratos/README.md | 24 --- src/ory-kratos/devcontainer-feature.json | 20 -- src/ory-kratos/install.sh | 23 --- src/ory-kratos/library_scripts.sh | 172 ----------------- src/ory-oathkeeper/README.md | 24 --- src/ory-oathkeeper/devcontainer-feature.json | 20 -- src/ory-oathkeeper/install.sh | 23 --- src/ory-oathkeeper/library_scripts.sh | 172 ----------------- src/packer-asdf/README.md | 24 --- src/packer-asdf/devcontainer-feature.json | 20 -- src/packer-asdf/install.sh | 24 --- src/packer-asdf/library_scripts.sh | 179 ------------------ src/pandoc/README.md | 24 --- src/pandoc/devcontainer-feature.json | 20 -- src/pandoc/install.sh | 23 --- src/pandoc/library_scripts.sh | 172 ----------------- src/pass-apt-get/README.md | 24 --- src/pass-apt-get/devcontainer-feature.json | 11 -- src/pass-apt-get/install.sh | 23 --- src/pass-apt-get/library_scripts.sh | 179 ------------------ src/pdm/README.md | 24 --- src/pdm/devcontainer-feature.json | 21 -- src/pdm/install.sh | 23 --- src/pdm/library_scripts.sh | 172 ----------------- src/peco-asdf/README.md | 24 --- src/peco-asdf/devcontainer-feature.json | 20 -- src/peco-asdf/install.sh | 24 --- src/peco-asdf/library_scripts.sh | 179 ------------------ src/perl-asdf/README.md | 24 --- src/perl-asdf/devcontainer-feature.json | 20 -- src/perl-asdf/install.sh | 24 --- src/perl-asdf/library_scripts.sh | 179 ------------------ src/pierrot-sdkman/README.md | 26 --- src/pierrot-sdkman/devcontainer-feature.json | 44 ----- src/pierrot-sdkman/install.sh | 44 ----- src/pierrot-sdkman/library_scripts.sh | 179 ------------------ src/pipenv/README.md | 24 --- src/pipenv/devcontainer-feature.json | 21 -- src/pipenv/install.sh | 23 --- src/pipenv/library_scripts.sh | 172 ----------------- src/pipx-package/README.md | 28 --- src/pipx-package/devcontainer-feature.json | 49 ----- src/pipx-package/install.sh | 164 ---------------- src/pnpm/README.md | 24 --- src/pnpm/devcontainer-feature.json | 21 -- src/pnpm/install.sh | 23 --- src/pnpm/library_scripts.sh | 172 ----------------- src/podman-homebrew/README.md | 24 --- src/podman-homebrew/devcontainer-feature.json | 20 -- src/podman-homebrew/install.sh | 23 --- src/podman-homebrew/library_scripts.sh | 179 ------------------ src/poetry/README.md | 24 --- src/poetry/devcontainer-feature.json | 21 -- src/poetry/install.sh | 23 --- src/poetry/library_scripts.sh | 172 ----------------- src/pomchecker-sdkman/README.md | 27 --- .../devcontainer-feature.json | 44 ----- src/pomchecker-sdkman/install.sh | 44 ----- src/pomchecker-sdkman/library_scripts.sh | 179 ------------------ src/poppler-utils-apt-get/README.md | 36 ---- .../devcontainer-feature.json | 11 -- src/poppler-utils-apt-get/install.sh | 23 --- src/poppler-utils-apt-get/library_scripts.sh | 172 ----------------- src/powerbi-visuals-tools/README.md | 24 --- .../devcontainer-feature.json | 21 -- src/powerbi-visuals-tools/install.sh | 23 --- src/powerbi-visuals-tools/library_scripts.sh | 172 ----------------- src/powershell/README.md | 24 --- src/powershell/devcontainer-feature.json | 20 -- src/powershell/install.sh | 23 --- src/powershell/library_scripts.sh | 172 ----------------- src/pre-commit/README.md | 24 --- src/pre-commit/devcontainer-feature.json | 21 -- src/pre-commit/install.sh | 23 --- src/pre-commit/library_scripts.sh | 172 ----------------- src/prettier/README.md | 24 --- src/prettier/devcontainer-feature.json | 21 -- src/prettier/install.sh | 23 --- src/prettier/library_scripts.sh | 172 ----------------- src/prisma/README.md | 24 --- src/prisma/devcontainer-feature.json | 21 -- src/prisma/install.sh | 23 --- src/prisma/library_scripts.sh | 172 ----------------- src/projen/README.md | 24 --- src/projen/devcontainer-feature.json | 21 -- src/projen/install.sh | 23 --- src/projen/library_scripts.sh | 172 ----------------- src/prometheus/README.md | 24 --- src/prometheus/devcontainer-feature.json | 20 -- src/prometheus/install.sh | 23 --- src/prometheus/library_scripts.sh | 172 ----------------- src/promlens/README.md | 24 --- src/promlens/devcontainer-feature.json | 20 -- src/promlens/install.sh | 23 --- src/promlens/library_scripts.sh | 172 ----------------- src/protoc-asdf/README.md | 24 --- src/protoc-asdf/devcontainer-feature.json | 20 -- src/protoc-asdf/install.sh | 24 --- src/protoc-asdf/library_scripts.sh | 179 ------------------ src/protoc/README.md | 24 --- src/protoc/devcontainer-feature.json | 20 -- src/protoc/install.sh | 23 --- src/protoc/library_scripts.sh | 172 ----------------- src/pulumi/README.md | 25 --- src/pulumi/devcontainer-feature.json | 23 --- src/pulumi/install.sh | 71 ------- src/pushgateway/README.md | 24 --- src/pushgateway/devcontainer-feature.json | 20 -- src/pushgateway/install.sh | 23 --- src/pushgateway/library_scripts.sh | 172 ----------------- src/pyinfra/README.md | 24 --- src/pyinfra/devcontainer-feature.json | 21 -- src/pyinfra/install.sh | 23 --- src/pyinfra/library_scripts.sh | 172 ----------------- src/pylint/README.md | 24 --- src/pylint/devcontainer-feature.json | 21 -- src/pylint/install.sh | 23 --- src/pylint/library_scripts.sh | 172 ----------------- src/pyoxidizer/README.md | 24 --- src/pyoxidizer/devcontainer-feature.json | 21 -- src/pyoxidizer/install.sh | 23 --- src/pyoxidizer/library_scripts.sh | 172 ----------------- src/pyscaffold/README.md | 24 --- src/pyscaffold/devcontainer-feature.json | 21 -- src/pyscaffold/install.sh | 23 --- src/pyscaffold/library_scripts.sh | 172 ----------------- src/qrcode/README.md | 24 --- src/qrcode/devcontainer-feature.json | 21 -- src/qrcode/install.sh | 23 --- src/qrcode/library_scripts.sh | 172 ----------------- src/quarkus-sdkman/README.md | 27 --- src/quarkus-sdkman/devcontainer-feature.json | 44 ----- src/quarkus-sdkman/install.sh | 44 ----- src/quarkus-sdkman/library_scripts.sh | 179 ------------------ src/quasar-cli/README.md | 24 --- src/quasar-cli/devcontainer-feature.json | 21 -- src/quasar-cli/install.sh | 23 --- src/quasar-cli/library_scripts.sh | 172 ----------------- src/raku-asdf/README.md | 24 --- src/raku-asdf/devcontainer-feature.json | 21 -- src/raku-asdf/install.sh | 32 ---- src/raku-asdf/library_scripts.sh | 179 ------------------ src/rclone/README.md | 24 --- src/rclone/devcontainer-feature.json | 20 -- src/rclone/install.sh | 23 --- src/rclone/library_scripts.sh | 172 ----------------- src/redis-homebrew/README.md | 24 --- src/redis-homebrew/devcontainer-feature.json | 20 -- src/redis-homebrew/install.sh | 23 --- src/redis-homebrew/library_scripts.sh | 179 ------------------ src/rekor-cli/README.md | 24 --- src/rekor-cli/devcontainer-feature.json | 20 -- src/rekor-cli/install.sh | 23 --- src/rekor-cli/library_scripts.sh | 172 ----------------- src/renovate-cli/README.md | 24 --- src/renovate-cli/devcontainer-feature.json | 21 -- src/renovate-cli/install.sh | 23 --- src/renovate-cli/library_scripts.sh | 172 ----------------- src/ripgrep/README.md | 24 --- src/ripgrep/devcontainer-feature.json | 20 -- src/ripgrep/install.sh | 23 --- src/ripgrep/library_scripts.sh | 172 ----------------- src/rollup/README.md | 24 --- src/rollup/devcontainer-feature.json | 21 -- src/rollup/install.sh | 23 --- src/rollup/library_scripts.sh | 172 ----------------- src/ruby-asdf/README.md | 24 --- src/ruby-asdf/devcontainer-feature.json | 20 -- src/ruby-asdf/install.sh | 31 --- src/ruby-asdf/library_scripts.sh | 172 ----------------- src/ruff/README.md | 24 --- src/ruff/devcontainer-feature.json | 28 --- src/ruff/install.sh | 23 --- src/ruff/library_scripts.sh | 172 ----------------- src/salesforce-cli/README.md | 24 --- src/salesforce-cli/devcontainer-feature.json | 21 -- src/salesforce-cli/install.sh | 23 --- src/salesforce-cli/library_scripts.sh | 172 ----------------- src/salesforce-sfdx/README.md | 24 --- src/salesforce-sfdx/devcontainer-feature.json | 21 -- src/salesforce-sfdx/install.sh | 23 --- src/salesforce-sfdx/library_scripts.sh | 172 ----------------- src/sanity-cli/README.md | 24 --- src/sanity-cli/devcontainer-feature.json | 21 -- src/sanity-cli/install.sh | 23 --- src/sanity-cli/library_scripts.sh | 172 ----------------- src/sap-piper/README.md | 24 --- src/sap-piper/devcontainer-feature.json | 20 -- src/sap-piper/install.sh | 23 --- src/sap-piper/library_scripts.sh | 172 ----------------- src/sbt-sdkman/README.md | 32 ---- src/sbt-sdkman/devcontainer-feature.json | 44 ----- src/sbt-sdkman/install.sh | 44 ----- src/sbt-sdkman/library_scripts.sh | 179 ------------------ src/scala-sdkman/README.md | 38 ---- src/scala-sdkman/devcontainer-feature.json | 44 ----- src/scala-sdkman/install.sh | 44 ----- src/scala-sdkman/library_scripts.sh | 179 ------------------ src/scalacli-sdkman/README.md | 27 --- src/scalacli-sdkman/devcontainer-feature.json | 44 ----- src/scalacli-sdkman/install.sh | 44 ----- src/scalacli-sdkman/library_scripts.sh | 179 ------------------ src/scancode-toolkit/README.md | 24 --- .../devcontainer-feature.json | 21 -- src/scancode-toolkit/install.sh | 23 --- src/scancode-toolkit/library_scripts.sh | 172 ----------------- src/schemacrawler-sdkman/README.md | 33 ---- .../devcontainer-feature.json | 44 ----- src/schemacrawler-sdkman/install.sh | 44 ----- src/schemacrawler-sdkman/library_scripts.sh | 179 ------------------ src/sentinel-asdf/README.md | 24 --- src/sentinel-asdf/devcontainer-feature.json | 20 -- src/sentinel-asdf/install.sh | 24 --- src/sentinel-asdf/library_scripts.sh | 179 ------------------ src/serf-asdf/README.md | 24 --- src/serf-asdf/devcontainer-feature.json | 20 -- src/serf-asdf/install.sh | 24 --- src/serf-asdf/library_scripts.sh | 179 ------------------ src/shfmt/README.md | 24 --- src/shfmt/devcontainer-feature.json | 20 -- src/shfmt/install.sh | 23 --- src/shfmt/library_scripts.sh | 179 ------------------ src/shopify-cli/README.md | 24 --- src/shopify-cli/devcontainer-feature.json | 21 -- src/shopify-cli/install.sh | 40 ---- src/shopify-cli/library_scripts.sh | 172 ----------------- src/sigstore-python/README.md | 24 --- src/sigstore-python/devcontainer-feature.json | 21 -- src/sigstore-python/install.sh | 23 --- src/sigstore-python/library_scripts.sh | 172 ----------------- src/snyk-cli/README.md | 24 --- src/snyk-cli/devcontainer-feature.json | 21 -- src/snyk-cli/install.sh | 23 --- src/snyk-cli/library_scripts.sh | 172 ----------------- src/sops/README.md | 24 --- src/sops/devcontainer-feature.json | 20 -- src/sops/install.sh | 23 --- src/sops/library_scripts.sh | 172 ----------------- src/spacectl/README.md | 24 --- src/spacectl/devcontainer-feature.json | 20 -- src/spacectl/install.sh | 23 --- src/spacectl/library_scripts.sh | 172 ----------------- src/spark-sdkman/README.md | 28 --- src/spark-sdkman/devcontainer-feature.json | 44 ----- src/spark-sdkman/install.sh | 44 ----- src/spark-sdkman/library_scripts.sh | 179 ------------------ src/spicedb/README.md | 24 --- src/spicedb/devcontainer-feature.json | 20 -- src/spicedb/install.sh | 23 --- src/spicedb/library_scripts.sh | 172 ----------------- src/springboot-sdkman/README.md | 28 --- .../devcontainer-feature.json | 44 ----- src/springboot-sdkman/install.sh | 44 ----- src/springboot-sdkman/library_scripts.sh | 179 ------------------ src/sqlfluff/README.md | 25 --- src/sqlfluff/devcontainer-feature.json | 30 --- src/sqlfluff/install.sh | 23 --- src/sqlfluff/library_scripts.sh | 172 ----------------- src/squarespace-server/README.md | 24 --- .../devcontainer-feature.json | 21 -- src/squarespace-server/install.sh | 23 --- src/squarespace-server/library_scripts.sh | 172 ----------------- src/sshoogr-sdkman/README.md | 27 --- src/sshoogr-sdkman/devcontainer-feature.json | 44 ----- src/sshoogr-sdkman/install.sh | 44 ----- src/sshoogr-sdkman/library_scripts.sh | 179 ------------------ src/starship-homebrew/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/starship-homebrew/install.sh | 23 --- src/starship-homebrew/library_scripts.sh | 179 ------------------ src/starship/README.md | 24 --- src/starship/devcontainer-feature.json | 20 -- src/starship/install.sh | 23 --- src/starship/library_scripts.sh | 172 ----------------- src/statsd-exporter/README.md | 24 --- src/statsd-exporter/devcontainer-feature.json | 20 -- src/statsd-exporter/install.sh | 23 --- src/statsd-exporter/library_scripts.sh | 172 ----------------- src/stew/README.md | 24 --- src/stew/devcontainer-feature.json | 20 -- src/stew/install.sh | 23 --- src/stew/library_scripts.sh | 172 ----------------- src/supabase-cli/README.md | 24 --- src/supabase-cli/devcontainer-feature.json | 20 -- src/supabase-cli/install.sh | 23 --- src/supabase-cli/library_scripts.sh | 172 ----------------- src/surge-cli/README.md | 24 --- src/surge-cli/devcontainer-feature.json | 21 -- src/surge-cli/install.sh | 23 --- src/surge-cli/library_scripts.sh | 172 ----------------- src/sv2v/README.md | 24 --- src/sv2v/devcontainer-feature.json | 20 -- src/sv2v/install.sh | 23 --- src/sv2v/library_scripts.sh | 172 ----------------- src/svu-asdf/README.md | 24 --- src/svu-asdf/devcontainer-feature.json | 20 -- src/svu-asdf/install.sh | 24 --- src/svu-asdf/library_scripts.sh | 179 ------------------ src/syft/README.md | 24 --- src/syft/devcontainer-feature.json | 20 -- src/syft/install.sh | 23 --- src/syft/library_scripts.sh | 172 ----------------- src/syntaqx-serve/README.md | 24 --- src/syntaqx-serve/devcontainer-feature.json | 20 -- src/syntaqx-serve/install.sh | 23 --- src/syntaqx-serve/library_scripts.sh | 172 ----------------- src/tailscale/README.md | 24 --- src/tailscale/devcontainer-feature.json | 11 -- src/tailscale/install.sh | 23 --- src/tailscale/library_scripts.sh | 179 ------------------ src/talosctl/README.md | 17 -- src/talosctl/devcontainer-feature.json | 20 -- src/talosctl/install.sh | 21 -- src/talosctl/library_scripts.sh | 173 ----------------- src/taxi-sdkman/README.md | 28 --- src/taxi-sdkman/devcontainer-feature.json | 44 ----- src/taxi-sdkman/install.sh | 44 ----- src/taxi-sdkman/library_scripts.sh | 179 ------------------ src/tea/README.md | 24 --- src/tea/devcontainer-feature.json | 20 -- src/tea/install.sh | 23 --- src/tea/library_scripts.sh | 172 ----------------- src/tekton-cli/README.md | 24 --- src/tekton-cli/devcontainer-feature.json | 20 -- src/tekton-cli/install.sh | 23 --- src/tekton-cli/library_scripts.sh | 172 ----------------- src/tempo/README.md | 24 --- src/tempo/devcontainer-feature.json | 20 -- src/tempo/install.sh | 23 --- src/tempo/library_scripts.sh | 172 ----------------- src/temporal-cli/README.md | 24 --- src/temporal-cli/devcontainer-feature.json | 20 -- src/temporal-cli/install.sh | 23 --- src/temporal-cli/library_scripts.sh | 172 ----------------- src/terracognita/README.md | 24 --- src/terracognita/devcontainer-feature.json | 20 -- src/terracognita/install.sh | 23 --- src/terracognita/library_scripts.sh | 172 ----------------- src/terraform-asdf/README.md | 24 --- src/terraform-asdf/devcontainer-feature.json | 20 -- src/terraform-asdf/install.sh | 24 --- src/terraform-asdf/library_scripts.sh | 179 ------------------ src/terraform-docs/README.md | 24 --- src/terraform-docs/devcontainer-feature.json | 20 -- src/terraform-docs/install.sh | 23 --- src/terraform-docs/library_scripts.sh | 172 ----------------- src/terraform-ls-asdf/README.md | 24 --- .../devcontainer-feature.json | 20 -- src/terraform-ls-asdf/install.sh | 24 --- src/terraform-ls-asdf/library_scripts.sh | 179 ------------------ src/terraformer/README.md | 24 --- src/terraformer/devcontainer-feature.json | 20 -- src/terraformer/install.sh | 23 --- src/terraformer/library_scripts.sh | 172 ----------------- src/terragrunt/README.md | 24 --- src/terragrunt/devcontainer-feature.json | 20 -- src/terragrunt/install.sh | 23 --- src/terragrunt/library_scripts.sh | 172 ----------------- src/terramate/README.md | 24 --- src/terramate/devcontainer-feature.json | 20 -- src/terramate/install.sh | 23 --- src/terramate/library_scripts.sh | 172 ----------------- src/terrascan/README.md | 24 --- src/terrascan/devcontainer-feature.json | 18 -- src/terrascan/install.sh | 89 --------- src/tfc-agent-asdf/README.md | 24 --- src/tfc-agent-asdf/devcontainer-feature.json | 20 -- src/tfc-agent-asdf/install.sh | 24 --- src/tfc-agent-asdf/library_scripts.sh | 179 ------------------ src/tfenv-homebrew/README.md | 24 --- src/tfenv-homebrew/devcontainer-feature.json | 20 -- src/tfenv-homebrew/install.sh | 23 --- src/tfenv-homebrew/library_scripts.sh | 179 ------------------ src/tfsec/README.md | 24 --- src/tfsec/devcontainer-feature.json | 20 -- src/tfsec/install.sh | 23 --- src/tfsec/library_scripts.sh | 172 ----------------- src/tfswitch/README.md | 24 --- src/tfswitch/devcontainer-feature.json | 11 -- src/tfswitch/install.sh | 19 -- src/tfswitch/library_scripts.sh | 179 ------------------ src/tldr/README.md | 24 --- src/tldr/devcontainer-feature.json | 21 -- src/tldr/install.sh | 23 --- src/tldr/library_scripts.sh | 172 ----------------- src/tmate/README.md | 24 --- src/tmate/devcontainer-feature.json | 11 -- src/tmate/install.sh | 23 --- src/tmate/library_scripts.sh | 179 ------------------ src/tmux-apt-get/README.md | 24 --- src/tmux-apt-get/devcontainer-feature.json | 11 -- src/tmux-apt-get/install.sh | 23 --- src/tmux-apt-get/library_scripts.sh | 179 ------------------ src/tmux-homebrew/README.md | 24 --- src/tmux-homebrew/devcontainer-feature.json | 20 -- src/tmux-homebrew/install.sh | 23 --- src/tmux-homebrew/library_scripts.sh | 179 ------------------ src/tomcat-sdkman/README.md | 28 --- src/tomcat-sdkman/devcontainer-feature.json | 44 ----- src/tomcat-sdkman/install.sh | 44 ----- src/tomcat-sdkman/library_scripts.sh | 179 ------------------ src/tooljet-cli/README.md | 24 --- src/tooljet-cli/devcontainer-feature.json | 21 -- src/tooljet-cli/install.sh | 23 --- src/tooljet-cli/library_scripts.sh | 172 ----------------- src/toolkit-sdkman/README.md | 27 --- src/toolkit-sdkman/devcontainer-feature.json | 45 ----- src/toolkit-sdkman/install.sh | 51 ----- src/toolkit-sdkman/library_scripts.sh | 179 ------------------ src/tox/README.md | 24 --- src/tox/devcontainer-feature.json | 21 -- src/tox/install.sh | 23 --- src/tox/library_scripts.sh | 172 ----------------- src/tridentctl-asdf/README.md | 24 --- src/tridentctl-asdf/devcontainer-feature.json | 20 -- src/tridentctl-asdf/install.sh | 24 --- src/tridentctl-asdf/library_scripts.sh | 179 ------------------ src/truffle/README.md | 24 --- src/truffle/devcontainer-feature.json | 21 -- src/truffle/install.sh | 23 --- src/truffle/library_scripts.sh | 172 ----------------- src/ts-node/README.md | 24 --- src/ts-node/devcontainer-feature.json | 21 -- src/ts-node/install.sh | 23 --- src/ts-node/library_scripts.sh | 172 ----------------- src/tsx/README.md | 24 --- src/tsx/devcontainer-feature.json | 21 -- src/tsx/install.sh | 23 --- src/tsx/library_scripts.sh | 172 ----------------- src/turborepo-npm/README.md | 24 --- src/turborepo-npm/devcontainer-feature.json | 21 -- src/turborepo-npm/install.sh | 23 --- src/turborepo-npm/library_scripts.sh | 172 ----------------- src/twine/README.md | 24 --- src/twine/devcontainer-feature.json | 21 -- src/twine/install.sh | 23 --- src/twine/library_scripts.sh | 172 ----------------- src/typescript/README.md | 24 --- src/typescript/devcontainer-feature.json | 21 -- src/typescript/install.sh | 23 --- src/typescript/library_scripts.sh | 172 ----------------- src/typst/README.md | 24 --- src/typst/devcontainer-feature.json | 20 -- src/typst/install.sh | 23 --- src/typst/library_scripts.sh | 172 ----------------- src/ufmt/README.md | 24 --- src/ufmt/devcontainer-feature.json | 21 -- src/ufmt/install.sh | 20 -- src/ufmt/library_scripts.sh | 179 ------------------ src/upx/README.md | 24 --- src/upx/devcontainer-feature.json | 20 -- src/upx/install.sh | 23 --- src/upx/library_scripts.sh | 172 ----------------- src/vault-asdf/README.md | 24 --- src/vault-asdf/devcontainer-feature.json | 20 -- src/vault-asdf/install.sh | 24 --- src/vault-asdf/library_scripts.sh | 179 ------------------ src/vercel-cli/README.md | 24 --- src/vercel-cli/devcontainer-feature.json | 21 -- src/vercel-cli/install.sh | 23 --- src/vercel-cli/library_scripts.sh | 172 ----------------- src/vercel-ncc/README.md | 24 --- src/vercel-ncc/devcontainer-feature.json | 21 -- src/vercel-ncc/install.sh | 23 --- src/vercel-ncc/library_scripts.sh | 172 ----------------- src/vercel-pkg/README.md | 24 --- src/vercel-pkg/devcontainer-feature.json | 21 -- src/vercel-pkg/install.sh | 23 --- src/vercel-pkg/library_scripts.sh | 172 ----------------- src/vercel-release/README.md | 24 --- src/vercel-release/devcontainer-feature.json | 21 -- src/vercel-release/install.sh | 23 --- src/vercel-release/library_scripts.sh | 172 ----------------- src/vercel-serve/README.md | 24 --- src/vercel-serve/devcontainer-feature.json | 21 -- src/vercel-serve/install.sh | 23 --- src/vercel-serve/library_scripts.sh | 172 ----------------- src/vscode-cli/README.md | 24 --- src/vscode-cli/devcontainer-feature.json | 17 -- src/vscode-cli/install.sh | 52 ----- src/vscode-cli/library_scripts.sh | 179 ------------------ src/vscode-server/README.md | 24 --- src/vscode-server/devcontainer-feature.json | 17 -- src/vscode-server/install.sh | 53 ------ src/vscode-server/library_scripts.sh | 179 ------------------ src/vtop/README.md | 24 --- src/vtop/devcontainer-feature.json | 21 -- src/vtop/install.sh | 23 --- src/vtop/library_scripts.sh | 172 ----------------- src/vue-cli/README.md | 24 --- src/vue-cli/devcontainer-feature.json | 21 -- src/vue-cli/install.sh | 23 --- src/vue-cli/library_scripts.sh | 172 ----------------- src/vulture/README.md | 24 --- src/vulture/devcontainer-feature.json | 21 -- src/vulture/install.sh | 23 --- src/vulture/library_scripts.sh | 172 ----------------- src/w3m-apt-get/README.md | 24 --- src/w3m-apt-get/devcontainer-feature.json | 11 -- src/w3m-apt-get/install.sh | 23 --- src/w3m-apt-get/library_scripts.sh | 179 ------------------ src/w3m-homebrew/README.md | 24 --- src/w3m-homebrew/devcontainer-feature.json | 20 -- src/w3m-homebrew/install.sh | 23 --- src/w3m-homebrew/library_scripts.sh | 179 ------------------ src/waypoint-asdf/README.md | 24 --- src/waypoint-asdf/devcontainer-feature.json | 20 -- src/waypoint-asdf/install.sh | 24 --- src/waypoint-asdf/library_scripts.sh | 179 ------------------ src/webi-packages/README.md | 18 -- src/webi-packages/devcontainer-feature.json | 17 -- src/webi-packages/install.sh | 17 -- src/webi-packages/utils.sh | 80 -------- src/webtau-sdkman/README.md | 31 --- src/webtau-sdkman/devcontainer-feature.json | 44 ----- src/webtau-sdkman/install.sh | 44 ----- src/webtau-sdkman/library_scripts.sh | 179 ------------------ src/wget-apt-get/README.md | 24 --- src/wget-apt-get/devcontainer-feature.json | 11 -- src/wget-apt-get/install.sh | 23 --- src/wget-apt-get/library_scripts.sh | 179 ------------------ src/wget-homebrew/README.md | 24 --- src/wget-homebrew/devcontainer-feature.json | 20 -- src/wget-homebrew/install.sh | 23 --- src/wget-homebrew/library_scripts.sh | 179 ------------------ src/wireguard-apt-get/README.md | 24 --- .../devcontainer-feature.json | 11 -- src/wireguard-apt-get/install.sh | 23 --- src/wireguard-apt-get/library_scripts.sh | 179 ------------------ src/xmrig/README.md | 24 --- src/xmrig/devcontainer-feature.json | 20 -- src/xmrig/install.sh | 23 --- src/xmrig/library_scripts.sh | 172 ----------------- src/xonsh/README.md | 24 --- src/xonsh/devcontainer-feature.json | 21 -- src/xonsh/install.sh | 23 --- src/xonsh/library_scripts.sh | 172 ----------------- src/yamllint/README.md | 24 --- src/yamllint/devcontainer-feature.json | 21 -- src/yamllint/install.sh | 23 --- src/yamllint/library_scripts.sh | 172 ----------------- src/yapf/README.md | 24 --- src/yapf/devcontainer-feature.json | 21 -- src/yapf/install.sh | 23 --- src/yapf/library_scripts.sh | 172 ----------------- src/youtube-dl/README.md | 24 --- src/youtube-dl/devcontainer-feature.json | 21 -- src/youtube-dl/install.sh | 23 --- src/youtube-dl/library_scripts.sh | 172 ----------------- src/youtubeuploader/README.md | 24 --- src/youtubeuploader/devcontainer-feature.json | 20 -- src/youtubeuploader/install.sh | 23 --- src/youtubeuploader/library_scripts.sh | 172 ----------------- src/yt-dlp/README.md | 24 --- src/yt-dlp/devcontainer-feature.json | 21 -- src/yt-dlp/install.sh | 23 --- src/yt-dlp/library_scripts.sh | 172 ----------------- src/zig/README.md | 24 --- src/zig/devcontainer-feature.json | 18 -- src/zig/install.sh | 55 ------ src/zsh-plugins/README.md | 26 --- src/zsh-plugins/devcontainer-feature.json | 39 ---- src/zsh-plugins/install.sh | 62 ------ test/act-asdf/scenarios.json | 8 - test/act-asdf/test.sh | 9 - test/act/scenarios.json | 8 - test/act/test_defaults_debian.sh | 9 - test/actionlint/scenarios.json | 8 - test/actionlint/test_defaults_debian.sh | 9 - test/actions-runner/scenarios.json | 8 - test/actions-runner/test_defaults_debian.sh | 9 - test/activemq-sdkman/scenarios.json | 8 - test/activemq-sdkman/test.sh | 13 -- test/age/scenarios.json | 8 - test/age/test_defaults_debian.sh | 9 - test/akamai-cli/scenarios.json | 8 - test/akamai-cli/test_defaults_debian.sh | 9 - test/alertmanager/scenarios.json | 8 - test/alertmanager/test_defaults_debian.sh | 9 - test/alp-asdf/scenarios.json | 8 - test/alp-asdf/test.sh | 9 - test/amplify-cli/scenarios.json | 8 - test/amplify-cli/test.sh | 9 - test/angular-cli/scenarios.json | 8 - test/angular-cli/test.sh | 9 - test/ansible/scenarios.json | 36 ---- test/ansible/test.sh | 9 - test/ansible/test_debian.sh | 9 - test/ansible/test_debian_bookworm.sh | 9 - test/ansible/test_injections.sh | 9 - test/ansible/test_ubuntu.sh | 9 - test/ansible/test_version_selection.sh | 9 - test/ant-sdkman/scenarios.json | 8 - test/ant-sdkman/test.sh | 13 -- test/apko/scenarios.json | 8 - test/apko/test_defaults_debian.sh | 9 - test/apt-get-packages/scenarios.json | 11 -- test/apt-get-packages/test_neovim_ubuntu.sh | 9 - test/apt-packages/scenarios.json | 11 -- test/apt-packages/test_neovim_ubuntu.sh | 9 - test/argo-cd/scenarios.json | 8 - test/argo-cd/test.sh | 11 -- test/argo-workflows/scenarios.json | 8 - test/argo-workflows/test.sh | 9 - test/asciidoctorj-sdkman/scenarios.json | 8 - test/asciidoctorj-sdkman/test.sh | 13 -- test/asdf-package/install_act.sh | 11 -- test/asdf-package/install_act_with_repo.sh | 11 -- test/asdf-package/install_rabbitmq.sh | 12 -- test/asdf-package/install_terraform_alpine.sh | 11 -- test/asdf-package/scenarios.json | 41 ---- test/assemblyscript/scenarios.json | 8 - test/assemblyscript/test.sh | 9 - test/atlantis/scenarios.json | 8 - test/atlantis/test_defaults_debian.sh | 9 - test/atmos/scenarios.json | 8 - test/atmos/test_defaults_debian.sh | 9 - test/auditjs/scenarios.json | 8 - test/auditjs/test_defaults.sh | 9 - test/autoenv/scenarios.json | 8 - test/autoenv/test.sh | 9 - test/aws-cdk/scenarios.json | 8 - test/aws-cdk/test.sh | 9 - test/aws-eb-cli/scenarios.json | 8 - test/aws-eb-cli/test.sh | 9 - test/aws-sso-cli/scenarios.json | 16 -- test/aws-sso-cli/test.sh | 9 - test/aws-sso-cli/test_debian.sh | 9 - test/aws-sso-cli/test_specific_version.sh | 9 - test/aztfexport/scenarios.json | 8 - test/aztfexport/test_defaults_debian.sh | 9 - test/azure-apiops/scenarios.json | 8 - test/azure-apiops/test.sh | 11 -- test/ballerina-sdkman/scenarios.json | 8 - test/ballerina-sdkman/test.sh | 13 -- test/bandit/scenarios.json | 8 - test/bandit/test.sh | 9 - test/bartib/scenarios.json | 8 - test/bartib/test_defaults_debian.sh | 9 - test/bash-command/scenarios.json | 10 - test/bash-command/set_env.sh | 11 -- test/beehive/scenarios.json | 8 - test/beehive/test_defaults_debian.sh | 9 - test/bikeshed/scenarios.json | 8 - test/bikeshed/test.sh | 9 - test/bin/scenarios.json | 8 - test/bin/test_defaults_debian.sh | 9 - test/black/scenarios.json | 8 - test/black/test.sh | 9 - test/blackbox-exporter/scenarios.json | 8 - .../blackbox-exporter/test_defaults_debian.sh | 9 - test/bomber/scenarios.json | 8 - test/bomber/test_defaults_debian.sh | 9 - test/bower/scenarios.json | 8 - test/bower/test.sh | 9 - test/bpipe-sdkman/scenarios.json | 8 - test/bpipe-sdkman/test.sh | 13 -- test/brownie/scenarios.json | 8 - test/brownie/test.sh | 9 - test/browserify/scenarios.json | 8 - test/browserify/test.sh | 9 - test/btop-homebrew/scenarios.json | 8 - test/btop-homebrew/test.sh | 9 - test/btrace-sdkman/scenarios.json | 8 - test/btrace-sdkman/test.sh | 13 -- test/budibase-cli/scenarios.json | 8 - test/budibase-cli/test.sh | 9 - test/buku/scenarios.json | 8 - test/buku/test.sh | 9 - test/caddy/scenarios.json | 8 - test/caddy/test_defaults_debian.sh | 9 - test/ccache-asdf/scenarios.json | 8 - test/ccache-asdf/test.sh | 9 - test/checkov/scenarios.json | 8 - test/checkov/test.sh | 9 - test/chezscheme-asdf/scenarios.json | 8 - test/chezscheme-asdf/test.sh | 9 - test/chisel/scenarios.json | 8 - test/chisel/test_defaults_debian.sh | 9 - test/circleci-cli/scenarios.json | 8 - test/circleci-cli/test_defaults_debian.sh | 9 - test/clojure-asdf/scenarios.json | 8 - test/clojure-asdf/test.sh | 9 - test/cloud-nuke/scenarios.json | 8 - test/cloud-nuke/test_defaults_debian.sh | 9 - test/cloudflare-wrangler/scenarios.json | 8 - test/cloudflare-wrangler/test.sh | 9 - test/cloudflared-fips/scenarios.json | 8 - test/cloudflared-fips/test_defaults_debian.sh | 9 - test/cloudflared/scenarios.json | 8 - test/cloudflared/test_defaults_debian.sh | 9 - test/cloudinary-cli/scenarios.json | 8 - test/cloudinary-cli/test.sh | 9 - test/cmake/scenarios.json | 16 -- test/cmake/test.sh | 11 -- test/cmake/test_debian.sh | 11 -- test/cmake/test_specific_version.sh | 11 -- test/codefresh-cli/scenarios.json | 8 - test/codefresh-cli/test_defaults_debian.sh | 9 - test/composer/scenarios.json | 8 - test/composer/test_defaults_debian.sh | 9 - test/concurnas-sdkman/scenarios.json | 8 - test/concurnas-sdkman/test.sh | 13 -- test/connor-sdkman/scenarios.json | 8 - test/connor-sdkman/test.sh | 13 -- test/consul-asdf/scenarios.json | 8 - test/consul-asdf/test.sh | 9 - test/consul-exporter/scenarios.json | 8 - test/consul-exporter/test_defaults_debian.sh | 9 - test/cookiecutter/scenarios.json | 8 - test/cookiecutter/test.sh | 9 - test/copier/injections.sh | 10 - test/copier/scenarios.json | 16 -- test/copier/test.sh | 9 - test/corepack/scenarios.json | 8 - test/corepack/test.sh | 9 - test/cosign/scenarios.json | 8 - test/cosign/test_defaults_debian.sh | 9 - test/coverage-py/scenarios.json | 8 - test/coverage-py/test.sh | 9 - test/crystal-asdf/scenarios.json | 8 - test/crystal-asdf/test.sh | 9 - test/cuba-sdkman/scenarios.json | 8 - test/cuba-sdkman/test.sh | 13 -- test/curl-apt-get/scenarios.json | 8 - test/curl-apt-get/test.sh | 9 - test/curl-homebrew/scenarios.json | 8 - test/curl-homebrew/test.sh | 9 - test/cve-bin-tool/scenarios.json | 8 - test/cve-bin-tool/test_defaults.sh | 9 - test/cxf-sdkman/scenarios.json | 8 - test/cxf-sdkman/test.sh | 13 -- test/cyclonedx-cli/scenarios.json | 8 - test/cyclonedx-cli/test_defaults_debian.sh | 9 - test/cyclonedx-python/scenarios.json | 8 - test/cyclonedx-python/test_defaults.sh | 9 - test/cz-cli/scenarios.json | 8 - test/cz-cli/test.sh | 9 - test/d/scenarios.json | 8 - test/d/test.sh | 9 - test/dasel-asdf/scenarios.json | 8 - test/dasel-asdf/test.sh | 9 - test/dashlane-cli/scenarios.json | 8 - test/dashlane-cli/test_defaults_debian.sh | 9 - test/datadog-ci-cli/scenarios.json | 8 - test/datadog-ci-cli/test_defaults_debian.sh | 9 - test/datasette/scenarios.json | 8 - test/datasette/test.sh | 9 - test/dbt-coverage/scenarios.json | 8 - test/dbt-coverage/test.sh | 9 - test/ddgr-apt-get/scenarios.json | 8 - test/ddgr-apt-get/test.sh | 9 - test/ddgr-homebrew/scenarios.json | 8 - test/ddgr-homebrew/test.sh | 9 - test/deno-asdf/scenarios.json | 8 - test/deno-asdf/test.sh | 9 - test/deno/scenarios.json | 8 - test/deno/test.sh | 9 - test/devcontainers-cli/scenarios.json | 8 - test/devcontainers-cli/test.sh | 9 - test/digitalocean-cli/scenarios.json | 8 - test/digitalocean-cli/test.sh | 9 - test/direnv-asdf/scenarios.json | 8 - test/direnv-asdf/test.sh | 9 - test/direnv/scenarios.json | 8 - test/direnv/test_defaults_debian.sh | 9 - test/dive/scenarios.json | 8 - test/dive/test_defaults_debian.sh | 9 - test/dnote/scenarios.json | 8 - test/dnote/test_defaults_debian.sh | 9 - test/doctoolchain-sdkman/scenarios.json | 8 - test/doctoolchain-sdkman/test.sh | 13 -- test/dprint-asdf/scenarios.json | 8 - test/dprint-asdf/test.sh | 9 - test/driftctl/scenarios.json | 8 - test/driftctl/test_defaults_debian.sh | 9 - test/drone-cli/scenarios.json | 8 - test/drone-cli/test_defaults_debian.sh | 9 - test/dua/scenarios.json | 8 - test/dua/test_defaults_debian.sh | 9 - test/duf/scenarios.json | 8 - test/duf/test_defaults_debian.sh | 9 - test/dufs/scenarios.json | 8 - test/dufs/test_defaults_debian.sh | 9 - test/eas-cli/scenarios.json | 8 - test/eas-cli/test.sh | 9 - test/eget/scenarios.json | 8 - test/eget/test_defaults_debian.sh | 9 - test/elasticsearch-asdf/scenarios.json | 8 - test/elasticsearch-asdf/test.sh | 9 - test/elm-asdf/scenarios.json | 8 - test/elm-asdf/test.sh | 9 - test/ember-cli/scenarios.json | 8 - test/ember-cli/test.sh | 9 - test/envoy/scenarios.json | 8 - test/envoy/test_defaults_debian.sh | 9 - test/epinio/scenarios.json | 8 - test/epinio/test_defaults_debian.sh | 9 - test/etcd/scenarios.json | 8 - test/etcd/test_defaults_debian.sh | 9 - test/exa/scenarios.json | 8 - test/exa/test_defaults_debian.sh | 9 - test/exercism-cli/scenarios.json | 8 - test/exercism-cli/test_defaults_debian.sh | 9 - test/expo-cli/scenarios.json | 8 - test/expo-cli/test.sh | 9 - test/express-generator/scenarios.json | 8 - test/express-generator/test.sh | 9 - test/fd/scenarios.json | 8 - test/fd/test_defaults_debian.sh | 9 - test/ffmpeg-apt-get/scenarios.json | 8 - test/ffmpeg-apt-get/test.sh | 9 - test/firebase-cli/scenarios.json | 8 - test/firebase-cli/test.sh | 9 - test/fish-apt-get/scenarios.json | 8 - test/fish-apt-get/test.sh | 9 - test/fkill/scenarios.json | 8 - test/fkill/test.sh | 9 - test/flake8/scenarios.json | 8 - test/flake8/test.sh | 9 - test/flink-sdkman/scenarios.json | 8 - test/flink-sdkman/test.sh | 13 -- test/flit/scenarios.json | 8 - test/flit/test.sh | 9 - test/former2-cli/scenarios.json | 8 - test/former2-cli/test.sh | 9 - test/fossil-apt-get/scenarios.json | 8 - test/fossil-apt-get/test.sh | 9 - test/fossil-homebrew/scenarios.json | 8 - test/fossil-homebrew/test.sh | 9 - test/fulcio/scenarios.json | 8 - test/fulcio/test_defaults_debian.sh | 9 - test/fzf/scenarios.json | 8 - test/fzf/test_defaults_debian.sh | 9 - test/gaiden-sdkman/scenarios.json | 8 - test/gaiden-sdkman/test.sh | 13 -- test/ganache/scenarios.json | 8 - test/ganache/test.sh | 9 - test/gcovr/scenarios.json | 16 -- test/gcovr/test.sh | 9 - test/gcovr/test_debian.sh | 9 - test/gcovr/test_specific_version.sh | 9 - test/gdbgui/scenarios.json | 8 - test/gdbgui/test.sh | 9 - test/gh-cli/scenarios.json | 14 -- test/gh-cli/test_defaults_alpine.sh | 9 - test/gh-cli/test_defaults_debian.sh | 9 - test/gh-release/scenarios.json | 76 -------- test/gh-release/test_act.sh | 9 - test/gh-release/test_apiops.sh | 9 - test/gh-release/test_defaults_alpine.sh | 9 - test/gh-release/test_defaults_debian.sh | 9 - test/gh-release/test_etcd.sh | 9 - test/gh-release/test_no_git.sh | 9 - test/gh-release/test_powershell.sh | 9 - test/git-lfs/scenarios.json | 8 - test/git-lfs/test_defaults_debian.sh | 9 - test/gitmux/scenarios.json | 8 - test/gitmux/test_defaults_debian.sh | 9 - test/gitomatic/scenarios.json | 8 - test/gitomatic/test_defaults_debian.sh | 9 - test/gitsign-credential-cache/scenarios.json | 8 - .../test_defaults_debian.sh | 9 - test/gitsign/scenarios.json | 8 - test/gitsign/test_defaults_debian.sh | 9 - test/gitty/scenarios.json | 8 - test/gitty/test_defaults_debian.sh | 9 - test/glances/scenarios.json | 8 - test/glances/test.sh | 9 - test/gleam/scenarios.json | 8 - test/gleam/test_defaults_debian.sh | 9 - test/go-task/scenarios.json | 8 - test/go-task/test_defaults_debian.sh | 9 - test/graalvm-asdf/scenarios.json | 8 - test/graalvm-asdf/test.sh | 9 - test/gradle-sdkman/scenarios.json | 8 - test/gradle-sdkman/test.sh | 13 -- test/gradleprofiler-sdkman/scenarios.json | 8 - test/gradleprofiler-sdkman/test.sh | 13 -- test/grails-sdkman/scenarios.json | 8 - test/grails-sdkman/test.sh | 13 -- test/graphite-exporter/scenarios.json | 8 - .../graphite-exporter/test_defaults_debian.sh | 9 - test/groovy-sdkman/scenarios.json | 8 - test/groovy-sdkman/test.sh | 13 -- test/groovyserv-sdkman/scenarios.json | 8 - test/groovyserv-sdkman/test.sh | 13 -- test/grpcurl-asdf/scenarios.json | 8 - test/grpcurl-asdf/test.sh | 9 - test/grype/scenarios.json | 8 - test/grype/test_defaults_debian.sh | 9 - test/gulp-cli/scenarios.json | 8 - test/gulp-cli/test.sh | 9 - test/hadoop-sdkman/scenarios.json | 8 - test/hadoop-sdkman/test.sh | 13 -- test/haskell/scenarios.json | 16 -- test/haskell/test.sh | 12 -- test/haskell/test_libraries.sh | 9 - test/hatch/scenarios.json | 8 - test/hatch/test.sh | 9 - test/haxe-asdf/scenarios.json | 8 - test/haxe-asdf/test.sh | 9 - test/helmfile/scenarios.json | 16 -- test/helmfile/test.sh | 9 - test/helmfile/test_debian.sh | 9 - test/helmfile/test_specific_version.sh | 9 - test/heroku-cli/scenarios.json | 16 -- test/heroku-cli/test.sh | 9 - test/heroku-cli/test_non_latest_version.sh | 10 - test/homebrew-package/scenarios.json | 38 ---- test/homebrew-package/test_file_limit.sh | 9 - test/homebrew-package/test_latest.sh | 9 - .../homebrew-package/test_specific_version.sh | 11 -- test/homebrew-package/test_universal.sh | 9 - test/hotel/scenarios.json | 8 - test/hotel/test.sh | 9 - test/how2/scenarios.json | 8 - test/how2/test_defaults_debian.sh | 9 - test/http-server/scenarios.json | 8 - test/http-server/test.sh | 9 - test/http4k-sdkman/scenarios.json | 8 - test/http4k-sdkman/test.sh | 13 -- test/hyperfine/scenarios.json | 8 - test/hyperfine/test_defaults_debian.sh | 9 - test/immuadmin-fips/scenarios.json | 8 - test/immuadmin-fips/test_defaults_debian.sh | 9 - test/immuadmin/scenarios.json | 8 - test/immuadmin/test_defaults_debian.sh | 9 - test/immuclient-fips/scenarios.json | 8 - test/immuclient-fips/test_defaults_debian.sh | 9 - test/immuclient/scenarios.json | 8 - test/immuclient/test_defaults_debian.sh | 9 - test/immudb-fips/scenarios.json | 8 - test/immudb-fips/test_defaults_debian.sh | 9 - test/immudb/scenarios.json | 8 - test/immudb/test_defaults_debian.sh | 9 - test/infracost/scenarios.json | 8 - test/infracost/test_defaults_debian.sh | 9 - test/infrastructor-sdkman/scenarios.json | 8 - test/infrastructor-sdkman/test.sh | 13 -- test/invoke/scenarios.json | 14 -- test/invoke/test_debian.sh | 9 - test/invoke/test_ubuntu.sh | 9 - test/ionic-cli/scenarios.json | 8 - test/ionic-cli/test.sh | 9 - test/isort/scenarios.json | 8 - test/isort/test.sh | 9 - test/istioctl/scenarios.json | 8 - test/istioctl/test_defaults_debian.sh | 9 - test/jake/scenarios.json | 8 - test/jake/test_defaults.sh | 9 - test/jbake-sdkman/scenarios.json | 8 - test/jbake-sdkman/test.sh | 13 -- test/jbang-sdkman/scenarios.json | 8 - test/jbang-sdkman/test.sh | 13 -- test/jenkinsx-cli/scenarios.json | 8 - test/jenkinsx-cli/test_defaults_debian.sh | 9 - test/jest/scenarios.json | 8 - test/jest/test.sh | 9 - test/jfrog-cli-homebrew/scenarios.json | 8 - test/jfrog-cli-homebrew/test.sh | 9 - test/jfrog-cli-npm/scenarios.json | 8 - test/jfrog-cli-npm/test.sh | 9 - test/jfrog-cli/scenarios.json | 8 - test/jfrog-cli/test.sh | 9 - test/jira-cli/scenarios.json | 8 - test/jira-cli/test_defaults_debian.sh | 9 - test/jmc-sdkman/scenarios.json | 8 - test/jmc-sdkman/test.sh | 13 -- test/jmeter-sdkman/scenarios.json | 8 - test/jmeter-sdkman/test.sh | 13 -- test/joern-sdkman/scenarios.json | 8 - test/joern-sdkman/test.sh | 13 -- test/jreleaser-sdkman/scenarios.json | 8 - test/jreleaser-sdkman/test.sh | 13 -- test/jrnl/scenarios.json | 8 - test/jrnl/test.sh | 9 - test/jshint/scenarios.json | 8 - test/jshint/test.sh | 9 - test/jsii-diff/scenarios.json | 8 - test/jsii-diff/test.sh | 9 - test/jsii-pacmak/scenarios.json | 8 - test/jsii-pacmak/test.sh | 9 - test/jsii-rosetta/scenarios.json | 8 - test/jsii-rosetta/test.sh | 9 - test/jsii/scenarios.json | 8 - test/jsii/test.sh | 9 - test/json-server/scenarios.json | 8 - test/json-server/test.sh | 9 - test/k2tf/scenarios.json | 8 - test/k2tf/test_defaults_debian.sh | 9 - test/k6/scenarios.json | 8 - test/k6/test_defaults_debian.sh | 9 - test/karaf-sdkman/scenarios.json | 8 - test/karaf-sdkman/test.sh | 13 -- test/keepercommander/scenarios.json | 8 - test/keepercommander/test.sh | 9 - test/ki-sdkman/scenarios.json | 8 - test/ki-sdkman/test.sh | 13 -- test/kind/scenarios.json | 8 - test/kind/test_defaults_debian.sh | 9 - test/kobweb-sdkman/scenarios.json | 8 - test/kobweb-sdkman/test.sh | 13 -- test/kops/scenarios.json | 8 - test/kops/test_defaults_debian.sh | 9 - test/kotlin-sdkman/scenarios.json | 14 -- test/kotlin-sdkman/test.sh | 13 -- test/kotlin-sdkman/test_debian.sh | 13 -- test/kotlin-sdkman/test_universal.sh | 13 -- test/kscript-sdkman/scenarios.json | 8 - test/kscript-sdkman/test.sh | 13 -- test/kubeclarity-cli/scenarios.json | 8 - test/kubeclarity-cli/test_defaults_debian.sh | 9 - test/kubectl-asdf/scenarios.json | 8 - test/kubectl-asdf/test.sh | 9 - test/kubectx-kubens/scenarios.json | 8 - test/kubectx-kubens/test.sh | 11 -- test/kubie/scenarios.json | 8 - test/kubie/test.sh | 10 - test/kyverno-cli/scenarios.json | 8 - test/kyverno-cli/test_defaults_debian.sh | 9 - test/lastpass-cli-homebrew/scenarios.json | 8 - test/lastpass-cli-homebrew/test.sh | 9 - test/layrry-sdkman/scenarios.json | 8 - test/layrry-sdkman/test.sh | 13 -- test/lean-asdf/scenarios.json | 8 - test/lean-asdf/test.sh | 9 - test/lefthook-asdf/scenarios.json | 8 - test/lefthook-asdf/test.sh | 9 - test/leiningen-sdkman/scenarios.json | 8 - test/leiningen-sdkman/test.sh | 13 -- test/lektor/scenarios.json | 8 - test/lektor/test.sh | 9 - test/lerna-npm/scenarios.json | 8 - test/lerna-npm/test.sh | 9 - test/less/scenarios.json | 8 - test/less/test.sh | 9 - test/levant-asdf/scenarios.json | 8 - test/levant-asdf/test.sh | 9 - test/lighthouse-cli/scenarios.json | 8 - test/lighthouse-cli/test.sh | 9 - test/linkerd2-cli-edge/scenarios.json | 8 - .../linkerd2-cli-edge/test_defaults_debian.sh | 9 - test/linkerd2-cli-stable/scenarios.json | 8 - .../test_defaults_debian.sh | 9 - test/linode-cli/scenarios.json | 8 - test/linode-cli/test.sh | 9 - test/lite-server/scenarios.json | 8 - test/lite-server/test.sh | 9 - test/live-server/scenarios.json | 8 - test/live-server/test.sh | 9 - test/localstack/scenarios.json | 15 -- test/localstack/test.sh | 9 - test/localstack/test_with_python_feature.sh | 9 - test/localtunnel-npm/scenarios.json | 8 - test/localtunnel-npm/test.sh | 9 - test/mackup/scenarios.json | 8 - test/mackup/test.sh | 9 - test/markdownlint-cli/scenarios.json | 8 - test/markdownlint-cli/test.sh | 9 - test/markdownlint-cli2/scenarios.json | 8 - test/markdownlint-cli2/test.sh | 9 - test/maven-sdkman/scenarios.json | 8 - test/maven-sdkman/test.sh | 13 -- test/meltano/scenarios.json | 8 - test/meltano/test.sh | 9 - test/memcached-exporter/scenarios.json | 8 - .../test_defaults_debian.sh | 9 - test/micro/scenarios.json | 8 - test/micro/test_defaults_debian.sh | 9 - test/micronaut-sdkman/scenarios.json | 8 - test/micronaut-sdkman/test.sh | 13 -- test/mise/scenarios.json | 16 -- test/mise/test.sh | 12 -- test/mise/ubuntu_with_version.sh | 12 -- test/mitmproxy/scenarios.json | 8 - test/mitmproxy/test.sh | 9 - test/mkcert/scenarios.json | 8 - test/mkcert/test_defaults_debian.sh | 9 - test/mkdocs/scenarios.json | 14 -- test/mkdocs/test.sh | 9 - test/mkdocs/test_ubuntu.sh | 9 - test/mlocate-apt-get/scenarios.json | 8 - test/mlocate-apt-get/test.sh | 9 - test/mocha/scenarios.json | 8 - test/mocha/test.sh | 9 - .../mongodb-atlas-cli-homebrew/scenarios.json | 8 - test/mongodb-atlas-cli-homebrew/test.sh | 9 - test/mongosh-homebrew/scenarios.json | 8 - test/mongosh-homebrew/test.sh | 9 - test/mosh-apt-get/scenarios.json | 8 - test/mosh-apt-get/test.sh | 9 - test/mosh-homebrew/scenarios.json | 8 - test/mosh-homebrew/test.sh | 9 - test/mulefd-sdkman/scenarios.json | 8 - test/mulefd-sdkman/test.sh | 13 -- test/mvnd-sdkman/scenarios.json | 8 - test/mvnd-sdkman/test.sh | 13 -- test/mybatis-sdkman/scenarios.json | 8 - test/mybatis-sdkman/test.sh | 13 -- test/mypy/scenarios.json | 8 - test/mypy/test.sh | 9 - test/mysql-homebrew/scenarios.json | 8 - test/mysql-homebrew/test.sh | 9 - test/mysqld-exporter/scenarios.json | 8 - test/mysqld-exporter/test_defaults_debian.sh | 9 - test/n8n/scenarios.json | 8 - test/n8n/test.sh | 9 - test/namespace-cli/scenarios.json | 16 -- test/namespace-cli/test.sh | 10 - test/namespace-cli/test_specific_version.sh | 11 -- test/nancy/scenarios.json | 8 - test/nancy/test_defaults_debian.sh | 9 - test/navi/scenarios.json | 8 - test/navi/test_defaults_debian.sh | 9 - test/ncdu/scenarios.json | 8 - test/ncdu/test_defaults_debian.sh | 9 - test/neko-asdf/scenarios.json | 8 - test/neko-asdf/test.sh | 9 - test/neo4jmigrations-sdkman/scenarios.json | 8 - test/neo4jmigrations-sdkman/test.sh | 13 -- test/neofetch/scenarios.json | 8 - test/neofetch/test_defaults_debian.sh | 9 - test/neovim-apt-get/scenarios.json | 14 -- test/neovim-apt-get/test_debian.sh | 9 - test/neovim-apt-get/test_ubuntu.sh | 9 - test/neovim-homebrew/scenarios.json | 8 - test/neovim-homebrew/test.sh | 9 - test/nestjs-cli/scenarios.json | 8 - test/nestjs-cli/test.sh | 9 - test/netdata/scenarios.json | 8 - test/netdata/test.sh | 9 - test/netlify-cli/scenarios.json | 8 - test/netlify-cli/test.sh | 9 - test/nim-asdf/scenarios.json | 8 - test/nim-asdf/test.sh | 9 - test/ninja-asdf/scenarios.json | 8 - test/ninja-asdf/test.sh | 9 - test/nmap-apt-get/scenarios.json | 8 - test/nmap-apt-get/test.sh | 9 - test/nmap-homebrew/scenarios.json | 8 - test/nmap-homebrew/test.sh | 9 - test/nnn-apt-get/scenarios.json | 8 - test/nnn-apt-get/test.sh | 9 - test/nnn-homebrew/scenarios.json | 8 - test/nnn-homebrew/test.sh | 9 - test/node-asdf/scenarios.json | 8 - test/node-asdf/test.sh | 9 - test/node-exporter/scenarios.json | 8 - test/node-exporter/test_defaults_debian.sh | 9 - test/nomad-asdf/scenarios.json | 8 - test/nomad-asdf/test.sh | 9 - test/nox/scenarios.json | 8 - test/nox/test.sh | 9 - test/npm-package/install_angular_cli.sh | 9 - test/npm-package/install_typescript.sh | 9 - test/npm-package/scenarios.json | 38 ---- .../npm-package/test_existing_installation.sh | 9 - ...existing_installation_different_version.sh | 9 - test/npm-packages/scenarios.json | 10 - test/npm-packages/test.sh | 7 - test/npm-packages/test_debian_versions.sh | 11 -- test/nx-npm/scenarios.json | 8 - test/nx-npm/test.sh | 9 - test/ocaml-asdf/scenarios.json | 8 - test/ocaml-asdf/test.sh | 9 - test/ocaml-opam/scenarios.json | 24 --- test/ocaml-opam/test_debian.sh | 13 -- test/ocaml-opam/test_no_platform_tools.sh | 9 - test/ocaml-opam/test_specific_version.sh | 9 - test/oclif/scenarios.json | 8 - test/oclif/test.sh | 9 - test/opa/scenarios.json | 8 - test/opa/test_defaults_debian.sh | 9 - test/opam-asdf/scenarios.json | 8 - test/opam-asdf/test.sh | 9 - test/ory-cli/scenarios.json | 8 - test/ory-cli/test_defaults_debian.sh | 9 - test/ory-hydra/scenarios.json | 8 - test/ory-hydra/test_defaults_debian.sh | 9 - test/ory-kratos/scenarios.json | 8 - test/ory-kratos/test_defaults_debian.sh | 9 - test/ory-oathkeeper/scenarios.json | 8 - test/ory-oathkeeper/test_defaults_debian.sh | 9 - test/packer-asdf/scenarios.json | 8 - test/packer-asdf/test.sh | 9 - test/pandoc/scenarios.json | 8 - test/pandoc/test_defaults_debian.sh | 9 - test/pass-apt-get/scenarios.json | 8 - test/pass-apt-get/test.sh | 9 - test/pdm/scenarios.json | 8 - test/pdm/test.sh | 9 - test/peco-asdf/scenarios.json | 8 - test/peco-asdf/test.sh | 9 - test/perl-asdf/scenarios.json | 8 - test/perl-asdf/test.sh | 9 - test/pierrot-sdkman/scenarios.json | 8 - test/pierrot-sdkman/test.sh | 13 -- test/pipenv/scenarios.json | 8 - test/pipenv/test.sh | 9 - .../install_ansible_specific_version.sh | 11 -- test/pipx-package/install_black.sh | 10 - .../install_black_custom_interpreter.sh | 10 - .../install_black_debian_bookworm.sh | 10 - test/pipx-package/install_precommit.sh | 11 -- test/pipx-package/scenarios.json | 55 ------ test/pnpm/scenarios.json | 16 -- test/pnpm/test.sh | 9 - .../test_existing_but_different_version.sh | 9 - test/podman-homebrew/scenarios.json | 8 - test/podman-homebrew/test.sh | 9 - test/poetry/scenarios.json | 8 - test/poetry/test.sh | 9 - test/pomchecker-sdkman/scenarios.json | 8 - test/pomchecker-sdkman/test.sh | 13 -- test/poppler-utils-apt-get/scenarios.json | 8 - test/poppler-utils-apt-get/test.sh | 31 --- test/powerbi-visuals-tools/scenarios.json | 8 - test/powerbi-visuals-tools/test.sh | 9 - test/powershell/scenarios.json | 8 - test/powershell/test_defaults_debian.sh | 9 - test/pre-commit/scenarios.json | 8 - test/pre-commit/test.sh | 9 - test/prettier/scenarios.json | 8 - test/prettier/test.sh | 9 - test/prisma/scenarios.json | 8 - test/prisma/test.sh | 9 - test/projen/scenarios.json | 8 - test/projen/test.sh | 9 - test/prometheus/scenarios.json | 8 - test/prometheus/test_defaults_debian.sh | 9 - test/promlens/scenarios.json | 8 - test/promlens/test_defaults_debian.sh | 9 - test/protoc-asdf/scenarios.json | 16 -- test/protoc-asdf/test_latest_version.sh | 9 - test/protoc-asdf/test_specified_version.sh | 9 - test/protoc/scenarios.json | 8 - test/protoc/test_defaults_debian.sh | 9 - test/pulumi/scenarios.json | 8 - test/pulumi/test.sh | 10 - test/pushgateway/scenarios.json | 8 - test/pushgateway/test_defaults_debian.sh | 9 - test/pyinfra/scenarios.json | 8 - test/pyinfra/test.sh | 9 - test/pylint/scenarios.json | 8 - test/pylint/test.sh | 9 - test/pyoxidizer/scenarios.json | 8 - test/pyoxidizer/test_defaults_debian.sh | 9 - test/pyscaffold/scenarios.json | 8 - test/pyscaffold/test.sh | 9 - test/qrcode/scenarios.json | 8 - test/qrcode/test.sh | 9 - test/quarkus-sdkman/scenarios.json | 8 - test/quarkus-sdkman/test.sh | 13 -- test/quasar-cli/scenarios.json | 8 - test/quasar-cli/test.sh | 9 - test/raku-asdf/scenarios.json | 8 - test/raku-asdf/test.sh | 9 - test/rclone/scenarios.json | 8 - test/rclone/test_defaults_debian.sh | 9 - test/redis-homebrew/scenarios.json | 8 - test/redis-homebrew/test.sh | 9 - test/rekor-cli/scenarios.json | 8 - test/rekor-cli/test_defaults_debian.sh | 9 - test/renovate-cli/scenarios.json | 8 - test/renovate-cli/test.sh | 9 - test/ripgrep/scenarios.json | 8 - test/ripgrep/test_defaults_debian.sh | 9 - test/rollup/scenarios.json | 8 - test/rollup/test.sh | 9 - test/ruby-asdf/scenarios.json | 8 - test/ruby-asdf/test.sh | 9 - test/ruff/scenarios.json | 8 - test/ruff/test.sh | 9 - test/salesforce-cli/scenarios.json | 8 - test/salesforce-cli/test.sh | 9 - test/salesforce-sfdx/scenarios.json | 8 - test/salesforce-sfdx/test.sh | 9 - test/sanity-cli/scenarios.json | 8 - test/sanity-cli/test.sh | 9 - test/sap-piper/scenarios.json | 8 - test/sap-piper/test_defaults_debian.sh | 9 - test/sbt-sdkman/scenarios.json | 8 - test/sbt-sdkman/test.sh | 13 -- test/scala-sdkman/scenarios.json | 8 - test/scala-sdkman/test.sh | 13 -- test/scalacli-sdkman/scenarios.json | 8 - test/scalacli-sdkman/test.sh | 13 -- test/scancode-toolkit/scenarios.json | 8 - test/scancode-toolkit/test_defaults.sh | 9 - test/schemacrawler-sdkman/scenarios.json | 8 - test/schemacrawler-sdkman/test.sh | 13 -- test/sentinel-asdf/scenarios.json | 8 - test/sentinel-asdf/test.sh | 9 - test/serf-asdf/scenarios.json | 8 - test/serf-asdf/test.sh | 9 - test/shfmt/scenarios.json | 8 - test/shfmt/test_defaults_debian.sh | 9 - test/shopify-cli/scenarios.json | 8 - test/shopify-cli/test.sh | 9 - test/sigstore-python/scenarios.json | 8 - test/sigstore-python/test_defaults.sh | 9 - test/snyk-cli/scenarios.json | 8 - test/snyk-cli/test.sh | 9 - test/sops/scenarios.json | 8 - test/sops/test_defaults_debian.sh | 9 - test/spacectl/scenarios.json | 8 - test/spacectl/test_defaults_debian.sh | 9 - test/spark-sdkman/scenarios.json | 8 - test/spark-sdkman/test.sh | 13 -- test/spicedb/scenarios.json | 8 - test/spicedb/test_defaults_debian.sh | 9 - test/springboot-sdkman/scenarios.json | 8 - test/springboot-sdkman/test.sh | 13 -- test/sqlfluff/scenarios.json | 8 - test/sqlfluff/test.sh | 9 - test/squarespace-server/scenarios.json | 8 - test/squarespace-server/test.sh | 9 - test/sshoogr-sdkman/scenarios.json | 8 - test/sshoogr-sdkman/test.sh | 13 -- test/starship-homebrew/scenarios.json | 8 - test/starship-homebrew/test.sh | 9 - test/starship/scenarios.json | 8 - test/starship/test_defaults_debian.sh | 9 - test/statsd-exporter/scenarios.json | 8 - test/statsd-exporter/test_defaults_debian.sh | 9 - test/stew/scenarios.json | 8 - test/stew/test_defaults_debian.sh | 9 - test/supabase-cli/scenarios.json | 8 - test/supabase-cli/test_defaults_debian.sh | 9 - test/surge-cli/scenarios.json | 8 - test/surge-cli/test.sh | 9 - test/sv2v/scenarios.json | 8 - test/sv2v/test_defaults_debian.sh | 9 - test/svu-asdf/scenarios.json | 8 - test/svu-asdf/test.sh | 9 - test/syft/scenarios.json | 8 - test/syft/test_defaults_debian.sh | 9 - test/syntaqx-serve/scenarios.json | 8 - test/syntaqx-serve/test_defaults_debian.sh | 9 - test/tailscale/scenarios.json | 8 - test/tailscale/test.sh | 9 - test/talosctl/scenarios.json | 16 -- test/talosctl/test.sh | 9 - test/talosctl/test_specific_version.sh | 9 - test/taxi-sdkman/scenarios.json | 8 - test/taxi-sdkman/test.sh | 13 -- test/tea/scenarios.json | 8 - test/tea/test_defaults_debian.sh | 9 - test/tekton-cli/scenarios.json | 8 - test/tekton-cli/test_defaults_debian.sh | 9 - test/tempo/scenarios.json | 8 - test/tempo/test_defaults_debian.sh | 9 - test/temporal-cli/scenarios.json | 8 - test/temporal-cli/test_defaults_debian.sh | 9 - test/terracognita/scenarios.json | 8 - test/terracognita/test_defaults_debian.sh | 9 - test/terraform-asdf/scenarios.json | 8 - test/terraform-asdf/test.sh | 9 - test/terraform-docs/scenarios.json | 8 - test/terraform-docs/test_defaults_debian.sh | 9 - test/terraform-ls-asdf/scenarios.json | 8 - test/terraform-ls-asdf/test.sh | 9 - test/terraformer/scenarios.json | 8 - test/terraformer/test_defaults_debian.sh | 9 - test/terragrunt/scenarios.json | 8 - test/terragrunt/test_defaults_debian.sh | 9 - test/terramate/scenarios.json | 8 - test/terramate/test_defaults_debian.sh | 9 - test/terrascan/scenarios.json | 8 - test/terrascan/test.sh | 10 - test/tfc-agent-asdf/scenarios.json | 8 - test/tfc-agent-asdf/test.sh | 9 - test/tfenv-homebrew/scenarios.json | 8 - test/tfenv-homebrew/test.sh | 9 - test/tfsec/scenarios.json | 8 - test/tfsec/test_defaults_debian.sh | 9 - test/tfswitch/scenarios.json | 8 - test/tfswitch/test.sh | 9 - test/tldr/scenarios.json | 8 - test/tldr/test.sh | 9 - test/tmate/scenarios.json | 8 - test/tmate/test_defaults_debian.sh | 9 - test/tmux-apt-get/scenarios.json | 8 - test/tmux-apt-get/test.sh | 9 - test/tmux-homebrew/scenarios.json | 8 - test/tmux-homebrew/test.sh | 9 - test/tomcat-sdkman/scenarios.json | 8 - test/tomcat-sdkman/test.sh | 13 -- test/tooljet-cli/scenarios.json | 8 - test/tooljet-cli/test.sh | 9 - test/toolkit-sdkman/scenarios.json | 8 - test/toolkit-sdkman/test.sh | 13 -- test/tox/scenarios.json | 8 - test/tox/test.sh | 9 - test/tridentctl-asdf/scenarios.json | 8 - test/tridentctl-asdf/test.sh | 9 - test/truffle/scenarios.json | 8 - test/truffle/test.sh | 9 - test/ts-node/scenarios.json | 8 - test/ts-node/test.sh | 9 - test/tsx/scenarios.json | 8 - test/tsx/test.sh | 9 - test/turborepo-npm/scenarios.json | 8 - test/turborepo-npm/test.sh | 9 - test/twine/scenarios.json | 8 - test/twine/test.sh | 9 - test/typescript/scenarios.json | 8 - test/typescript/test.sh | 9 - test/typst/scenarios.json | 8 - test/typst/test_defaults_debian.sh | 9 - test/ufmt/scenarios.json | 8 - test/ufmt/test.sh | 9 - test/upx/scenarios.json | 8 - test/upx/test_defaults_debian.sh | 9 - test/vault-asdf/scenarios.json | 8 - test/vault-asdf/test.sh | 9 - test/vercel-cli/scenarios.json | 8 - test/vercel-cli/test.sh | 9 - test/vercel-ncc/scenarios.json | 8 - test/vercel-ncc/test.sh | 9 - test/vercel-pkg/scenarios.json | 8 - test/vercel-pkg/test.sh | 9 - test/vercel-release/scenarios.json | 8 - test/vercel-release/test.sh | 9 - test/vercel-serve/scenarios.json | 8 - test/vercel-serve/test.sh | 9 - test/vscode-cli/scenarios.json | 8 - test/vscode-cli/test.sh | 9 - test/vscode-server/scenarios.json | 8 - test/vscode-server/test.sh | 9 - test/vtop/scenarios.json | 8 - test/vtop/test.sh | 9 - test/vue-cli/scenarios.json | 8 - test/vue-cli/test.sh | 9 - test/vulture/scenarios.json | 8 - test/vulture/test.sh | 9 - test/w3m-apt-get/scenarios.json | 8 - test/w3m-apt-get/test.sh | 9 - test/w3m-homebrew/scenarios.json | 8 - test/w3m-homebrew/test.sh | 9 - test/waypoint-asdf/scenarios.json | 8 - test/waypoint-asdf/test.sh | 9 - test/webi-packages/scenarios.json | 18 -- test/webi-packages/test.sh | 11 -- test/webi-packages/test_alpine.sh | 11 -- test/webtau-sdkman/scenarios.json | 8 - test/webtau-sdkman/test.sh | 13 -- test/wget-apt-get/scenarios.json | 8 - test/wget-apt-get/test.sh | 9 - test/wget-homebrew/scenarios.json | 8 - test/wget-homebrew/test.sh | 9 - test/wireguard-apt-get/scenarios.json | 8 - test/wireguard-apt-get/test.sh | 9 - test/xmrig/scenarios.json | 8 - test/xmrig/test_defaults_debian.sh | 9 - test/xonsh/scenarios.json | 8 - test/xonsh/test.sh | 9 - test/yamllint/scenarios.json | 8 - test/yamllint/test.sh | 9 - test/yapf/scenarios.json | 8 - test/yapf/test.sh | 9 - test/youtube-dl/scenarios.json | 8 - test/youtube-dl/test.sh | 9 - test/youtubeuploader/scenarios.json | 8 - test/youtubeuploader/test_defaults_debian.sh | 9 - test/yt-dlp/scenarios.json | 8 - test/yt-dlp/test.sh | 9 - test/zig/scenarios.json | 8 - test/zig/test.sh | 9 - test/zsh-plugins/install_plugins.sh | 15 -- .../install_plugins_on_plain_ubuntu.sh | 15 -- test/zsh-plugins/multiple-omz-plugins.sh | 12 -- test/zsh-plugins/scenarios.json | 30 --- 2609 files changed, 113435 deletions(-) delete mode 100644 src/act-asdf/README.md delete mode 100644 src/act-asdf/devcontainer-feature.json delete mode 100755 src/act-asdf/install.sh delete mode 100644 src/act-asdf/library_scripts.sh delete mode 100644 src/act/README.md delete mode 100644 src/act/devcontainer-feature.json delete mode 100755 src/act/install.sh delete mode 100644 src/act/library_scripts.sh delete mode 100644 src/actionlint/README.md delete mode 100644 src/actionlint/devcontainer-feature.json delete mode 100755 src/actionlint/install.sh delete mode 100644 src/actionlint/library_scripts.sh delete mode 100644 src/actions-runner/README.md delete mode 100644 src/actions-runner/devcontainer-feature.json delete mode 100755 src/actions-runner/install.sh delete mode 100644 src/actions-runner/library_scripts.sh delete mode 100644 src/activemq-sdkman/README.md delete mode 100644 src/activemq-sdkman/devcontainer-feature.json delete mode 100755 src/activemq-sdkman/install.sh delete mode 100644 src/activemq-sdkman/library_scripts.sh delete mode 100644 src/age/README.md delete mode 100644 src/age/devcontainer-feature.json delete mode 100755 src/age/install.sh delete mode 100644 src/age/library_scripts.sh delete mode 100644 src/akamai-cli/README.md delete mode 100644 src/akamai-cli/devcontainer-feature.json delete mode 100755 src/akamai-cli/install.sh delete mode 100644 src/akamai-cli/library_scripts.sh delete mode 100644 src/alertmanager/README.md delete mode 100644 src/alertmanager/devcontainer-feature.json delete mode 100755 src/alertmanager/install.sh delete mode 100644 src/alertmanager/library_scripts.sh delete mode 100644 src/alp-asdf/README.md delete mode 100644 src/alp-asdf/devcontainer-feature.json delete mode 100755 src/alp-asdf/install.sh delete mode 100644 src/alp-asdf/library_scripts.sh delete mode 100644 src/amplify-cli/README.md delete mode 100644 src/amplify-cli/devcontainer-feature.json delete mode 100755 src/amplify-cli/install.sh delete mode 100644 src/amplify-cli/library_scripts.sh delete mode 100644 src/angular-cli/README.md delete mode 100644 src/angular-cli/devcontainer-feature.json delete mode 100755 src/angular-cli/install.sh delete mode 100644 src/angular-cli/library_scripts.sh delete mode 100644 src/ansible/README.md delete mode 100644 src/ansible/devcontainer-feature.json delete mode 100755 src/ansible/install.sh delete mode 100644 src/ansible/library_scripts.sh delete mode 100644 src/ant-sdkman/README.md delete mode 100644 src/ant-sdkman/devcontainer-feature.json delete mode 100755 src/ant-sdkman/install.sh delete mode 100644 src/ant-sdkman/library_scripts.sh delete mode 100644 src/apko/README.md delete mode 100644 src/apko/devcontainer-feature.json delete mode 100755 src/apko/install.sh delete mode 100644 src/apko/library_scripts.sh delete mode 100644 src/apt-get-packages/README.md delete mode 100644 src/apt-get-packages/devcontainer-feature.json delete mode 100755 src/apt-get-packages/install.sh delete mode 100644 src/apt-get-packages/library_scripts.sh delete mode 100644 src/apt-packages/README.md delete mode 100644 src/apt-packages/devcontainer-feature.json delete mode 100755 src/apt-packages/install.sh delete mode 100644 src/apt-packages/library_scripts.sh delete mode 100644 src/argo-cd/README.md delete mode 100644 src/argo-cd/devcontainer-feature.json delete mode 100755 src/argo-cd/install.sh delete mode 100644 src/argo-workflows/README.md delete mode 100644 src/argo-workflows/devcontainer-feature.json delete mode 100755 src/argo-workflows/install.sh delete mode 100644 src/asciidoctorj-sdkman/README.md delete mode 100644 src/asciidoctorj-sdkman/devcontainer-feature.json delete mode 100755 src/asciidoctorj-sdkman/install.sh delete mode 100644 src/asciidoctorj-sdkman/library_scripts.sh delete mode 100644 src/asdf-package/README.md delete mode 100644 src/asdf-package/devcontainer-feature.json delete mode 100755 src/asdf-package/install.sh delete mode 100644 src/assemblyscript/README.md delete mode 100644 src/assemblyscript/devcontainer-feature.json delete mode 100755 src/assemblyscript/install.sh delete mode 100644 src/assemblyscript/library_scripts.sh delete mode 100644 src/atlantis/README.md delete mode 100644 src/atlantis/devcontainer-feature.json delete mode 100755 src/atlantis/install.sh delete mode 100644 src/atlantis/library_scripts.sh delete mode 100644 src/atmos/README.md delete mode 100644 src/atmos/devcontainer-feature.json delete mode 100755 src/atmos/install.sh delete mode 100644 src/atmos/library_scripts.sh delete mode 100644 src/auditjs/README.md delete mode 100644 src/auditjs/devcontainer-feature.json delete mode 100755 src/auditjs/install.sh delete mode 100644 src/auditjs/library_scripts.sh delete mode 100644 src/autoenv/README.md delete mode 100644 src/autoenv/devcontainer-feature.json delete mode 100755 src/autoenv/install.sh delete mode 100644 src/autoenv/library_scripts.sh delete mode 100644 src/aws-cdk/README.md delete mode 100644 src/aws-cdk/devcontainer-feature.json delete mode 100755 src/aws-cdk/install.sh delete mode 100644 src/aws-cdk/library_scripts.sh delete mode 100644 src/aws-eb-cli/README.md delete mode 100644 src/aws-eb-cli/devcontainer-feature.json delete mode 100755 src/aws-eb-cli/install.sh delete mode 100644 src/aws-eb-cli/library_scripts.sh delete mode 100644 src/aws-sso-cli/README.md delete mode 100644 src/aws-sso-cli/devcontainer-feature.json delete mode 100755 src/aws-sso-cli/install.sh delete mode 100644 src/aws-sso-cli/library_scripts.sh delete mode 100644 src/aztfexport/README.md delete mode 100644 src/aztfexport/devcontainer-feature.json delete mode 100755 src/aztfexport/install.sh delete mode 100644 src/aztfexport/library_scripts.sh delete mode 100644 src/azure-apiops/README.md delete mode 100644 src/azure-apiops/devcontainer-feature.json delete mode 100755 src/azure-apiops/install.sh delete mode 100644 src/azure-apiops/library_scripts.sh delete mode 100644 src/ballerina-sdkman/README.md delete mode 100644 src/ballerina-sdkman/devcontainer-feature.json delete mode 100755 src/ballerina-sdkman/install.sh delete mode 100644 src/ballerina-sdkman/library_scripts.sh delete mode 100644 src/bandit/README.md delete mode 100644 src/bandit/devcontainer-feature.json delete mode 100755 src/bandit/install.sh delete mode 100644 src/bandit/library_scripts.sh delete mode 100644 src/bartib/README.md delete mode 100644 src/bartib/devcontainer-feature.json delete mode 100755 src/bartib/install.sh delete mode 100644 src/bartib/library_scripts.sh delete mode 100644 src/bash-command/README.md delete mode 100644 src/bash-command/devcontainer-feature.json delete mode 100755 src/bash-command/install.sh delete mode 100644 src/beehive/README.md delete mode 100644 src/beehive/devcontainer-feature.json delete mode 100755 src/beehive/install.sh delete mode 100644 src/beehive/library_scripts.sh delete mode 100644 src/bikeshed/README.md delete mode 100644 src/bikeshed/devcontainer-feature.json delete mode 100755 src/bikeshed/install.sh delete mode 100644 src/bikeshed/library_scripts.sh delete mode 100644 src/bin/README.md delete mode 100644 src/bin/devcontainer-feature.json delete mode 100755 src/bin/install.sh delete mode 100644 src/bin/library_scripts.sh delete mode 100644 src/black/README.md delete mode 100644 src/black/devcontainer-feature.json delete mode 100755 src/black/install.sh delete mode 100644 src/black/library_scripts.sh delete mode 100644 src/blackbox-exporter/README.md delete mode 100644 src/blackbox-exporter/devcontainer-feature.json delete mode 100755 src/blackbox-exporter/install.sh delete mode 100644 src/blackbox-exporter/library_scripts.sh delete mode 100644 src/bomber/README.md delete mode 100644 src/bomber/devcontainer-feature.json delete mode 100755 src/bomber/install.sh delete mode 100644 src/bomber/library_scripts.sh delete mode 100644 src/bower/README.md delete mode 100644 src/bower/devcontainer-feature.json delete mode 100755 src/bower/install.sh delete mode 100644 src/bower/library_scripts.sh delete mode 100644 src/bpipe-sdkman/README.md delete mode 100644 src/bpipe-sdkman/devcontainer-feature.json delete mode 100755 src/bpipe-sdkman/install.sh delete mode 100644 src/bpipe-sdkman/library_scripts.sh delete mode 100644 src/brownie/README.md delete mode 100755 src/brownie/devcontainer-feature.json delete mode 100755 src/brownie/install.sh delete mode 100755 src/brownie/library_scripts.sh delete mode 100644 src/browserify/README.md delete mode 100644 src/browserify/devcontainer-feature.json delete mode 100755 src/browserify/install.sh delete mode 100644 src/browserify/library_scripts.sh delete mode 100644 src/btop-homebrew/README.md delete mode 100644 src/btop-homebrew/devcontainer-feature.json delete mode 100755 src/btop-homebrew/install.sh delete mode 100644 src/btop-homebrew/library_scripts.sh delete mode 100644 src/btrace-sdkman/README.md delete mode 100644 src/btrace-sdkman/devcontainer-feature.json delete mode 100755 src/btrace-sdkman/install.sh delete mode 100644 src/btrace-sdkman/library_scripts.sh delete mode 100644 src/budibase-cli/README.md delete mode 100644 src/budibase-cli/devcontainer-feature.json delete mode 100755 src/budibase-cli/install.sh delete mode 100644 src/budibase-cli/library_scripts.sh delete mode 100644 src/buku/README.md delete mode 100644 src/buku/devcontainer-feature.json delete mode 100755 src/buku/install.sh delete mode 100644 src/buku/library_scripts.sh delete mode 100644 src/caddy/README.md delete mode 100644 src/caddy/devcontainer-feature.json delete mode 100755 src/caddy/install.sh delete mode 100644 src/caddy/library_scripts.sh delete mode 100644 src/ccache-asdf/README.md delete mode 100644 src/ccache-asdf/devcontainer-feature.json delete mode 100755 src/ccache-asdf/install.sh delete mode 100644 src/ccache-asdf/library_scripts.sh delete mode 100644 src/checkov/README.md delete mode 100644 src/checkov/devcontainer-feature.json delete mode 100755 src/checkov/install.sh delete mode 100644 src/checkov/library_scripts.sh delete mode 100644 src/chezscheme-asdf/README.md delete mode 100644 src/chezscheme-asdf/devcontainer-feature.json delete mode 100755 src/chezscheme-asdf/install.sh delete mode 100644 src/chezscheme-asdf/library_scripts.sh delete mode 100644 src/chisel/README.md delete mode 100644 src/chisel/devcontainer-feature.json delete mode 100755 src/chisel/install.sh delete mode 100644 src/chisel/library_scripts.sh delete mode 100644 src/circleci-cli/README.md delete mode 100644 src/circleci-cli/devcontainer-feature.json delete mode 100755 src/circleci-cli/install.sh delete mode 100644 src/circleci-cli/library_scripts.sh delete mode 100644 src/clojure-asdf/README.md delete mode 100644 src/clojure-asdf/devcontainer-feature.json delete mode 100755 src/clojure-asdf/install.sh delete mode 100644 src/clojure-asdf/library_scripts.sh delete mode 100644 src/cloud-nuke/README.md delete mode 100644 src/cloud-nuke/devcontainer-feature.json delete mode 100755 src/cloud-nuke/install.sh delete mode 100644 src/cloud-nuke/library_scripts.sh delete mode 100644 src/cloudflare-wrangler/README.md delete mode 100644 src/cloudflare-wrangler/devcontainer-feature.json delete mode 100755 src/cloudflare-wrangler/install.sh delete mode 100644 src/cloudflare-wrangler/library_scripts.sh delete mode 100644 src/cloudflared-fips/README.md delete mode 100644 src/cloudflared-fips/devcontainer-feature.json delete mode 100755 src/cloudflared-fips/install.sh delete mode 100644 src/cloudflared-fips/library_scripts.sh delete mode 100644 src/cloudflared/README.md delete mode 100644 src/cloudflared/devcontainer-feature.json delete mode 100755 src/cloudflared/install.sh delete mode 100644 src/cloudflared/library_scripts.sh delete mode 100644 src/cloudinary-cli/README.md delete mode 100644 src/cloudinary-cli/devcontainer-feature.json delete mode 100755 src/cloudinary-cli/install.sh delete mode 100644 src/cloudinary-cli/library_scripts.sh delete mode 100644 src/cmake/README.md delete mode 100644 src/cmake/devcontainer-feature.json delete mode 100755 src/cmake/install.sh delete mode 100644 src/cmake/library_scripts.sh delete mode 100644 src/codefresh-cli/README.md delete mode 100644 src/codefresh-cli/devcontainer-feature.json delete mode 100755 src/codefresh-cli/install.sh delete mode 100644 src/codefresh-cli/library_scripts.sh delete mode 100644 src/composer/README.md delete mode 100644 src/composer/devcontainer-feature.json delete mode 100755 src/composer/install.sh delete mode 100644 src/composer/library_scripts.sh delete mode 100644 src/concurnas-sdkman/README.md delete mode 100644 src/concurnas-sdkman/devcontainer-feature.json delete mode 100755 src/concurnas-sdkman/install.sh delete mode 100644 src/concurnas-sdkman/library_scripts.sh delete mode 100644 src/connor-sdkman/README.md delete mode 100644 src/connor-sdkman/devcontainer-feature.json delete mode 100755 src/connor-sdkman/install.sh delete mode 100644 src/connor-sdkman/library_scripts.sh delete mode 100644 src/consul-asdf/README.md delete mode 100644 src/consul-asdf/devcontainer-feature.json delete mode 100755 src/consul-asdf/install.sh delete mode 100644 src/consul-asdf/library_scripts.sh delete mode 100644 src/consul-exporter/README.md delete mode 100644 src/consul-exporter/devcontainer-feature.json delete mode 100755 src/consul-exporter/install.sh delete mode 100644 src/consul-exporter/library_scripts.sh delete mode 100644 src/cookiecutter/README.md delete mode 100644 src/cookiecutter/devcontainer-feature.json delete mode 100755 src/cookiecutter/install.sh delete mode 100644 src/cookiecutter/library_scripts.sh delete mode 100644 src/copier/README.md delete mode 100644 src/copier/devcontainer-feature.json delete mode 100755 src/copier/install.sh delete mode 100644 src/copier/library_scripts.sh delete mode 100644 src/corepack/README.md delete mode 100644 src/corepack/devcontainer-feature.json delete mode 100755 src/corepack/install.sh delete mode 100644 src/corepack/library_scripts.sh delete mode 100644 src/cosign/README.md delete mode 100644 src/cosign/devcontainer-feature.json delete mode 100755 src/cosign/install.sh delete mode 100644 src/cosign/library_scripts.sh delete mode 100644 src/coverage-py/README.md delete mode 100644 src/coverage-py/devcontainer-feature.json delete mode 100755 src/coverage-py/install.sh delete mode 100644 src/coverage-py/library_scripts.sh delete mode 100644 src/crystal-asdf/README.md delete mode 100644 src/crystal-asdf/devcontainer-feature.json delete mode 100755 src/crystal-asdf/install.sh delete mode 100644 src/crystal-asdf/library_scripts.sh delete mode 100644 src/cuba-sdkman/README.md delete mode 100644 src/cuba-sdkman/devcontainer-feature.json delete mode 100755 src/cuba-sdkman/install.sh delete mode 100644 src/cuba-sdkman/library_scripts.sh delete mode 100644 src/curl-apt-get/README.md delete mode 100644 src/curl-apt-get/devcontainer-feature.json delete mode 100755 src/curl-apt-get/install.sh delete mode 100644 src/curl-apt-get/library_scripts.sh delete mode 100644 src/curl-homebrew/README.md delete mode 100644 src/curl-homebrew/devcontainer-feature.json delete mode 100755 src/curl-homebrew/install.sh delete mode 100644 src/curl-homebrew/library_scripts.sh delete mode 100644 src/cve-bin-tool/README.md delete mode 100644 src/cve-bin-tool/devcontainer-feature.json delete mode 100755 src/cve-bin-tool/install.sh delete mode 100644 src/cve-bin-tool/library_scripts.sh delete mode 100644 src/cxf-sdkman/README.md delete mode 100644 src/cxf-sdkman/devcontainer-feature.json delete mode 100755 src/cxf-sdkman/install.sh delete mode 100644 src/cxf-sdkman/library_scripts.sh delete mode 100644 src/cyclonedx-cli/README.md delete mode 100644 src/cyclonedx-cli/devcontainer-feature.json delete mode 100755 src/cyclonedx-cli/install.sh delete mode 100644 src/cyclonedx-cli/library_scripts.sh delete mode 100644 src/cyclonedx-python/README.md delete mode 100644 src/cyclonedx-python/devcontainer-feature.json delete mode 100755 src/cyclonedx-python/install.sh delete mode 100644 src/cyclonedx-python/library_scripts.sh delete mode 100644 src/cz-cli/README.md delete mode 100644 src/cz-cli/devcontainer-feature.json delete mode 100755 src/cz-cli/install.sh delete mode 100644 src/cz-cli/library_scripts.sh delete mode 100644 src/d/README.md delete mode 100644 src/d/devcontainer-feature.json delete mode 100755 src/d/install.sh delete mode 100644 src/dasel-asdf/README.md delete mode 100644 src/dasel-asdf/devcontainer-feature.json delete mode 100755 src/dasel-asdf/install.sh delete mode 100644 src/dasel-asdf/library_scripts.sh delete mode 100644 src/dashlane-cli/README.md delete mode 100644 src/dashlane-cli/devcontainer-feature.json delete mode 100755 src/dashlane-cli/install.sh delete mode 100644 src/dashlane-cli/library_scripts.sh delete mode 100644 src/datadog-ci-cli/README.md delete mode 100644 src/datadog-ci-cli/devcontainer-feature.json delete mode 100755 src/datadog-ci-cli/install.sh delete mode 100644 src/datadog-ci-cli/library_scripts.sh delete mode 100644 src/datasette/README.md delete mode 100644 src/datasette/devcontainer-feature.json delete mode 100755 src/datasette/install.sh delete mode 100644 src/datasette/library_scripts.sh delete mode 100644 src/dbt-coverage/README.md delete mode 100644 src/dbt-coverage/devcontainer-feature.json delete mode 100755 src/dbt-coverage/install.sh delete mode 100644 src/dbt-coverage/library_scripts.sh delete mode 100644 src/ddgr-apt-get/README.md delete mode 100644 src/ddgr-apt-get/devcontainer-feature.json delete mode 100755 src/ddgr-apt-get/install.sh delete mode 100644 src/ddgr-apt-get/library_scripts.sh delete mode 100644 src/ddgr-homebrew/README.md delete mode 100644 src/ddgr-homebrew/devcontainer-feature.json delete mode 100755 src/ddgr-homebrew/install.sh delete mode 100644 src/ddgr-homebrew/library_scripts.sh delete mode 100644 src/deno-asdf/README.md delete mode 100644 src/deno-asdf/devcontainer-feature.json delete mode 100755 src/deno-asdf/install.sh delete mode 100644 src/deno-asdf/library_scripts.sh delete mode 100644 src/deno/README.md delete mode 100644 src/deno/devcontainer-feature.json delete mode 100755 src/deno/install.sh delete mode 100644 src/devcontainers-cli/README.md delete mode 100644 src/devcontainers-cli/devcontainer-feature.json delete mode 100755 src/devcontainers-cli/install.sh delete mode 100644 src/devcontainers-cli/library_scripts.sh delete mode 100644 src/digitalocean-cli/README.md delete mode 100644 src/digitalocean-cli/devcontainer-feature.json delete mode 100755 src/digitalocean-cli/install.sh delete mode 100644 src/direnv-asdf/README.md delete mode 100644 src/direnv-asdf/devcontainer-feature.json delete mode 100755 src/direnv-asdf/install.sh delete mode 100644 src/direnv-asdf/library_scripts.sh delete mode 100644 src/direnv/README.md delete mode 100644 src/direnv/devcontainer-feature.json delete mode 100755 src/direnv/install.sh delete mode 100644 src/direnv/library_scripts.sh delete mode 100644 src/dive/README.md delete mode 100644 src/dive/devcontainer-feature.json delete mode 100755 src/dive/install.sh delete mode 100644 src/dive/library_scripts.sh delete mode 100644 src/dnote/README.md delete mode 100644 src/dnote/devcontainer-feature.json delete mode 100755 src/dnote/install.sh delete mode 100644 src/dnote/library_scripts.sh delete mode 100644 src/doctoolchain-sdkman/README.md delete mode 100644 src/doctoolchain-sdkman/devcontainer-feature.json delete mode 100755 src/doctoolchain-sdkman/install.sh delete mode 100644 src/doctoolchain-sdkman/library_scripts.sh delete mode 100644 src/dprint-asdf/README.md delete mode 100644 src/dprint-asdf/devcontainer-feature.json delete mode 100755 src/dprint-asdf/install.sh delete mode 100644 src/dprint-asdf/library_scripts.sh delete mode 100644 src/driftctl/README.md delete mode 100644 src/driftctl/devcontainer-feature.json delete mode 100755 src/driftctl/install.sh delete mode 100644 src/driftctl/library_scripts.sh delete mode 100644 src/drone-cli/README.md delete mode 100644 src/drone-cli/devcontainer-feature.json delete mode 100755 src/drone-cli/install.sh delete mode 100644 src/drone-cli/library_scripts.sh delete mode 100644 src/dua/README.md delete mode 100644 src/dua/devcontainer-feature.json delete mode 100755 src/dua/install.sh delete mode 100644 src/dua/library_scripts.sh delete mode 100644 src/duf/README.md delete mode 100644 src/duf/devcontainer-feature.json delete mode 100755 src/duf/install.sh delete mode 100644 src/duf/library_scripts.sh delete mode 100644 src/dufs/README.md delete mode 100644 src/dufs/devcontainer-feature.json delete mode 100755 src/dufs/install.sh delete mode 100644 src/dufs/library_scripts.sh delete mode 100644 src/eas-cli/README.md delete mode 100644 src/eas-cli/devcontainer-feature.json delete mode 100755 src/eas-cli/install.sh delete mode 100644 src/eas-cli/library_scripts.sh delete mode 100644 src/eget/README.md delete mode 100644 src/eget/devcontainer-feature.json delete mode 100755 src/eget/install.sh delete mode 100644 src/eget/library_scripts.sh delete mode 100644 src/elasticsearch-asdf/README.md delete mode 100644 src/elasticsearch-asdf/devcontainer-feature.json delete mode 100755 src/elasticsearch-asdf/install.sh delete mode 100644 src/elasticsearch-asdf/library_scripts.sh delete mode 100644 src/elm-asdf/README.md delete mode 100644 src/elm-asdf/devcontainer-feature.json delete mode 100755 src/elm-asdf/install.sh delete mode 100644 src/elm-asdf/library_scripts.sh delete mode 100644 src/ember-cli/README.md delete mode 100644 src/ember-cli/devcontainer-feature.json delete mode 100755 src/ember-cli/install.sh delete mode 100644 src/ember-cli/library_scripts.sh delete mode 100644 src/envoy/README.md delete mode 100644 src/envoy/devcontainer-feature.json delete mode 100755 src/envoy/install.sh delete mode 100644 src/envoy/library_scripts.sh delete mode 100644 src/epinio/README.md delete mode 100644 src/epinio/devcontainer-feature.json delete mode 100755 src/epinio/install.sh delete mode 100644 src/epinio/library_scripts.sh delete mode 100644 src/etcd/README.md delete mode 100644 src/etcd/devcontainer-feature.json delete mode 100755 src/etcd/install.sh delete mode 100644 src/etcd/library_scripts.sh delete mode 100644 src/exa/README.md delete mode 100644 src/exa/devcontainer-feature.json delete mode 100755 src/exa/install.sh delete mode 100644 src/exa/library_scripts.sh delete mode 100644 src/exercism-cli/README.md delete mode 100644 src/exercism-cli/devcontainer-feature.json delete mode 100755 src/exercism-cli/install.sh delete mode 100644 src/exercism-cli/library_scripts.sh delete mode 100644 src/expo-cli/README.md delete mode 100644 src/expo-cli/devcontainer-feature.json delete mode 100755 src/expo-cli/install.sh delete mode 100644 src/expo-cli/library_scripts.sh delete mode 100644 src/express-generator/README.md delete mode 100644 src/express-generator/devcontainer-feature.json delete mode 100755 src/express-generator/install.sh delete mode 100644 src/express-generator/library_scripts.sh delete mode 100644 src/fd/README.md delete mode 100644 src/fd/devcontainer-feature.json delete mode 100755 src/fd/install.sh delete mode 100644 src/fd/library_scripts.sh delete mode 100644 src/ffmpeg-apt-get/README.md delete mode 100644 src/ffmpeg-apt-get/devcontainer-feature.json delete mode 100755 src/ffmpeg-apt-get/install.sh delete mode 100644 src/ffmpeg-apt-get/library_scripts.sh delete mode 100644 src/firebase-cli/README.md delete mode 100644 src/firebase-cli/devcontainer-feature.json delete mode 100755 src/firebase-cli/install.sh delete mode 100644 src/firebase-cli/library_scripts.sh delete mode 100644 src/fish-apt-get/README.md delete mode 100644 src/fish-apt-get/devcontainer-feature.json delete mode 100755 src/fish-apt-get/install.sh delete mode 100644 src/fish-apt-get/library_scripts.sh delete mode 100644 src/fkill/README.md delete mode 100644 src/fkill/devcontainer-feature.json delete mode 100755 src/fkill/install.sh delete mode 100644 src/fkill/library_scripts.sh delete mode 100644 src/flake8/README.md delete mode 100644 src/flake8/devcontainer-feature.json delete mode 100755 src/flake8/install.sh delete mode 100644 src/flake8/library_scripts.sh delete mode 100644 src/flink-sdkman/README.md delete mode 100644 src/flink-sdkman/devcontainer-feature.json delete mode 100755 src/flink-sdkman/install.sh delete mode 100644 src/flink-sdkman/library_scripts.sh delete mode 100644 src/flit/README.md delete mode 100644 src/flit/devcontainer-feature.json delete mode 100755 src/flit/install.sh delete mode 100644 src/flit/library_scripts.sh delete mode 100644 src/former2-cli/README.md delete mode 100644 src/former2-cli/devcontainer-feature.json delete mode 100755 src/former2-cli/install.sh delete mode 100644 src/former2-cli/library_scripts.sh delete mode 100644 src/fossil-apt-get/README.md delete mode 100644 src/fossil-apt-get/devcontainer-feature.json delete mode 100755 src/fossil-apt-get/install.sh delete mode 100644 src/fossil-apt-get/library_scripts.sh delete mode 100644 src/fossil-homebrew/README.md delete mode 100644 src/fossil-homebrew/devcontainer-feature.json delete mode 100755 src/fossil-homebrew/install.sh delete mode 100644 src/fossil-homebrew/library_scripts.sh delete mode 100644 src/fulcio/README.md delete mode 100644 src/fulcio/devcontainer-feature.json delete mode 100755 src/fulcio/install.sh delete mode 100644 src/fulcio/library_scripts.sh delete mode 100644 src/fzf/README.md delete mode 100644 src/fzf/devcontainer-feature.json delete mode 100755 src/fzf/install.sh delete mode 100644 src/fzf/library_scripts.sh delete mode 100644 src/gaiden-sdkman/README.md delete mode 100644 src/gaiden-sdkman/devcontainer-feature.json delete mode 100755 src/gaiden-sdkman/install.sh delete mode 100644 src/gaiden-sdkman/library_scripts.sh delete mode 100644 src/ganache/README.md delete mode 100644 src/ganache/devcontainer-feature.json delete mode 100755 src/ganache/install.sh delete mode 100644 src/ganache/library_scripts.sh delete mode 100644 src/gcovr/README.md delete mode 100644 src/gcovr/devcontainer-feature.json delete mode 100755 src/gcovr/install.sh delete mode 100644 src/gcovr/library_scripts.sh delete mode 100644 src/gdbgui/README.md delete mode 100644 src/gdbgui/devcontainer-feature.json delete mode 100755 src/gdbgui/install.sh delete mode 100644 src/gdbgui/library_scripts.sh delete mode 100644 src/gh-cli/README.md delete mode 100644 src/gh-cli/devcontainer-feature.json delete mode 100755 src/gh-cli/install.sh delete mode 100644 src/gh-cli/library_scripts.sh delete mode 100644 src/gh-release/README.md delete mode 100644 src/gh-release/devcontainer-feature.json delete mode 100755 src/gh-release/install.sh delete mode 100644 src/gh-release/library_scripts.sh delete mode 100644 src/git-lfs/README.md delete mode 100644 src/git-lfs/devcontainer-feature.json delete mode 100755 src/git-lfs/install.sh delete mode 100644 src/git-lfs/library_scripts.sh delete mode 100644 src/gitmux/README.md delete mode 100644 src/gitmux/devcontainer-feature.json delete mode 100755 src/gitmux/install.sh delete mode 100644 src/gitmux/library_scripts.sh delete mode 100644 src/gitomatic/README.md delete mode 100644 src/gitomatic/devcontainer-feature.json delete mode 100755 src/gitomatic/install.sh delete mode 100644 src/gitomatic/library_scripts.sh delete mode 100644 src/gitsign-credential-cache/README.md delete mode 100644 src/gitsign-credential-cache/devcontainer-feature.json delete mode 100755 src/gitsign-credential-cache/install.sh delete mode 100644 src/gitsign-credential-cache/library_scripts.sh delete mode 100644 src/gitsign/README.md delete mode 100644 src/gitsign/devcontainer-feature.json delete mode 100755 src/gitsign/install.sh delete mode 100644 src/gitsign/library_scripts.sh delete mode 100644 src/gitty/README.md delete mode 100644 src/gitty/devcontainer-feature.json delete mode 100755 src/gitty/install.sh delete mode 100644 src/gitty/library_scripts.sh delete mode 100644 src/glances/README.md delete mode 100644 src/glances/devcontainer-feature.json delete mode 100755 src/glances/install.sh delete mode 100644 src/glances/library_scripts.sh delete mode 100644 src/gleam/README.md delete mode 100644 src/gleam/devcontainer-feature.json delete mode 100755 src/gleam/install.sh delete mode 100644 src/gleam/library_scripts.sh delete mode 100644 src/go-task/README.md delete mode 100644 src/go-task/devcontainer-feature.json delete mode 100755 src/go-task/install.sh delete mode 100644 src/go-task/library_scripts.sh delete mode 100644 src/graalvm-asdf/README.md delete mode 100644 src/graalvm-asdf/devcontainer-feature.json delete mode 100755 src/graalvm-asdf/install.sh delete mode 100644 src/graalvm-asdf/library_scripts.sh delete mode 100644 src/gradle-sdkman/README.md delete mode 100644 src/gradle-sdkman/devcontainer-feature.json delete mode 100755 src/gradle-sdkman/install.sh delete mode 100644 src/gradle-sdkman/library_scripts.sh delete mode 100644 src/gradleprofiler-sdkman/README.md delete mode 100644 src/gradleprofiler-sdkman/devcontainer-feature.json delete mode 100755 src/gradleprofiler-sdkman/install.sh delete mode 100644 src/gradleprofiler-sdkman/library_scripts.sh delete mode 100644 src/grails-sdkman/README.md delete mode 100644 src/grails-sdkman/devcontainer-feature.json delete mode 100755 src/grails-sdkman/install.sh delete mode 100644 src/grails-sdkman/library_scripts.sh delete mode 100644 src/graphite-exporter/README.md delete mode 100644 src/graphite-exporter/devcontainer-feature.json delete mode 100755 src/graphite-exporter/install.sh delete mode 100644 src/graphite-exporter/library_scripts.sh delete mode 100644 src/groovy-sdkman/README.md delete mode 100644 src/groovy-sdkman/devcontainer-feature.json delete mode 100755 src/groovy-sdkman/install.sh delete mode 100644 src/groovy-sdkman/library_scripts.sh delete mode 100644 src/groovyserv-sdkman/README.md delete mode 100644 src/groovyserv-sdkman/devcontainer-feature.json delete mode 100755 src/groovyserv-sdkman/install.sh delete mode 100644 src/groovyserv-sdkman/library_scripts.sh delete mode 100644 src/grpcurl-asdf/README.md delete mode 100644 src/grpcurl-asdf/devcontainer-feature.json delete mode 100755 src/grpcurl-asdf/install.sh delete mode 100644 src/grpcurl-asdf/library_scripts.sh delete mode 100644 src/grype/README.md delete mode 100644 src/grype/devcontainer-feature.json delete mode 100755 src/grype/install.sh delete mode 100644 src/grype/library_scripts.sh delete mode 100644 src/gulp-cli/README.md delete mode 100644 src/gulp-cli/devcontainer-feature.json delete mode 100755 src/gulp-cli/install.sh delete mode 100644 src/gulp-cli/library_scripts.sh delete mode 100644 src/hadoop-sdkman/README.md delete mode 100644 src/hadoop-sdkman/devcontainer-feature.json delete mode 100755 src/hadoop-sdkman/install.sh delete mode 100644 src/hadoop-sdkman/library_scripts.sh delete mode 100644 src/haskell/README.md delete mode 100644 src/haskell/devcontainer-feature.json delete mode 100755 src/haskell/install.sh delete mode 100644 src/hatch/README.md delete mode 100644 src/hatch/devcontainer-feature.json delete mode 100755 src/hatch/install.sh delete mode 100644 src/hatch/library_scripts.sh delete mode 100644 src/haxe-asdf/README.md delete mode 100644 src/haxe-asdf/devcontainer-feature.json delete mode 100755 src/haxe-asdf/install.sh delete mode 100644 src/haxe-asdf/library_scripts.sh delete mode 100644 src/helmfile/devcontainer-feature.json delete mode 100755 src/helmfile/install.sh delete mode 100644 src/helmfile/library_scripts.sh delete mode 100644 src/heroku-cli/README.md delete mode 100644 src/heroku-cli/devcontainer-feature.json delete mode 100755 src/heroku-cli/install.sh delete mode 100644 src/homebrew-package/README.md delete mode 100644 src/homebrew-package/devcontainer-feature.json delete mode 100755 src/homebrew-package/install.sh delete mode 100644 src/homebrew-package/library_scripts.sh delete mode 100644 src/hotel/README.md delete mode 100644 src/hotel/devcontainer-feature.json delete mode 100755 src/hotel/install.sh delete mode 100644 src/hotel/library_scripts.sh delete mode 100644 src/how2/README.md delete mode 100644 src/how2/devcontainer-feature.json delete mode 100755 src/how2/install.sh delete mode 100644 src/how2/library_scripts.sh delete mode 100644 src/http-server/README.md delete mode 100644 src/http-server/devcontainer-feature.json delete mode 100755 src/http-server/install.sh delete mode 100644 src/http-server/library_scripts.sh delete mode 100644 src/http4k-sdkman/README.md delete mode 100644 src/http4k-sdkman/devcontainer-feature.json delete mode 100755 src/http4k-sdkman/install.sh delete mode 100644 src/http4k-sdkman/library_scripts.sh delete mode 100644 src/hyperfine/README.md delete mode 100644 src/hyperfine/devcontainer-feature.json delete mode 100755 src/hyperfine/install.sh delete mode 100644 src/hyperfine/library_scripts.sh delete mode 100644 src/immuadmin-fips/README.md delete mode 100644 src/immuadmin-fips/devcontainer-feature.json delete mode 100755 src/immuadmin-fips/install.sh delete mode 100644 src/immuadmin-fips/library_scripts.sh delete mode 100644 src/immuadmin/README.md delete mode 100644 src/immuadmin/devcontainer-feature.json delete mode 100755 src/immuadmin/install.sh delete mode 100644 src/immuadmin/library_scripts.sh delete mode 100644 src/immuclient-fips/README.md delete mode 100644 src/immuclient-fips/devcontainer-feature.json delete mode 100755 src/immuclient-fips/install.sh delete mode 100644 src/immuclient-fips/library_scripts.sh delete mode 100644 src/immuclient/README.md delete mode 100644 src/immuclient/devcontainer-feature.json delete mode 100755 src/immuclient/install.sh delete mode 100644 src/immuclient/library_scripts.sh delete mode 100644 src/immudb-fips/README.md delete mode 100644 src/immudb-fips/devcontainer-feature.json delete mode 100755 src/immudb-fips/install.sh delete mode 100644 src/immudb-fips/library_scripts.sh delete mode 100644 src/immudb/README.md delete mode 100644 src/immudb/devcontainer-feature.json delete mode 100755 src/immudb/install.sh delete mode 100644 src/immudb/library_scripts.sh delete mode 100644 src/infracost/README.md delete mode 100644 src/infracost/devcontainer-feature.json delete mode 100755 src/infracost/install.sh delete mode 100644 src/infracost/library_scripts.sh delete mode 100644 src/infrastructor-sdkman/README.md delete mode 100644 src/infrastructor-sdkman/devcontainer-feature.json delete mode 100755 src/infrastructor-sdkman/install.sh delete mode 100644 src/infrastructor-sdkman/library_scripts.sh delete mode 100644 src/invoke/README.md delete mode 100644 src/invoke/devcontainer-feature.json delete mode 100755 src/invoke/install.sh delete mode 100644 src/invoke/library_scripts.sh delete mode 100644 src/ionic-cli/README.md delete mode 100644 src/ionic-cli/devcontainer-feature.json delete mode 100755 src/ionic-cli/install.sh delete mode 100644 src/ionic-cli/library_scripts.sh delete mode 100644 src/isort/README.md delete mode 100644 src/isort/devcontainer-feature.json delete mode 100755 src/isort/install.sh delete mode 100644 src/isort/library_scripts.sh delete mode 100644 src/istioctl/README.md delete mode 100644 src/istioctl/devcontainer-feature.json delete mode 100755 src/istioctl/install.sh delete mode 100644 src/istioctl/library_scripts.sh delete mode 100644 src/jake/README.md delete mode 100644 src/jake/devcontainer-feature.json delete mode 100755 src/jake/install.sh delete mode 100644 src/jake/library_scripts.sh delete mode 100644 src/jbake-sdkman/README.md delete mode 100644 src/jbake-sdkman/devcontainer-feature.json delete mode 100755 src/jbake-sdkman/install.sh delete mode 100644 src/jbake-sdkman/library_scripts.sh delete mode 100644 src/jbang-sdkman/README.md delete mode 100644 src/jbang-sdkman/devcontainer-feature.json delete mode 100755 src/jbang-sdkman/install.sh delete mode 100644 src/jbang-sdkman/library_scripts.sh delete mode 100644 src/jenkinsx-cli/README.md delete mode 100644 src/jenkinsx-cli/devcontainer-feature.json delete mode 100755 src/jenkinsx-cli/install.sh delete mode 100644 src/jenkinsx-cli/library_scripts.sh delete mode 100644 src/jest/README.md delete mode 100644 src/jest/devcontainer-feature.json delete mode 100755 src/jest/install.sh delete mode 100644 src/jest/library_scripts.sh delete mode 100644 src/jfrog-cli-homebrew/README.md delete mode 100644 src/jfrog-cli-homebrew/devcontainer-feature.json delete mode 100755 src/jfrog-cli-homebrew/install.sh delete mode 100644 src/jfrog-cli-homebrew/library_scripts.sh delete mode 100644 src/jfrog-cli-npm/README.md delete mode 100644 src/jfrog-cli-npm/devcontainer-feature.json delete mode 100755 src/jfrog-cli-npm/install.sh delete mode 100644 src/jfrog-cli-npm/library_scripts.sh delete mode 100644 src/jfrog-cli/README.md delete mode 100644 src/jfrog-cli/devcontainer-feature.json delete mode 100755 src/jfrog-cli/install.sh delete mode 100644 src/jfrog-cli/library_scripts.sh delete mode 100644 src/jira-cli/README.md delete mode 100644 src/jira-cli/devcontainer-feature.json delete mode 100755 src/jira-cli/install.sh delete mode 100644 src/jira-cli/library_scripts.sh delete mode 100644 src/jmc-sdkman/README.md delete mode 100644 src/jmc-sdkman/devcontainer-feature.json delete mode 100755 src/jmc-sdkman/install.sh delete mode 100644 src/jmc-sdkman/library_scripts.sh delete mode 100644 src/jmeter-sdkman/README.md delete mode 100644 src/jmeter-sdkman/devcontainer-feature.json delete mode 100755 src/jmeter-sdkman/install.sh delete mode 100644 src/jmeter-sdkman/library_scripts.sh delete mode 100644 src/joern-sdkman/README.md delete mode 100644 src/joern-sdkman/devcontainer-feature.json delete mode 100755 src/joern-sdkman/install.sh delete mode 100644 src/joern-sdkman/library_scripts.sh delete mode 100644 src/jreleaser-sdkman/README.md delete mode 100644 src/jreleaser-sdkman/devcontainer-feature.json delete mode 100755 src/jreleaser-sdkman/install.sh delete mode 100644 src/jreleaser-sdkman/library_scripts.sh delete mode 100644 src/jrnl/README.md delete mode 100644 src/jrnl/devcontainer-feature.json delete mode 100755 src/jrnl/install.sh delete mode 100644 src/jrnl/library_scripts.sh delete mode 100644 src/jshint/README.md delete mode 100644 src/jshint/devcontainer-feature.json delete mode 100755 src/jshint/install.sh delete mode 100644 src/jshint/library_scripts.sh delete mode 100644 src/jsii-diff/README.md delete mode 100644 src/jsii-diff/devcontainer-feature.json delete mode 100755 src/jsii-diff/install.sh delete mode 100644 src/jsii-diff/library_scripts.sh delete mode 100644 src/jsii-pacmak/README.md delete mode 100644 src/jsii-pacmak/devcontainer-feature.json delete mode 100755 src/jsii-pacmak/install.sh delete mode 100644 src/jsii-pacmak/library_scripts.sh delete mode 100644 src/jsii-rosetta/README.md delete mode 100644 src/jsii-rosetta/devcontainer-feature.json delete mode 100755 src/jsii-rosetta/install.sh delete mode 100644 src/jsii-rosetta/library_scripts.sh delete mode 100644 src/jsii/README.md delete mode 100644 src/jsii/devcontainer-feature.json delete mode 100755 src/jsii/install.sh delete mode 100644 src/jsii/library_scripts.sh delete mode 100644 src/json-server/README.md delete mode 100644 src/json-server/devcontainer-feature.json delete mode 100755 src/json-server/install.sh delete mode 100644 src/json-server/library_scripts.sh delete mode 100644 src/k2tf/README.md delete mode 100644 src/k2tf/devcontainer-feature.json delete mode 100755 src/k2tf/install.sh delete mode 100644 src/k2tf/library_scripts.sh delete mode 100644 src/k6/README.md delete mode 100644 src/k6/devcontainer-feature.json delete mode 100755 src/k6/install.sh delete mode 100644 src/k6/library_scripts.sh delete mode 100644 src/karaf-sdkman/README.md delete mode 100644 src/karaf-sdkman/devcontainer-feature.json delete mode 100755 src/karaf-sdkman/install.sh delete mode 100644 src/karaf-sdkman/library_scripts.sh delete mode 100644 src/keepercommander/README.md delete mode 100644 src/keepercommander/devcontainer-feature.json delete mode 100755 src/keepercommander/install.sh delete mode 100644 src/keepercommander/library_scripts.sh delete mode 100644 src/ki-sdkman/README.md delete mode 100644 src/ki-sdkman/devcontainer-feature.json delete mode 100755 src/ki-sdkman/install.sh delete mode 100644 src/ki-sdkman/library_scripts.sh delete mode 100644 src/kind/README.md delete mode 100644 src/kind/devcontainer-feature.json delete mode 100755 src/kind/install.sh delete mode 100644 src/kind/library_scripts.sh delete mode 100644 src/kobweb-sdkman/README.md delete mode 100644 src/kobweb-sdkman/devcontainer-feature.json delete mode 100755 src/kobweb-sdkman/install.sh delete mode 100644 src/kobweb-sdkman/library_scripts.sh delete mode 100644 src/kops/README.md delete mode 100644 src/kops/devcontainer-feature.json delete mode 100755 src/kops/install.sh delete mode 100644 src/kops/library_scripts.sh delete mode 100644 src/kotlin-sdkman/README.md delete mode 100644 src/kotlin-sdkman/devcontainer-feature.json delete mode 100755 src/kotlin-sdkman/install.sh delete mode 100644 src/kotlin-sdkman/library_scripts.sh delete mode 100644 src/kscript-sdkman/README.md delete mode 100644 src/kscript-sdkman/devcontainer-feature.json delete mode 100755 src/kscript-sdkman/install.sh delete mode 100644 src/kscript-sdkman/library_scripts.sh delete mode 100644 src/kubeclarity-cli/README.md delete mode 100644 src/kubeclarity-cli/devcontainer-feature.json delete mode 100755 src/kubeclarity-cli/install.sh delete mode 100644 src/kubeclarity-cli/library_scripts.sh delete mode 100644 src/kubectl-asdf/README.md delete mode 100644 src/kubectl-asdf/devcontainer-feature.json delete mode 100755 src/kubectl-asdf/install.sh delete mode 100644 src/kubectl-asdf/library_scripts.sh delete mode 100644 src/kubectx-kubens/README.md delete mode 100644 src/kubectx-kubens/devcontainer-feature.json delete mode 100755 src/kubectx-kubens/install.sh delete mode 100644 src/kubectx-kubens/library_scripts.sh delete mode 100644 src/kubie/README.md delete mode 100644 src/kubie/devcontainer-feature.json delete mode 100755 src/kubie/install.sh delete mode 100644 src/kyverno-cli/README.md delete mode 100644 src/kyverno-cli/devcontainer-feature.json delete mode 100755 src/kyverno-cli/install.sh delete mode 100644 src/kyverno-cli/library_scripts.sh delete mode 100644 src/lastpass-cli-homebrew/README.md delete mode 100644 src/lastpass-cli-homebrew/devcontainer-feature.json delete mode 100755 src/lastpass-cli-homebrew/install.sh delete mode 100644 src/lastpass-cli-homebrew/library_scripts.sh delete mode 100644 src/layrry-sdkman/README.md delete mode 100644 src/layrry-sdkman/devcontainer-feature.json delete mode 100755 src/layrry-sdkman/install.sh delete mode 100644 src/layrry-sdkman/library_scripts.sh delete mode 100644 src/lean-asdf/README.md delete mode 100644 src/lean-asdf/devcontainer-feature.json delete mode 100755 src/lean-asdf/install.sh delete mode 100644 src/lean-asdf/library_scripts.sh delete mode 100644 src/lefthook-asdf/README.md delete mode 100644 src/lefthook-asdf/devcontainer-feature.json delete mode 100755 src/lefthook-asdf/install.sh delete mode 100644 src/lefthook-asdf/library_scripts.sh delete mode 100644 src/leiningen-sdkman/README.md delete mode 100644 src/leiningen-sdkman/devcontainer-feature.json delete mode 100755 src/leiningen-sdkman/install.sh delete mode 100644 src/leiningen-sdkman/library_scripts.sh delete mode 100644 src/lektor/README.md delete mode 100644 src/lektor/devcontainer-feature.json delete mode 100755 src/lektor/install.sh delete mode 100644 src/lektor/library_scripts.sh delete mode 100644 src/lerna-npm/README.md delete mode 100644 src/lerna-npm/devcontainer-feature.json delete mode 100755 src/lerna-npm/install.sh delete mode 100644 src/lerna-npm/library_scripts.sh delete mode 100644 src/less/README.md delete mode 100644 src/less/devcontainer-feature.json delete mode 100755 src/less/install.sh delete mode 100644 src/less/library_scripts.sh delete mode 100644 src/levant-asdf/README.md delete mode 100644 src/levant-asdf/devcontainer-feature.json delete mode 100755 src/levant-asdf/install.sh delete mode 100644 src/levant-asdf/library_scripts.sh delete mode 100644 src/lighthouse-cli/README.md delete mode 100644 src/lighthouse-cli/devcontainer-feature.json delete mode 100755 src/lighthouse-cli/install.sh delete mode 100644 src/lighthouse-cli/library_scripts.sh delete mode 100644 src/linkerd2-cli-edge/README.md delete mode 100644 src/linkerd2-cli-edge/devcontainer-feature.json delete mode 100755 src/linkerd2-cli-edge/install.sh delete mode 100644 src/linkerd2-cli-edge/library_scripts.sh delete mode 100644 src/linkerd2-cli-stable/README.md delete mode 100644 src/linkerd2-cli-stable/devcontainer-feature.json delete mode 100755 src/linkerd2-cli-stable/install.sh delete mode 100644 src/linkerd2-cli-stable/library_scripts.sh delete mode 100644 src/linode-cli/README.md delete mode 100644 src/linode-cli/devcontainer-feature.json delete mode 100755 src/linode-cli/install.sh delete mode 100644 src/linode-cli/library_scripts.sh delete mode 100644 src/lite-server/README.md delete mode 100644 src/lite-server/devcontainer-feature.json delete mode 100755 src/lite-server/install.sh delete mode 100644 src/lite-server/library_scripts.sh delete mode 100644 src/live-server/README.md delete mode 100644 src/live-server/devcontainer-feature.json delete mode 100755 src/live-server/install.sh delete mode 100644 src/live-server/library_scripts.sh delete mode 100644 src/localstack/README.md delete mode 100644 src/localstack/devcontainer-feature.json delete mode 100755 src/localstack/install.sh delete mode 100644 src/localstack/library_scripts.sh delete mode 100644 src/localtunnel-npm/README.md delete mode 100644 src/localtunnel-npm/devcontainer-feature.json delete mode 100755 src/localtunnel-npm/install.sh delete mode 100644 src/localtunnel-npm/library_scripts.sh delete mode 100644 src/mackup/README.md delete mode 100644 src/mackup/devcontainer-feature.json delete mode 100755 src/mackup/install.sh delete mode 100644 src/mackup/library_scripts.sh delete mode 100644 src/markdownlint-cli/README.md delete mode 100644 src/markdownlint-cli/devcontainer-feature.json delete mode 100755 src/markdownlint-cli/install.sh delete mode 100644 src/markdownlint-cli/library_scripts.sh delete mode 100644 src/markdownlint-cli2/README.md delete mode 100644 src/markdownlint-cli2/devcontainer-feature.json delete mode 100755 src/markdownlint-cli2/install.sh delete mode 100644 src/markdownlint-cli2/library_scripts.sh delete mode 100644 src/maven-sdkman/README.md delete mode 100644 src/maven-sdkman/devcontainer-feature.json delete mode 100755 src/maven-sdkman/install.sh delete mode 100644 src/maven-sdkman/library_scripts.sh delete mode 100644 src/meltano/README.md delete mode 100644 src/meltano/devcontainer-feature.json delete mode 100755 src/meltano/install.sh delete mode 100644 src/meltano/library_scripts.sh delete mode 100644 src/memcached-exporter/README.md delete mode 100644 src/memcached-exporter/devcontainer-feature.json delete mode 100755 src/memcached-exporter/install.sh delete mode 100644 src/memcached-exporter/library_scripts.sh delete mode 100644 src/micro/README.md delete mode 100644 src/micro/devcontainer-feature.json delete mode 100755 src/micro/install.sh delete mode 100644 src/micro/library_scripts.sh delete mode 100644 src/micronaut-sdkman/README.md delete mode 100644 src/micronaut-sdkman/devcontainer-feature.json delete mode 100755 src/micronaut-sdkman/install.sh delete mode 100644 src/micronaut-sdkman/library_scripts.sh delete mode 100644 src/mise/README.md delete mode 100644 src/mise/devcontainer-feature.json delete mode 100755 src/mise/install.sh delete mode 100755 src/mise/library_scripts.sh delete mode 100644 src/mitmproxy/README.md delete mode 100644 src/mitmproxy/devcontainer-feature.json delete mode 100755 src/mitmproxy/install.sh delete mode 100644 src/mitmproxy/library_scripts.sh delete mode 100644 src/mkcert/README.md delete mode 100644 src/mkcert/devcontainer-feature.json delete mode 100755 src/mkcert/install.sh delete mode 100644 src/mkcert/library_scripts.sh delete mode 100644 src/mkdocs/README.md delete mode 100644 src/mkdocs/devcontainer-feature.json delete mode 100755 src/mkdocs/install.sh delete mode 100644 src/mkdocs/library_scripts.sh delete mode 100644 src/mlocate-apt-get/README.md delete mode 100644 src/mlocate-apt-get/devcontainer-feature.json delete mode 100755 src/mlocate-apt-get/install.sh delete mode 100644 src/mlocate-apt-get/library_scripts.sh delete mode 100644 src/mocha/README.md delete mode 100644 src/mocha/devcontainer-feature.json delete mode 100755 src/mocha/install.sh delete mode 100644 src/mocha/library_scripts.sh delete mode 100644 src/mongodb-atlas-cli-homebrew/README.md delete mode 100644 src/mongodb-atlas-cli-homebrew/devcontainer-feature.json delete mode 100755 src/mongodb-atlas-cli-homebrew/install.sh delete mode 100644 src/mongodb-atlas-cli-homebrew/library_scripts.sh delete mode 100644 src/mongosh-homebrew/README.md delete mode 100644 src/mongosh-homebrew/devcontainer-feature.json delete mode 100755 src/mongosh-homebrew/install.sh delete mode 100644 src/mongosh-homebrew/library_scripts.sh delete mode 100644 src/mosh-apt-get/README.md delete mode 100644 src/mosh-apt-get/devcontainer-feature.json delete mode 100755 src/mosh-apt-get/install.sh delete mode 100644 src/mosh-apt-get/library_scripts.sh delete mode 100644 src/mosh-homebrew/README.md delete mode 100644 src/mosh-homebrew/devcontainer-feature.json delete mode 100755 src/mosh-homebrew/install.sh delete mode 100644 src/mosh-homebrew/library_scripts.sh delete mode 100644 src/mulefd-sdkman/README.md delete mode 100644 src/mulefd-sdkman/devcontainer-feature.json delete mode 100755 src/mulefd-sdkman/install.sh delete mode 100644 src/mulefd-sdkman/library_scripts.sh delete mode 100644 src/mvnd-sdkman/README.md delete mode 100644 src/mvnd-sdkman/devcontainer-feature.json delete mode 100755 src/mvnd-sdkman/install.sh delete mode 100644 src/mvnd-sdkman/library_scripts.sh delete mode 100644 src/mybatis-sdkman/README.md delete mode 100644 src/mybatis-sdkman/devcontainer-feature.json delete mode 100755 src/mybatis-sdkman/install.sh delete mode 100644 src/mybatis-sdkman/library_scripts.sh delete mode 100644 src/mypy/README.md delete mode 100644 src/mypy/devcontainer-feature.json delete mode 100755 src/mypy/install.sh delete mode 100644 src/mypy/library_scripts.sh delete mode 100644 src/mysql-homebrew/README.md delete mode 100644 src/mysql-homebrew/devcontainer-feature.json delete mode 100755 src/mysql-homebrew/install.sh delete mode 100644 src/mysql-homebrew/library_scripts.sh delete mode 100644 src/mysqld-exporter/README.md delete mode 100644 src/mysqld-exporter/devcontainer-feature.json delete mode 100755 src/mysqld-exporter/install.sh delete mode 100644 src/mysqld-exporter/library_scripts.sh delete mode 100644 src/n8n/README.md delete mode 100644 src/n8n/devcontainer-feature.json delete mode 100755 src/n8n/install.sh delete mode 100644 src/n8n/library_scripts.sh delete mode 100644 src/namespace-cli/README.md delete mode 100644 src/namespace-cli/devcontainer-feature.json delete mode 100644 src/namespace-cli/install.sh delete mode 100644 src/namespace-cli/library_scripts.sh delete mode 100644 src/nancy/README.md delete mode 100644 src/nancy/devcontainer-feature.json delete mode 100755 src/nancy/install.sh delete mode 100644 src/nancy/library_scripts.sh delete mode 100644 src/navi/README.md delete mode 100644 src/navi/devcontainer-feature.json delete mode 100755 src/navi/install.sh delete mode 100644 src/navi/library_scripts.sh delete mode 100644 src/ncdu/README.md delete mode 100644 src/ncdu/devcontainer-feature.json delete mode 100755 src/ncdu/install.sh delete mode 100644 src/ncdu/library_scripts.sh delete mode 100644 src/neko-asdf/README.md delete mode 100644 src/neko-asdf/devcontainer-feature.json delete mode 100755 src/neko-asdf/install.sh delete mode 100644 src/neko-asdf/library_scripts.sh delete mode 100644 src/neo4jmigrations-sdkman/README.md delete mode 100644 src/neo4jmigrations-sdkman/devcontainer-feature.json delete mode 100755 src/neo4jmigrations-sdkman/install.sh delete mode 100644 src/neo4jmigrations-sdkman/library_scripts.sh delete mode 100644 src/neofetch/README.md delete mode 100644 src/neofetch/devcontainer-feature.json delete mode 100755 src/neofetch/install.sh delete mode 100644 src/neofetch/library_scripts.sh delete mode 100644 src/neovim-apt-get/README.md delete mode 100644 src/neovim-apt-get/devcontainer-feature.json delete mode 100755 src/neovim-apt-get/install.sh delete mode 100644 src/neovim-apt-get/library_scripts.sh delete mode 100644 src/neovim-homebrew/README.md delete mode 100644 src/neovim-homebrew/devcontainer-feature.json delete mode 100755 src/neovim-homebrew/install.sh delete mode 100644 src/neovim-homebrew/library_scripts.sh delete mode 100644 src/nestjs-cli/README.md delete mode 100644 src/nestjs-cli/devcontainer-feature.json delete mode 100755 src/nestjs-cli/install.sh delete mode 100644 src/nestjs-cli/library_scripts.sh delete mode 100644 src/netdata/README.md delete mode 100644 src/netdata/devcontainer-feature.json delete mode 100755 src/netdata/install.sh delete mode 100644 src/netdata/library_scripts.sh delete mode 100644 src/netlify-cli/README.md delete mode 100644 src/netlify-cli/devcontainer-feature.json delete mode 100755 src/netlify-cli/install.sh delete mode 100644 src/netlify-cli/library_scripts.sh delete mode 100644 src/nim-asdf/README.md delete mode 100644 src/nim-asdf/devcontainer-feature.json delete mode 100755 src/nim-asdf/install.sh delete mode 100644 src/nim-asdf/library_scripts.sh delete mode 100644 src/ninja-asdf/README.md delete mode 100644 src/ninja-asdf/devcontainer-feature.json delete mode 100755 src/ninja-asdf/install.sh delete mode 100644 src/ninja-asdf/library_scripts.sh delete mode 100644 src/nmap-apt-get/README.md delete mode 100644 src/nmap-apt-get/devcontainer-feature.json delete mode 100755 src/nmap-apt-get/install.sh delete mode 100644 src/nmap-apt-get/library_scripts.sh delete mode 100644 src/nmap-homebrew/README.md delete mode 100644 src/nmap-homebrew/devcontainer-feature.json delete mode 100755 src/nmap-homebrew/install.sh delete mode 100644 src/nmap-homebrew/library_scripts.sh delete mode 100644 src/nnn-apt-get/README.md delete mode 100644 src/nnn-apt-get/devcontainer-feature.json delete mode 100755 src/nnn-apt-get/install.sh delete mode 100644 src/nnn-apt-get/library_scripts.sh delete mode 100644 src/nnn-homebrew/README.md delete mode 100644 src/nnn-homebrew/devcontainer-feature.json delete mode 100755 src/nnn-homebrew/install.sh delete mode 100644 src/nnn-homebrew/library_scripts.sh delete mode 100644 src/node-asdf/README.md delete mode 100644 src/node-asdf/devcontainer-feature.json delete mode 100755 src/node-asdf/install.sh delete mode 100644 src/node-asdf/library_scripts.sh delete mode 100644 src/node-exporter/README.md delete mode 100644 src/node-exporter/devcontainer-feature.json delete mode 100755 src/node-exporter/install.sh delete mode 100644 src/node-exporter/library_scripts.sh delete mode 100644 src/nomad-asdf/README.md delete mode 100644 src/nomad-asdf/devcontainer-feature.json delete mode 100755 src/nomad-asdf/install.sh delete mode 100644 src/nomad-asdf/library_scripts.sh delete mode 100644 src/nox/README.md delete mode 100644 src/nox/devcontainer-feature.json delete mode 100755 src/nox/install.sh delete mode 100644 src/nox/library_scripts.sh delete mode 100644 src/npm-package/README.md delete mode 100644 src/npm-package/devcontainer-feature.json delete mode 100755 src/npm-package/install.sh delete mode 100644 src/npm-packages/README.md delete mode 100644 src/npm-packages/devcontainer-feature.json delete mode 100755 src/npm-packages/install.sh delete mode 100644 src/npm-packages/library_scripts.sh delete mode 100644 src/nx-npm/README.md delete mode 100644 src/nx-npm/devcontainer-feature.json delete mode 100755 src/nx-npm/install.sh delete mode 100644 src/nx-npm/library_scripts.sh delete mode 100644 src/ocaml-asdf/README.md delete mode 100644 src/ocaml-asdf/devcontainer-feature.json delete mode 100755 src/ocaml-asdf/install.sh delete mode 100644 src/ocaml-asdf/library_scripts.sh delete mode 100644 src/ocaml-opam/devcontainer-feature.json delete mode 100755 src/ocaml-opam/install.sh delete mode 100644 src/ocaml-opam/library_scripts.sh delete mode 100644 src/oclif/README.md delete mode 100644 src/oclif/devcontainer-feature.json delete mode 100755 src/oclif/install.sh delete mode 100644 src/oclif/library_scripts.sh delete mode 100644 src/opa/README.md delete mode 100644 src/opa/devcontainer-feature.json delete mode 100755 src/opa/install.sh delete mode 100644 src/opa/library_scripts.sh delete mode 100644 src/opam-asdf/README.md delete mode 100644 src/opam-asdf/devcontainer-feature.json delete mode 100755 src/opam-asdf/install.sh delete mode 100644 src/opam-asdf/library_scripts.sh delete mode 100644 src/ory-cli/README.md delete mode 100644 src/ory-cli/devcontainer-feature.json delete mode 100755 src/ory-cli/install.sh delete mode 100644 src/ory-cli/library_scripts.sh delete mode 100644 src/ory-hydra/README.md delete mode 100644 src/ory-hydra/devcontainer-feature.json delete mode 100755 src/ory-hydra/install.sh delete mode 100644 src/ory-hydra/library_scripts.sh delete mode 100644 src/ory-kratos/README.md delete mode 100644 src/ory-kratos/devcontainer-feature.json delete mode 100755 src/ory-kratos/install.sh delete mode 100644 src/ory-kratos/library_scripts.sh delete mode 100644 src/ory-oathkeeper/README.md delete mode 100644 src/ory-oathkeeper/devcontainer-feature.json delete mode 100755 src/ory-oathkeeper/install.sh delete mode 100644 src/ory-oathkeeper/library_scripts.sh delete mode 100644 src/packer-asdf/README.md delete mode 100644 src/packer-asdf/devcontainer-feature.json delete mode 100755 src/packer-asdf/install.sh delete mode 100644 src/packer-asdf/library_scripts.sh delete mode 100644 src/pandoc/README.md delete mode 100644 src/pandoc/devcontainer-feature.json delete mode 100755 src/pandoc/install.sh delete mode 100644 src/pandoc/library_scripts.sh delete mode 100644 src/pass-apt-get/README.md delete mode 100644 src/pass-apt-get/devcontainer-feature.json delete mode 100755 src/pass-apt-get/install.sh delete mode 100644 src/pass-apt-get/library_scripts.sh delete mode 100644 src/pdm/README.md delete mode 100644 src/pdm/devcontainer-feature.json delete mode 100755 src/pdm/install.sh delete mode 100644 src/pdm/library_scripts.sh delete mode 100644 src/peco-asdf/README.md delete mode 100644 src/peco-asdf/devcontainer-feature.json delete mode 100755 src/peco-asdf/install.sh delete mode 100644 src/peco-asdf/library_scripts.sh delete mode 100644 src/perl-asdf/README.md delete mode 100644 src/perl-asdf/devcontainer-feature.json delete mode 100755 src/perl-asdf/install.sh delete mode 100644 src/perl-asdf/library_scripts.sh delete mode 100644 src/pierrot-sdkman/README.md delete mode 100644 src/pierrot-sdkman/devcontainer-feature.json delete mode 100755 src/pierrot-sdkman/install.sh delete mode 100644 src/pierrot-sdkman/library_scripts.sh delete mode 100644 src/pipenv/README.md delete mode 100644 src/pipenv/devcontainer-feature.json delete mode 100755 src/pipenv/install.sh delete mode 100644 src/pipenv/library_scripts.sh delete mode 100644 src/pipx-package/README.md delete mode 100644 src/pipx-package/devcontainer-feature.json delete mode 100755 src/pipx-package/install.sh delete mode 100644 src/pnpm/README.md delete mode 100644 src/pnpm/devcontainer-feature.json delete mode 100755 src/pnpm/install.sh delete mode 100644 src/pnpm/library_scripts.sh delete mode 100644 src/podman-homebrew/README.md delete mode 100644 src/podman-homebrew/devcontainer-feature.json delete mode 100755 src/podman-homebrew/install.sh delete mode 100644 src/podman-homebrew/library_scripts.sh delete mode 100644 src/poetry/README.md delete mode 100644 src/poetry/devcontainer-feature.json delete mode 100755 src/poetry/install.sh delete mode 100644 src/poetry/library_scripts.sh delete mode 100644 src/pomchecker-sdkman/README.md delete mode 100644 src/pomchecker-sdkman/devcontainer-feature.json delete mode 100755 src/pomchecker-sdkman/install.sh delete mode 100644 src/pomchecker-sdkman/library_scripts.sh delete mode 100644 src/poppler-utils-apt-get/README.md delete mode 100644 src/poppler-utils-apt-get/devcontainer-feature.json delete mode 100755 src/poppler-utils-apt-get/install.sh delete mode 100644 src/poppler-utils-apt-get/library_scripts.sh delete mode 100644 src/powerbi-visuals-tools/README.md delete mode 100644 src/powerbi-visuals-tools/devcontainer-feature.json delete mode 100755 src/powerbi-visuals-tools/install.sh delete mode 100644 src/powerbi-visuals-tools/library_scripts.sh delete mode 100644 src/powershell/README.md delete mode 100644 src/powershell/devcontainer-feature.json delete mode 100755 src/powershell/install.sh delete mode 100644 src/powershell/library_scripts.sh delete mode 100644 src/pre-commit/README.md delete mode 100644 src/pre-commit/devcontainer-feature.json delete mode 100755 src/pre-commit/install.sh delete mode 100644 src/pre-commit/library_scripts.sh delete mode 100644 src/prettier/README.md delete mode 100644 src/prettier/devcontainer-feature.json delete mode 100755 src/prettier/install.sh delete mode 100644 src/prettier/library_scripts.sh delete mode 100644 src/prisma/README.md delete mode 100644 src/prisma/devcontainer-feature.json delete mode 100755 src/prisma/install.sh delete mode 100644 src/prisma/library_scripts.sh delete mode 100644 src/projen/README.md delete mode 100644 src/projen/devcontainer-feature.json delete mode 100755 src/projen/install.sh delete mode 100644 src/projen/library_scripts.sh delete mode 100644 src/prometheus/README.md delete mode 100644 src/prometheus/devcontainer-feature.json delete mode 100755 src/prometheus/install.sh delete mode 100644 src/prometheus/library_scripts.sh delete mode 100644 src/promlens/README.md delete mode 100644 src/promlens/devcontainer-feature.json delete mode 100755 src/promlens/install.sh delete mode 100644 src/promlens/library_scripts.sh delete mode 100644 src/protoc-asdf/README.md delete mode 100644 src/protoc-asdf/devcontainer-feature.json delete mode 100755 src/protoc-asdf/install.sh delete mode 100644 src/protoc-asdf/library_scripts.sh delete mode 100644 src/protoc/README.md delete mode 100644 src/protoc/devcontainer-feature.json delete mode 100755 src/protoc/install.sh delete mode 100644 src/protoc/library_scripts.sh delete mode 100644 src/pulumi/README.md delete mode 100644 src/pulumi/devcontainer-feature.json delete mode 100755 src/pulumi/install.sh delete mode 100644 src/pushgateway/README.md delete mode 100644 src/pushgateway/devcontainer-feature.json delete mode 100755 src/pushgateway/install.sh delete mode 100644 src/pushgateway/library_scripts.sh delete mode 100644 src/pyinfra/README.md delete mode 100644 src/pyinfra/devcontainer-feature.json delete mode 100755 src/pyinfra/install.sh delete mode 100644 src/pyinfra/library_scripts.sh delete mode 100644 src/pylint/README.md delete mode 100644 src/pylint/devcontainer-feature.json delete mode 100755 src/pylint/install.sh delete mode 100644 src/pylint/library_scripts.sh delete mode 100644 src/pyoxidizer/README.md delete mode 100644 src/pyoxidizer/devcontainer-feature.json delete mode 100755 src/pyoxidizer/install.sh delete mode 100644 src/pyoxidizer/library_scripts.sh delete mode 100644 src/pyscaffold/README.md delete mode 100644 src/pyscaffold/devcontainer-feature.json delete mode 100755 src/pyscaffold/install.sh delete mode 100644 src/pyscaffold/library_scripts.sh delete mode 100644 src/qrcode/README.md delete mode 100644 src/qrcode/devcontainer-feature.json delete mode 100755 src/qrcode/install.sh delete mode 100644 src/qrcode/library_scripts.sh delete mode 100644 src/quarkus-sdkman/README.md delete mode 100644 src/quarkus-sdkman/devcontainer-feature.json delete mode 100755 src/quarkus-sdkman/install.sh delete mode 100644 src/quarkus-sdkman/library_scripts.sh delete mode 100644 src/quasar-cli/README.md delete mode 100644 src/quasar-cli/devcontainer-feature.json delete mode 100755 src/quasar-cli/install.sh delete mode 100644 src/quasar-cli/library_scripts.sh delete mode 100644 src/raku-asdf/README.md delete mode 100644 src/raku-asdf/devcontainer-feature.json delete mode 100755 src/raku-asdf/install.sh delete mode 100644 src/raku-asdf/library_scripts.sh delete mode 100644 src/rclone/README.md delete mode 100644 src/rclone/devcontainer-feature.json delete mode 100755 src/rclone/install.sh delete mode 100644 src/rclone/library_scripts.sh delete mode 100644 src/redis-homebrew/README.md delete mode 100644 src/redis-homebrew/devcontainer-feature.json delete mode 100755 src/redis-homebrew/install.sh delete mode 100644 src/redis-homebrew/library_scripts.sh delete mode 100644 src/rekor-cli/README.md delete mode 100644 src/rekor-cli/devcontainer-feature.json delete mode 100755 src/rekor-cli/install.sh delete mode 100644 src/rekor-cli/library_scripts.sh delete mode 100644 src/renovate-cli/README.md delete mode 100644 src/renovate-cli/devcontainer-feature.json delete mode 100755 src/renovate-cli/install.sh delete mode 100644 src/renovate-cli/library_scripts.sh delete mode 100644 src/ripgrep/README.md delete mode 100644 src/ripgrep/devcontainer-feature.json delete mode 100755 src/ripgrep/install.sh delete mode 100644 src/ripgrep/library_scripts.sh delete mode 100644 src/rollup/README.md delete mode 100644 src/rollup/devcontainer-feature.json delete mode 100755 src/rollup/install.sh delete mode 100644 src/rollup/library_scripts.sh delete mode 100644 src/ruby-asdf/README.md delete mode 100644 src/ruby-asdf/devcontainer-feature.json delete mode 100755 src/ruby-asdf/install.sh delete mode 100644 src/ruby-asdf/library_scripts.sh delete mode 100644 src/ruff/README.md delete mode 100644 src/ruff/devcontainer-feature.json delete mode 100755 src/ruff/install.sh delete mode 100644 src/ruff/library_scripts.sh delete mode 100644 src/salesforce-cli/README.md delete mode 100644 src/salesforce-cli/devcontainer-feature.json delete mode 100755 src/salesforce-cli/install.sh delete mode 100644 src/salesforce-cli/library_scripts.sh delete mode 100644 src/salesforce-sfdx/README.md delete mode 100644 src/salesforce-sfdx/devcontainer-feature.json delete mode 100755 src/salesforce-sfdx/install.sh delete mode 100644 src/salesforce-sfdx/library_scripts.sh delete mode 100644 src/sanity-cli/README.md delete mode 100644 src/sanity-cli/devcontainer-feature.json delete mode 100755 src/sanity-cli/install.sh delete mode 100644 src/sanity-cli/library_scripts.sh delete mode 100644 src/sap-piper/README.md delete mode 100644 src/sap-piper/devcontainer-feature.json delete mode 100755 src/sap-piper/install.sh delete mode 100644 src/sap-piper/library_scripts.sh delete mode 100644 src/sbt-sdkman/README.md delete mode 100644 src/sbt-sdkman/devcontainer-feature.json delete mode 100755 src/sbt-sdkman/install.sh delete mode 100644 src/sbt-sdkman/library_scripts.sh delete mode 100644 src/scala-sdkman/README.md delete mode 100644 src/scala-sdkman/devcontainer-feature.json delete mode 100755 src/scala-sdkman/install.sh delete mode 100644 src/scala-sdkman/library_scripts.sh delete mode 100644 src/scalacli-sdkman/README.md delete mode 100644 src/scalacli-sdkman/devcontainer-feature.json delete mode 100755 src/scalacli-sdkman/install.sh delete mode 100644 src/scalacli-sdkman/library_scripts.sh delete mode 100644 src/scancode-toolkit/README.md delete mode 100644 src/scancode-toolkit/devcontainer-feature.json delete mode 100755 src/scancode-toolkit/install.sh delete mode 100644 src/scancode-toolkit/library_scripts.sh delete mode 100644 src/schemacrawler-sdkman/README.md delete mode 100644 src/schemacrawler-sdkman/devcontainer-feature.json delete mode 100755 src/schemacrawler-sdkman/install.sh delete mode 100644 src/schemacrawler-sdkman/library_scripts.sh delete mode 100644 src/sentinel-asdf/README.md delete mode 100644 src/sentinel-asdf/devcontainer-feature.json delete mode 100755 src/sentinel-asdf/install.sh delete mode 100644 src/sentinel-asdf/library_scripts.sh delete mode 100644 src/serf-asdf/README.md delete mode 100644 src/serf-asdf/devcontainer-feature.json delete mode 100755 src/serf-asdf/install.sh delete mode 100644 src/serf-asdf/library_scripts.sh delete mode 100644 src/shfmt/README.md delete mode 100644 src/shfmt/devcontainer-feature.json delete mode 100755 src/shfmt/install.sh delete mode 100644 src/shfmt/library_scripts.sh delete mode 100644 src/shopify-cli/README.md delete mode 100644 src/shopify-cli/devcontainer-feature.json delete mode 100755 src/shopify-cli/install.sh delete mode 100644 src/shopify-cli/library_scripts.sh delete mode 100644 src/sigstore-python/README.md delete mode 100644 src/sigstore-python/devcontainer-feature.json delete mode 100755 src/sigstore-python/install.sh delete mode 100644 src/sigstore-python/library_scripts.sh delete mode 100644 src/snyk-cli/README.md delete mode 100644 src/snyk-cli/devcontainer-feature.json delete mode 100755 src/snyk-cli/install.sh delete mode 100644 src/snyk-cli/library_scripts.sh delete mode 100644 src/sops/README.md delete mode 100644 src/sops/devcontainer-feature.json delete mode 100755 src/sops/install.sh delete mode 100644 src/sops/library_scripts.sh delete mode 100644 src/spacectl/README.md delete mode 100644 src/spacectl/devcontainer-feature.json delete mode 100755 src/spacectl/install.sh delete mode 100644 src/spacectl/library_scripts.sh delete mode 100644 src/spark-sdkman/README.md delete mode 100644 src/spark-sdkman/devcontainer-feature.json delete mode 100755 src/spark-sdkman/install.sh delete mode 100644 src/spark-sdkman/library_scripts.sh delete mode 100644 src/spicedb/README.md delete mode 100644 src/spicedb/devcontainer-feature.json delete mode 100755 src/spicedb/install.sh delete mode 100644 src/spicedb/library_scripts.sh delete mode 100644 src/springboot-sdkman/README.md delete mode 100644 src/springboot-sdkman/devcontainer-feature.json delete mode 100755 src/springboot-sdkman/install.sh delete mode 100644 src/springboot-sdkman/library_scripts.sh delete mode 100644 src/sqlfluff/README.md delete mode 100644 src/sqlfluff/devcontainer-feature.json delete mode 100755 src/sqlfluff/install.sh delete mode 100644 src/sqlfluff/library_scripts.sh delete mode 100644 src/squarespace-server/README.md delete mode 100644 src/squarespace-server/devcontainer-feature.json delete mode 100755 src/squarespace-server/install.sh delete mode 100644 src/squarespace-server/library_scripts.sh delete mode 100644 src/sshoogr-sdkman/README.md delete mode 100644 src/sshoogr-sdkman/devcontainer-feature.json delete mode 100755 src/sshoogr-sdkman/install.sh delete mode 100644 src/sshoogr-sdkman/library_scripts.sh delete mode 100644 src/starship-homebrew/README.md delete mode 100644 src/starship-homebrew/devcontainer-feature.json delete mode 100755 src/starship-homebrew/install.sh delete mode 100644 src/starship-homebrew/library_scripts.sh delete mode 100644 src/starship/README.md delete mode 100644 src/starship/devcontainer-feature.json delete mode 100755 src/starship/install.sh delete mode 100644 src/starship/library_scripts.sh delete mode 100644 src/statsd-exporter/README.md delete mode 100644 src/statsd-exporter/devcontainer-feature.json delete mode 100755 src/statsd-exporter/install.sh delete mode 100644 src/statsd-exporter/library_scripts.sh delete mode 100644 src/stew/README.md delete mode 100644 src/stew/devcontainer-feature.json delete mode 100755 src/stew/install.sh delete mode 100644 src/stew/library_scripts.sh delete mode 100644 src/supabase-cli/README.md delete mode 100644 src/supabase-cli/devcontainer-feature.json delete mode 100755 src/supabase-cli/install.sh delete mode 100644 src/supabase-cli/library_scripts.sh delete mode 100644 src/surge-cli/README.md delete mode 100644 src/surge-cli/devcontainer-feature.json delete mode 100755 src/surge-cli/install.sh delete mode 100644 src/surge-cli/library_scripts.sh delete mode 100644 src/sv2v/README.md delete mode 100644 src/sv2v/devcontainer-feature.json delete mode 100755 src/sv2v/install.sh delete mode 100644 src/sv2v/library_scripts.sh delete mode 100644 src/svu-asdf/README.md delete mode 100644 src/svu-asdf/devcontainer-feature.json delete mode 100755 src/svu-asdf/install.sh delete mode 100644 src/svu-asdf/library_scripts.sh delete mode 100644 src/syft/README.md delete mode 100644 src/syft/devcontainer-feature.json delete mode 100755 src/syft/install.sh delete mode 100644 src/syft/library_scripts.sh delete mode 100644 src/syntaqx-serve/README.md delete mode 100644 src/syntaqx-serve/devcontainer-feature.json delete mode 100755 src/syntaqx-serve/install.sh delete mode 100644 src/syntaqx-serve/library_scripts.sh delete mode 100644 src/tailscale/README.md delete mode 100644 src/tailscale/devcontainer-feature.json delete mode 100755 src/tailscale/install.sh delete mode 100644 src/tailscale/library_scripts.sh delete mode 100644 src/talosctl/README.md delete mode 100644 src/talosctl/devcontainer-feature.json delete mode 100644 src/talosctl/install.sh delete mode 100644 src/talosctl/library_scripts.sh delete mode 100644 src/taxi-sdkman/README.md delete mode 100644 src/taxi-sdkman/devcontainer-feature.json delete mode 100755 src/taxi-sdkman/install.sh delete mode 100644 src/taxi-sdkman/library_scripts.sh delete mode 100644 src/tea/README.md delete mode 100644 src/tea/devcontainer-feature.json delete mode 100755 src/tea/install.sh delete mode 100644 src/tea/library_scripts.sh delete mode 100644 src/tekton-cli/README.md delete mode 100644 src/tekton-cli/devcontainer-feature.json delete mode 100755 src/tekton-cli/install.sh delete mode 100644 src/tekton-cli/library_scripts.sh delete mode 100644 src/tempo/README.md delete mode 100644 src/tempo/devcontainer-feature.json delete mode 100755 src/tempo/install.sh delete mode 100644 src/tempo/library_scripts.sh delete mode 100644 src/temporal-cli/README.md delete mode 100644 src/temporal-cli/devcontainer-feature.json delete mode 100755 src/temporal-cli/install.sh delete mode 100644 src/temporal-cli/library_scripts.sh delete mode 100644 src/terracognita/README.md delete mode 100644 src/terracognita/devcontainer-feature.json delete mode 100755 src/terracognita/install.sh delete mode 100644 src/terracognita/library_scripts.sh delete mode 100644 src/terraform-asdf/README.md delete mode 100644 src/terraform-asdf/devcontainer-feature.json delete mode 100755 src/terraform-asdf/install.sh delete mode 100644 src/terraform-asdf/library_scripts.sh delete mode 100644 src/terraform-docs/README.md delete mode 100644 src/terraform-docs/devcontainer-feature.json delete mode 100755 src/terraform-docs/install.sh delete mode 100644 src/terraform-docs/library_scripts.sh delete mode 100644 src/terraform-ls-asdf/README.md delete mode 100644 src/terraform-ls-asdf/devcontainer-feature.json delete mode 100755 src/terraform-ls-asdf/install.sh delete mode 100644 src/terraform-ls-asdf/library_scripts.sh delete mode 100644 src/terraformer/README.md delete mode 100644 src/terraformer/devcontainer-feature.json delete mode 100755 src/terraformer/install.sh delete mode 100644 src/terraformer/library_scripts.sh delete mode 100644 src/terragrunt/README.md delete mode 100644 src/terragrunt/devcontainer-feature.json delete mode 100755 src/terragrunt/install.sh delete mode 100644 src/terragrunt/library_scripts.sh delete mode 100644 src/terramate/README.md delete mode 100644 src/terramate/devcontainer-feature.json delete mode 100755 src/terramate/install.sh delete mode 100644 src/terramate/library_scripts.sh delete mode 100644 src/terrascan/README.md delete mode 100644 src/terrascan/devcontainer-feature.json delete mode 100755 src/terrascan/install.sh delete mode 100644 src/tfc-agent-asdf/README.md delete mode 100644 src/tfc-agent-asdf/devcontainer-feature.json delete mode 100755 src/tfc-agent-asdf/install.sh delete mode 100644 src/tfc-agent-asdf/library_scripts.sh delete mode 100644 src/tfenv-homebrew/README.md delete mode 100644 src/tfenv-homebrew/devcontainer-feature.json delete mode 100755 src/tfenv-homebrew/install.sh delete mode 100644 src/tfenv-homebrew/library_scripts.sh delete mode 100644 src/tfsec/README.md delete mode 100644 src/tfsec/devcontainer-feature.json delete mode 100755 src/tfsec/install.sh delete mode 100644 src/tfsec/library_scripts.sh delete mode 100644 src/tfswitch/README.md delete mode 100644 src/tfswitch/devcontainer-feature.json delete mode 100755 src/tfswitch/install.sh delete mode 100644 src/tfswitch/library_scripts.sh delete mode 100644 src/tldr/README.md delete mode 100644 src/tldr/devcontainer-feature.json delete mode 100755 src/tldr/install.sh delete mode 100644 src/tldr/library_scripts.sh delete mode 100644 src/tmate/README.md delete mode 100644 src/tmate/devcontainer-feature.json delete mode 100755 src/tmate/install.sh delete mode 100644 src/tmate/library_scripts.sh delete mode 100644 src/tmux-apt-get/README.md delete mode 100644 src/tmux-apt-get/devcontainer-feature.json delete mode 100755 src/tmux-apt-get/install.sh delete mode 100644 src/tmux-apt-get/library_scripts.sh delete mode 100644 src/tmux-homebrew/README.md delete mode 100644 src/tmux-homebrew/devcontainer-feature.json delete mode 100755 src/tmux-homebrew/install.sh delete mode 100644 src/tmux-homebrew/library_scripts.sh delete mode 100644 src/tomcat-sdkman/README.md delete mode 100644 src/tomcat-sdkman/devcontainer-feature.json delete mode 100755 src/tomcat-sdkman/install.sh delete mode 100644 src/tomcat-sdkman/library_scripts.sh delete mode 100644 src/tooljet-cli/README.md delete mode 100644 src/tooljet-cli/devcontainer-feature.json delete mode 100755 src/tooljet-cli/install.sh delete mode 100644 src/tooljet-cli/library_scripts.sh delete mode 100644 src/toolkit-sdkman/README.md delete mode 100644 src/toolkit-sdkman/devcontainer-feature.json delete mode 100755 src/toolkit-sdkman/install.sh delete mode 100644 src/toolkit-sdkman/library_scripts.sh delete mode 100644 src/tox/README.md delete mode 100644 src/tox/devcontainer-feature.json delete mode 100755 src/tox/install.sh delete mode 100644 src/tox/library_scripts.sh delete mode 100644 src/tridentctl-asdf/README.md delete mode 100644 src/tridentctl-asdf/devcontainer-feature.json delete mode 100755 src/tridentctl-asdf/install.sh delete mode 100644 src/tridentctl-asdf/library_scripts.sh delete mode 100644 src/truffle/README.md delete mode 100644 src/truffle/devcontainer-feature.json delete mode 100755 src/truffle/install.sh delete mode 100644 src/truffle/library_scripts.sh delete mode 100644 src/ts-node/README.md delete mode 100644 src/ts-node/devcontainer-feature.json delete mode 100755 src/ts-node/install.sh delete mode 100644 src/ts-node/library_scripts.sh delete mode 100644 src/tsx/README.md delete mode 100644 src/tsx/devcontainer-feature.json delete mode 100755 src/tsx/install.sh delete mode 100644 src/tsx/library_scripts.sh delete mode 100644 src/turborepo-npm/README.md delete mode 100644 src/turborepo-npm/devcontainer-feature.json delete mode 100755 src/turborepo-npm/install.sh delete mode 100644 src/turborepo-npm/library_scripts.sh delete mode 100644 src/twine/README.md delete mode 100644 src/twine/devcontainer-feature.json delete mode 100755 src/twine/install.sh delete mode 100644 src/twine/library_scripts.sh delete mode 100644 src/typescript/README.md delete mode 100644 src/typescript/devcontainer-feature.json delete mode 100755 src/typescript/install.sh delete mode 100644 src/typescript/library_scripts.sh delete mode 100644 src/typst/README.md delete mode 100644 src/typst/devcontainer-feature.json delete mode 100755 src/typst/install.sh delete mode 100644 src/typst/library_scripts.sh delete mode 100644 src/ufmt/README.md delete mode 100644 src/ufmt/devcontainer-feature.json delete mode 100755 src/ufmt/install.sh delete mode 100644 src/ufmt/library_scripts.sh delete mode 100644 src/upx/README.md delete mode 100644 src/upx/devcontainer-feature.json delete mode 100755 src/upx/install.sh delete mode 100644 src/upx/library_scripts.sh delete mode 100644 src/vault-asdf/README.md delete mode 100644 src/vault-asdf/devcontainer-feature.json delete mode 100755 src/vault-asdf/install.sh delete mode 100644 src/vault-asdf/library_scripts.sh delete mode 100644 src/vercel-cli/README.md delete mode 100644 src/vercel-cli/devcontainer-feature.json delete mode 100755 src/vercel-cli/install.sh delete mode 100644 src/vercel-cli/library_scripts.sh delete mode 100644 src/vercel-ncc/README.md delete mode 100644 src/vercel-ncc/devcontainer-feature.json delete mode 100755 src/vercel-ncc/install.sh delete mode 100644 src/vercel-ncc/library_scripts.sh delete mode 100644 src/vercel-pkg/README.md delete mode 100644 src/vercel-pkg/devcontainer-feature.json delete mode 100755 src/vercel-pkg/install.sh delete mode 100644 src/vercel-pkg/library_scripts.sh delete mode 100644 src/vercel-release/README.md delete mode 100644 src/vercel-release/devcontainer-feature.json delete mode 100755 src/vercel-release/install.sh delete mode 100644 src/vercel-release/library_scripts.sh delete mode 100644 src/vercel-serve/README.md delete mode 100644 src/vercel-serve/devcontainer-feature.json delete mode 100755 src/vercel-serve/install.sh delete mode 100644 src/vercel-serve/library_scripts.sh delete mode 100644 src/vscode-cli/README.md delete mode 100644 src/vscode-cli/devcontainer-feature.json delete mode 100644 src/vscode-cli/install.sh delete mode 100644 src/vscode-cli/library_scripts.sh delete mode 100644 src/vscode-server/README.md delete mode 100644 src/vscode-server/devcontainer-feature.json delete mode 100644 src/vscode-server/install.sh delete mode 100644 src/vscode-server/library_scripts.sh delete mode 100644 src/vtop/README.md delete mode 100644 src/vtop/devcontainer-feature.json delete mode 100755 src/vtop/install.sh delete mode 100644 src/vtop/library_scripts.sh delete mode 100644 src/vue-cli/README.md delete mode 100644 src/vue-cli/devcontainer-feature.json delete mode 100755 src/vue-cli/install.sh delete mode 100644 src/vue-cli/library_scripts.sh delete mode 100644 src/vulture/README.md delete mode 100644 src/vulture/devcontainer-feature.json delete mode 100755 src/vulture/install.sh delete mode 100644 src/vulture/library_scripts.sh delete mode 100644 src/w3m-apt-get/README.md delete mode 100644 src/w3m-apt-get/devcontainer-feature.json delete mode 100755 src/w3m-apt-get/install.sh delete mode 100644 src/w3m-apt-get/library_scripts.sh delete mode 100644 src/w3m-homebrew/README.md delete mode 100644 src/w3m-homebrew/devcontainer-feature.json delete mode 100755 src/w3m-homebrew/install.sh delete mode 100644 src/w3m-homebrew/library_scripts.sh delete mode 100644 src/waypoint-asdf/README.md delete mode 100644 src/waypoint-asdf/devcontainer-feature.json delete mode 100755 src/waypoint-asdf/install.sh delete mode 100644 src/waypoint-asdf/library_scripts.sh delete mode 100644 src/webi-packages/README.md delete mode 100644 src/webi-packages/devcontainer-feature.json delete mode 100755 src/webi-packages/install.sh delete mode 100644 src/webi-packages/utils.sh delete mode 100644 src/webtau-sdkman/README.md delete mode 100644 src/webtau-sdkman/devcontainer-feature.json delete mode 100755 src/webtau-sdkman/install.sh delete mode 100644 src/webtau-sdkman/library_scripts.sh delete mode 100644 src/wget-apt-get/README.md delete mode 100644 src/wget-apt-get/devcontainer-feature.json delete mode 100755 src/wget-apt-get/install.sh delete mode 100644 src/wget-apt-get/library_scripts.sh delete mode 100644 src/wget-homebrew/README.md delete mode 100644 src/wget-homebrew/devcontainer-feature.json delete mode 100755 src/wget-homebrew/install.sh delete mode 100644 src/wget-homebrew/library_scripts.sh delete mode 100644 src/wireguard-apt-get/README.md delete mode 100644 src/wireguard-apt-get/devcontainer-feature.json delete mode 100755 src/wireguard-apt-get/install.sh delete mode 100644 src/wireguard-apt-get/library_scripts.sh delete mode 100644 src/xmrig/README.md delete mode 100644 src/xmrig/devcontainer-feature.json delete mode 100755 src/xmrig/install.sh delete mode 100644 src/xmrig/library_scripts.sh delete mode 100644 src/xonsh/README.md delete mode 100644 src/xonsh/devcontainer-feature.json delete mode 100755 src/xonsh/install.sh delete mode 100644 src/xonsh/library_scripts.sh delete mode 100644 src/yamllint/README.md delete mode 100644 src/yamllint/devcontainer-feature.json delete mode 100755 src/yamllint/install.sh delete mode 100644 src/yamllint/library_scripts.sh delete mode 100644 src/yapf/README.md delete mode 100644 src/yapf/devcontainer-feature.json delete mode 100755 src/yapf/install.sh delete mode 100644 src/yapf/library_scripts.sh delete mode 100644 src/youtube-dl/README.md delete mode 100644 src/youtube-dl/devcontainer-feature.json delete mode 100755 src/youtube-dl/install.sh delete mode 100644 src/youtube-dl/library_scripts.sh delete mode 100644 src/youtubeuploader/README.md delete mode 100644 src/youtubeuploader/devcontainer-feature.json delete mode 100755 src/youtubeuploader/install.sh delete mode 100644 src/youtubeuploader/library_scripts.sh delete mode 100644 src/yt-dlp/README.md delete mode 100644 src/yt-dlp/devcontainer-feature.json delete mode 100755 src/yt-dlp/install.sh delete mode 100644 src/yt-dlp/library_scripts.sh delete mode 100644 src/zig/README.md delete mode 100644 src/zig/devcontainer-feature.json delete mode 100755 src/zig/install.sh delete mode 100644 src/zsh-plugins/README.md delete mode 100644 src/zsh-plugins/devcontainer-feature.json delete mode 100755 src/zsh-plugins/install.sh delete mode 100644 test/act-asdf/scenarios.json delete mode 100755 test/act-asdf/test.sh delete mode 100644 test/act/scenarios.json delete mode 100755 test/act/test_defaults_debian.sh delete mode 100644 test/actionlint/scenarios.json delete mode 100755 test/actionlint/test_defaults_debian.sh delete mode 100644 test/actions-runner/scenarios.json delete mode 100755 test/actions-runner/test_defaults_debian.sh delete mode 100644 test/activemq-sdkman/scenarios.json delete mode 100755 test/activemq-sdkman/test.sh delete mode 100644 test/age/scenarios.json delete mode 100755 test/age/test_defaults_debian.sh delete mode 100644 test/akamai-cli/scenarios.json delete mode 100755 test/akamai-cli/test_defaults_debian.sh delete mode 100644 test/alertmanager/scenarios.json delete mode 100755 test/alertmanager/test_defaults_debian.sh delete mode 100644 test/alp-asdf/scenarios.json delete mode 100755 test/alp-asdf/test.sh delete mode 100644 test/amplify-cli/scenarios.json delete mode 100755 test/amplify-cli/test.sh delete mode 100644 test/angular-cli/scenarios.json delete mode 100755 test/angular-cli/test.sh delete mode 100644 test/ansible/scenarios.json delete mode 100755 test/ansible/test.sh delete mode 100755 test/ansible/test_debian.sh delete mode 100755 test/ansible/test_debian_bookworm.sh delete mode 100644 test/ansible/test_injections.sh delete mode 100755 test/ansible/test_ubuntu.sh delete mode 100755 test/ansible/test_version_selection.sh delete mode 100644 test/ant-sdkman/scenarios.json delete mode 100755 test/ant-sdkman/test.sh delete mode 100644 test/apko/scenarios.json delete mode 100755 test/apko/test_defaults_debian.sh delete mode 100644 test/apt-get-packages/scenarios.json delete mode 100755 test/apt-get-packages/test_neovim_ubuntu.sh delete mode 100644 test/apt-packages/scenarios.json delete mode 100755 test/apt-packages/test_neovim_ubuntu.sh delete mode 100644 test/argo-cd/scenarios.json delete mode 100755 test/argo-cd/test.sh delete mode 100644 test/argo-workflows/scenarios.json delete mode 100755 test/argo-workflows/test.sh delete mode 100644 test/asciidoctorj-sdkman/scenarios.json delete mode 100755 test/asciidoctorj-sdkman/test.sh delete mode 100755 test/asdf-package/install_act.sh delete mode 100755 test/asdf-package/install_act_with_repo.sh delete mode 100755 test/asdf-package/install_rabbitmq.sh delete mode 100755 test/asdf-package/install_terraform_alpine.sh delete mode 100644 test/asdf-package/scenarios.json delete mode 100644 test/assemblyscript/scenarios.json delete mode 100755 test/assemblyscript/test.sh delete mode 100644 test/atlantis/scenarios.json delete mode 100755 test/atlantis/test_defaults_debian.sh delete mode 100644 test/atmos/scenarios.json delete mode 100755 test/atmos/test_defaults_debian.sh delete mode 100644 test/auditjs/scenarios.json delete mode 100755 test/auditjs/test_defaults.sh delete mode 100644 test/autoenv/scenarios.json delete mode 100755 test/autoenv/test.sh delete mode 100644 test/aws-cdk/scenarios.json delete mode 100755 test/aws-cdk/test.sh delete mode 100644 test/aws-eb-cli/scenarios.json delete mode 100755 test/aws-eb-cli/test.sh delete mode 100644 test/aws-sso-cli/scenarios.json delete mode 100755 test/aws-sso-cli/test.sh delete mode 100755 test/aws-sso-cli/test_debian.sh delete mode 100755 test/aws-sso-cli/test_specific_version.sh delete mode 100644 test/aztfexport/scenarios.json delete mode 100755 test/aztfexport/test_defaults_debian.sh delete mode 100644 test/azure-apiops/scenarios.json delete mode 100755 test/azure-apiops/test.sh delete mode 100644 test/ballerina-sdkman/scenarios.json delete mode 100755 test/ballerina-sdkman/test.sh delete mode 100644 test/bandit/scenarios.json delete mode 100755 test/bandit/test.sh delete mode 100644 test/bartib/scenarios.json delete mode 100755 test/bartib/test_defaults_debian.sh delete mode 100644 test/bash-command/scenarios.json delete mode 100755 test/bash-command/set_env.sh delete mode 100644 test/beehive/scenarios.json delete mode 100755 test/beehive/test_defaults_debian.sh delete mode 100644 test/bikeshed/scenarios.json delete mode 100755 test/bikeshed/test.sh delete mode 100644 test/bin/scenarios.json delete mode 100755 test/bin/test_defaults_debian.sh delete mode 100644 test/black/scenarios.json delete mode 100755 test/black/test.sh delete mode 100644 test/blackbox-exporter/scenarios.json delete mode 100755 test/blackbox-exporter/test_defaults_debian.sh delete mode 100644 test/bomber/scenarios.json delete mode 100755 test/bomber/test_defaults_debian.sh delete mode 100644 test/bower/scenarios.json delete mode 100755 test/bower/test.sh delete mode 100644 test/bpipe-sdkman/scenarios.json delete mode 100755 test/bpipe-sdkman/test.sh delete mode 100644 test/brownie/scenarios.json delete mode 100755 test/brownie/test.sh delete mode 100644 test/browserify/scenarios.json delete mode 100755 test/browserify/test.sh delete mode 100644 test/btop-homebrew/scenarios.json delete mode 100755 test/btop-homebrew/test.sh delete mode 100644 test/btrace-sdkman/scenarios.json delete mode 100755 test/btrace-sdkman/test.sh delete mode 100644 test/budibase-cli/scenarios.json delete mode 100755 test/budibase-cli/test.sh delete mode 100644 test/buku/scenarios.json delete mode 100755 test/buku/test.sh delete mode 100644 test/caddy/scenarios.json delete mode 100755 test/caddy/test_defaults_debian.sh delete mode 100644 test/ccache-asdf/scenarios.json delete mode 100755 test/ccache-asdf/test.sh delete mode 100644 test/checkov/scenarios.json delete mode 100755 test/checkov/test.sh delete mode 100644 test/chezscheme-asdf/scenarios.json delete mode 100755 test/chezscheme-asdf/test.sh delete mode 100644 test/chisel/scenarios.json delete mode 100755 test/chisel/test_defaults_debian.sh delete mode 100644 test/circleci-cli/scenarios.json delete mode 100755 test/circleci-cli/test_defaults_debian.sh delete mode 100644 test/clojure-asdf/scenarios.json delete mode 100755 test/clojure-asdf/test.sh delete mode 100644 test/cloud-nuke/scenarios.json delete mode 100755 test/cloud-nuke/test_defaults_debian.sh delete mode 100644 test/cloudflare-wrangler/scenarios.json delete mode 100755 test/cloudflare-wrangler/test.sh delete mode 100644 test/cloudflared-fips/scenarios.json delete mode 100755 test/cloudflared-fips/test_defaults_debian.sh delete mode 100644 test/cloudflared/scenarios.json delete mode 100755 test/cloudflared/test_defaults_debian.sh delete mode 100644 test/cloudinary-cli/scenarios.json delete mode 100755 test/cloudinary-cli/test.sh delete mode 100644 test/cmake/scenarios.json delete mode 100755 test/cmake/test.sh delete mode 100755 test/cmake/test_debian.sh delete mode 100755 test/cmake/test_specific_version.sh delete mode 100644 test/codefresh-cli/scenarios.json delete mode 100755 test/codefresh-cli/test_defaults_debian.sh delete mode 100644 test/composer/scenarios.json delete mode 100755 test/composer/test_defaults_debian.sh delete mode 100644 test/concurnas-sdkman/scenarios.json delete mode 100755 test/concurnas-sdkman/test.sh delete mode 100644 test/connor-sdkman/scenarios.json delete mode 100755 test/connor-sdkman/test.sh delete mode 100644 test/consul-asdf/scenarios.json delete mode 100755 test/consul-asdf/test.sh delete mode 100644 test/consul-exporter/scenarios.json delete mode 100755 test/consul-exporter/test_defaults_debian.sh delete mode 100644 test/cookiecutter/scenarios.json delete mode 100755 test/cookiecutter/test.sh delete mode 100755 test/copier/injections.sh delete mode 100644 test/copier/scenarios.json delete mode 100755 test/copier/test.sh delete mode 100644 test/corepack/scenarios.json delete mode 100755 test/corepack/test.sh delete mode 100644 test/cosign/scenarios.json delete mode 100755 test/cosign/test_defaults_debian.sh delete mode 100644 test/coverage-py/scenarios.json delete mode 100755 test/coverage-py/test.sh delete mode 100644 test/crystal-asdf/scenarios.json delete mode 100755 test/crystal-asdf/test.sh delete mode 100644 test/cuba-sdkman/scenarios.json delete mode 100755 test/cuba-sdkman/test.sh delete mode 100644 test/curl-apt-get/scenarios.json delete mode 100755 test/curl-apt-get/test.sh delete mode 100644 test/curl-homebrew/scenarios.json delete mode 100755 test/curl-homebrew/test.sh delete mode 100644 test/cve-bin-tool/scenarios.json delete mode 100755 test/cve-bin-tool/test_defaults.sh delete mode 100644 test/cxf-sdkman/scenarios.json delete mode 100755 test/cxf-sdkman/test.sh delete mode 100644 test/cyclonedx-cli/scenarios.json delete mode 100755 test/cyclonedx-cli/test_defaults_debian.sh delete mode 100644 test/cyclonedx-python/scenarios.json delete mode 100755 test/cyclonedx-python/test_defaults.sh delete mode 100644 test/cz-cli/scenarios.json delete mode 100755 test/cz-cli/test.sh delete mode 100644 test/d/scenarios.json delete mode 100755 test/d/test.sh delete mode 100644 test/dasel-asdf/scenarios.json delete mode 100755 test/dasel-asdf/test.sh delete mode 100644 test/dashlane-cli/scenarios.json delete mode 100755 test/dashlane-cli/test_defaults_debian.sh delete mode 100644 test/datadog-ci-cli/scenarios.json delete mode 100755 test/datadog-ci-cli/test_defaults_debian.sh delete mode 100644 test/datasette/scenarios.json delete mode 100755 test/datasette/test.sh delete mode 100644 test/dbt-coverage/scenarios.json delete mode 100755 test/dbt-coverage/test.sh delete mode 100644 test/ddgr-apt-get/scenarios.json delete mode 100755 test/ddgr-apt-get/test.sh delete mode 100644 test/ddgr-homebrew/scenarios.json delete mode 100755 test/ddgr-homebrew/test.sh delete mode 100644 test/deno-asdf/scenarios.json delete mode 100755 test/deno-asdf/test.sh delete mode 100644 test/deno/scenarios.json delete mode 100755 test/deno/test.sh delete mode 100644 test/devcontainers-cli/scenarios.json delete mode 100755 test/devcontainers-cli/test.sh delete mode 100644 test/digitalocean-cli/scenarios.json delete mode 100755 test/digitalocean-cli/test.sh delete mode 100644 test/direnv-asdf/scenarios.json delete mode 100755 test/direnv-asdf/test.sh delete mode 100644 test/direnv/scenarios.json delete mode 100755 test/direnv/test_defaults_debian.sh delete mode 100644 test/dive/scenarios.json delete mode 100755 test/dive/test_defaults_debian.sh delete mode 100644 test/dnote/scenarios.json delete mode 100755 test/dnote/test_defaults_debian.sh delete mode 100644 test/doctoolchain-sdkman/scenarios.json delete mode 100755 test/doctoolchain-sdkman/test.sh delete mode 100644 test/dprint-asdf/scenarios.json delete mode 100755 test/dprint-asdf/test.sh delete mode 100644 test/driftctl/scenarios.json delete mode 100755 test/driftctl/test_defaults_debian.sh delete mode 100644 test/drone-cli/scenarios.json delete mode 100755 test/drone-cli/test_defaults_debian.sh delete mode 100644 test/dua/scenarios.json delete mode 100755 test/dua/test_defaults_debian.sh delete mode 100644 test/duf/scenarios.json delete mode 100755 test/duf/test_defaults_debian.sh delete mode 100644 test/dufs/scenarios.json delete mode 100755 test/dufs/test_defaults_debian.sh delete mode 100644 test/eas-cli/scenarios.json delete mode 100755 test/eas-cli/test.sh delete mode 100644 test/eget/scenarios.json delete mode 100755 test/eget/test_defaults_debian.sh delete mode 100644 test/elasticsearch-asdf/scenarios.json delete mode 100755 test/elasticsearch-asdf/test.sh delete mode 100644 test/elm-asdf/scenarios.json delete mode 100755 test/elm-asdf/test.sh delete mode 100644 test/ember-cli/scenarios.json delete mode 100755 test/ember-cli/test.sh delete mode 100644 test/envoy/scenarios.json delete mode 100755 test/envoy/test_defaults_debian.sh delete mode 100644 test/epinio/scenarios.json delete mode 100755 test/epinio/test_defaults_debian.sh delete mode 100644 test/etcd/scenarios.json delete mode 100755 test/etcd/test_defaults_debian.sh delete mode 100644 test/exa/scenarios.json delete mode 100755 test/exa/test_defaults_debian.sh delete mode 100644 test/exercism-cli/scenarios.json delete mode 100755 test/exercism-cli/test_defaults_debian.sh delete mode 100644 test/expo-cli/scenarios.json delete mode 100755 test/expo-cli/test.sh delete mode 100644 test/express-generator/scenarios.json delete mode 100755 test/express-generator/test.sh delete mode 100644 test/fd/scenarios.json delete mode 100755 test/fd/test_defaults_debian.sh delete mode 100644 test/ffmpeg-apt-get/scenarios.json delete mode 100755 test/ffmpeg-apt-get/test.sh delete mode 100644 test/firebase-cli/scenarios.json delete mode 100755 test/firebase-cli/test.sh delete mode 100644 test/fish-apt-get/scenarios.json delete mode 100755 test/fish-apt-get/test.sh delete mode 100644 test/fkill/scenarios.json delete mode 100755 test/fkill/test.sh delete mode 100644 test/flake8/scenarios.json delete mode 100755 test/flake8/test.sh delete mode 100644 test/flink-sdkman/scenarios.json delete mode 100755 test/flink-sdkman/test.sh delete mode 100644 test/flit/scenarios.json delete mode 100755 test/flit/test.sh delete mode 100644 test/former2-cli/scenarios.json delete mode 100755 test/former2-cli/test.sh delete mode 100644 test/fossil-apt-get/scenarios.json delete mode 100755 test/fossil-apt-get/test.sh delete mode 100644 test/fossil-homebrew/scenarios.json delete mode 100755 test/fossil-homebrew/test.sh delete mode 100644 test/fulcio/scenarios.json delete mode 100755 test/fulcio/test_defaults_debian.sh delete mode 100644 test/fzf/scenarios.json delete mode 100755 test/fzf/test_defaults_debian.sh delete mode 100644 test/gaiden-sdkman/scenarios.json delete mode 100755 test/gaiden-sdkman/test.sh delete mode 100644 test/ganache/scenarios.json delete mode 100755 test/ganache/test.sh delete mode 100644 test/gcovr/scenarios.json delete mode 100755 test/gcovr/test.sh delete mode 100755 test/gcovr/test_debian.sh delete mode 100755 test/gcovr/test_specific_version.sh delete mode 100644 test/gdbgui/scenarios.json delete mode 100755 test/gdbgui/test.sh delete mode 100644 test/gh-cli/scenarios.json delete mode 100755 test/gh-cli/test_defaults_alpine.sh delete mode 100755 test/gh-cli/test_defaults_debian.sh delete mode 100644 test/gh-release/scenarios.json delete mode 100755 test/gh-release/test_act.sh delete mode 100755 test/gh-release/test_apiops.sh delete mode 100755 test/gh-release/test_defaults_alpine.sh delete mode 100755 test/gh-release/test_defaults_debian.sh delete mode 100755 test/gh-release/test_etcd.sh delete mode 100755 test/gh-release/test_no_git.sh delete mode 100755 test/gh-release/test_powershell.sh delete mode 100644 test/git-lfs/scenarios.json delete mode 100755 test/git-lfs/test_defaults_debian.sh delete mode 100644 test/gitmux/scenarios.json delete mode 100755 test/gitmux/test_defaults_debian.sh delete mode 100644 test/gitomatic/scenarios.json delete mode 100755 test/gitomatic/test_defaults_debian.sh delete mode 100644 test/gitsign-credential-cache/scenarios.json delete mode 100755 test/gitsign-credential-cache/test_defaults_debian.sh delete mode 100644 test/gitsign/scenarios.json delete mode 100755 test/gitsign/test_defaults_debian.sh delete mode 100644 test/gitty/scenarios.json delete mode 100755 test/gitty/test_defaults_debian.sh delete mode 100644 test/glances/scenarios.json delete mode 100755 test/glances/test.sh delete mode 100644 test/gleam/scenarios.json delete mode 100755 test/gleam/test_defaults_debian.sh delete mode 100644 test/go-task/scenarios.json delete mode 100755 test/go-task/test_defaults_debian.sh delete mode 100644 test/graalvm-asdf/scenarios.json delete mode 100755 test/graalvm-asdf/test.sh delete mode 100644 test/gradle-sdkman/scenarios.json delete mode 100755 test/gradle-sdkman/test.sh delete mode 100644 test/gradleprofiler-sdkman/scenarios.json delete mode 100755 test/gradleprofiler-sdkman/test.sh delete mode 100644 test/grails-sdkman/scenarios.json delete mode 100755 test/grails-sdkman/test.sh delete mode 100644 test/graphite-exporter/scenarios.json delete mode 100755 test/graphite-exporter/test_defaults_debian.sh delete mode 100644 test/groovy-sdkman/scenarios.json delete mode 100755 test/groovy-sdkman/test.sh delete mode 100644 test/groovyserv-sdkman/scenarios.json delete mode 100755 test/groovyserv-sdkman/test.sh delete mode 100644 test/grpcurl-asdf/scenarios.json delete mode 100755 test/grpcurl-asdf/test.sh delete mode 100644 test/grype/scenarios.json delete mode 100755 test/grype/test_defaults_debian.sh delete mode 100644 test/gulp-cli/scenarios.json delete mode 100755 test/gulp-cli/test.sh delete mode 100644 test/hadoop-sdkman/scenarios.json delete mode 100755 test/hadoop-sdkman/test.sh delete mode 100644 test/haskell/scenarios.json delete mode 100755 test/haskell/test.sh delete mode 100755 test/haskell/test_libraries.sh delete mode 100644 test/hatch/scenarios.json delete mode 100755 test/hatch/test.sh delete mode 100644 test/haxe-asdf/scenarios.json delete mode 100755 test/haxe-asdf/test.sh delete mode 100644 test/helmfile/scenarios.json delete mode 100755 test/helmfile/test.sh delete mode 100755 test/helmfile/test_debian.sh delete mode 100755 test/helmfile/test_specific_version.sh delete mode 100644 test/heroku-cli/scenarios.json delete mode 100755 test/heroku-cli/test.sh delete mode 100644 test/heroku-cli/test_non_latest_version.sh delete mode 100644 test/homebrew-package/scenarios.json delete mode 100755 test/homebrew-package/test_file_limit.sh delete mode 100755 test/homebrew-package/test_latest.sh delete mode 100755 test/homebrew-package/test_specific_version.sh delete mode 100755 test/homebrew-package/test_universal.sh delete mode 100644 test/hotel/scenarios.json delete mode 100755 test/hotel/test.sh delete mode 100644 test/how2/scenarios.json delete mode 100755 test/how2/test_defaults_debian.sh delete mode 100644 test/http-server/scenarios.json delete mode 100755 test/http-server/test.sh delete mode 100644 test/http4k-sdkman/scenarios.json delete mode 100755 test/http4k-sdkman/test.sh delete mode 100644 test/hyperfine/scenarios.json delete mode 100755 test/hyperfine/test_defaults_debian.sh delete mode 100644 test/immuadmin-fips/scenarios.json delete mode 100755 test/immuadmin-fips/test_defaults_debian.sh delete mode 100644 test/immuadmin/scenarios.json delete mode 100755 test/immuadmin/test_defaults_debian.sh delete mode 100644 test/immuclient-fips/scenarios.json delete mode 100755 test/immuclient-fips/test_defaults_debian.sh delete mode 100644 test/immuclient/scenarios.json delete mode 100755 test/immuclient/test_defaults_debian.sh delete mode 100644 test/immudb-fips/scenarios.json delete mode 100755 test/immudb-fips/test_defaults_debian.sh delete mode 100644 test/immudb/scenarios.json delete mode 100755 test/immudb/test_defaults_debian.sh delete mode 100644 test/infracost/scenarios.json delete mode 100755 test/infracost/test_defaults_debian.sh delete mode 100644 test/infrastructor-sdkman/scenarios.json delete mode 100755 test/infrastructor-sdkman/test.sh delete mode 100644 test/invoke/scenarios.json delete mode 100755 test/invoke/test_debian.sh delete mode 100755 test/invoke/test_ubuntu.sh delete mode 100644 test/ionic-cli/scenarios.json delete mode 100755 test/ionic-cli/test.sh delete mode 100644 test/isort/scenarios.json delete mode 100755 test/isort/test.sh delete mode 100644 test/istioctl/scenarios.json delete mode 100755 test/istioctl/test_defaults_debian.sh delete mode 100644 test/jake/scenarios.json delete mode 100755 test/jake/test_defaults.sh delete mode 100644 test/jbake-sdkman/scenarios.json delete mode 100755 test/jbake-sdkman/test.sh delete mode 100644 test/jbang-sdkman/scenarios.json delete mode 100755 test/jbang-sdkman/test.sh delete mode 100644 test/jenkinsx-cli/scenarios.json delete mode 100755 test/jenkinsx-cli/test_defaults_debian.sh delete mode 100644 test/jest/scenarios.json delete mode 100755 test/jest/test.sh delete mode 100644 test/jfrog-cli-homebrew/scenarios.json delete mode 100755 test/jfrog-cli-homebrew/test.sh delete mode 100644 test/jfrog-cli-npm/scenarios.json delete mode 100755 test/jfrog-cli-npm/test.sh delete mode 100644 test/jfrog-cli/scenarios.json delete mode 100755 test/jfrog-cli/test.sh delete mode 100644 test/jira-cli/scenarios.json delete mode 100755 test/jira-cli/test_defaults_debian.sh delete mode 100644 test/jmc-sdkman/scenarios.json delete mode 100755 test/jmc-sdkman/test.sh delete mode 100644 test/jmeter-sdkman/scenarios.json delete mode 100755 test/jmeter-sdkman/test.sh delete mode 100644 test/joern-sdkman/scenarios.json delete mode 100755 test/joern-sdkman/test.sh delete mode 100644 test/jreleaser-sdkman/scenarios.json delete mode 100755 test/jreleaser-sdkman/test.sh delete mode 100644 test/jrnl/scenarios.json delete mode 100755 test/jrnl/test.sh delete mode 100644 test/jshint/scenarios.json delete mode 100755 test/jshint/test.sh delete mode 100644 test/jsii-diff/scenarios.json delete mode 100755 test/jsii-diff/test.sh delete mode 100644 test/jsii-pacmak/scenarios.json delete mode 100755 test/jsii-pacmak/test.sh delete mode 100644 test/jsii-rosetta/scenarios.json delete mode 100755 test/jsii-rosetta/test.sh delete mode 100644 test/jsii/scenarios.json delete mode 100755 test/jsii/test.sh delete mode 100644 test/json-server/scenarios.json delete mode 100755 test/json-server/test.sh delete mode 100644 test/k2tf/scenarios.json delete mode 100755 test/k2tf/test_defaults_debian.sh delete mode 100644 test/k6/scenarios.json delete mode 100755 test/k6/test_defaults_debian.sh delete mode 100644 test/karaf-sdkman/scenarios.json delete mode 100755 test/karaf-sdkman/test.sh delete mode 100644 test/keepercommander/scenarios.json delete mode 100755 test/keepercommander/test.sh delete mode 100644 test/ki-sdkman/scenarios.json delete mode 100755 test/ki-sdkman/test.sh delete mode 100644 test/kind/scenarios.json delete mode 100755 test/kind/test_defaults_debian.sh delete mode 100644 test/kobweb-sdkman/scenarios.json delete mode 100755 test/kobweb-sdkman/test.sh delete mode 100644 test/kops/scenarios.json delete mode 100755 test/kops/test_defaults_debian.sh delete mode 100644 test/kotlin-sdkman/scenarios.json delete mode 100755 test/kotlin-sdkman/test.sh delete mode 100755 test/kotlin-sdkman/test_debian.sh delete mode 100755 test/kotlin-sdkman/test_universal.sh delete mode 100644 test/kscript-sdkman/scenarios.json delete mode 100755 test/kscript-sdkman/test.sh delete mode 100644 test/kubeclarity-cli/scenarios.json delete mode 100755 test/kubeclarity-cli/test_defaults_debian.sh delete mode 100644 test/kubectl-asdf/scenarios.json delete mode 100755 test/kubectl-asdf/test.sh delete mode 100644 test/kubectx-kubens/scenarios.json delete mode 100755 test/kubectx-kubens/test.sh delete mode 100644 test/kubie/scenarios.json delete mode 100755 test/kubie/test.sh delete mode 100644 test/kyverno-cli/scenarios.json delete mode 100755 test/kyverno-cli/test_defaults_debian.sh delete mode 100644 test/lastpass-cli-homebrew/scenarios.json delete mode 100755 test/lastpass-cli-homebrew/test.sh delete mode 100644 test/layrry-sdkman/scenarios.json delete mode 100755 test/layrry-sdkman/test.sh delete mode 100644 test/lean-asdf/scenarios.json delete mode 100755 test/lean-asdf/test.sh delete mode 100644 test/lefthook-asdf/scenarios.json delete mode 100755 test/lefthook-asdf/test.sh delete mode 100644 test/leiningen-sdkman/scenarios.json delete mode 100755 test/leiningen-sdkman/test.sh delete mode 100644 test/lektor/scenarios.json delete mode 100755 test/lektor/test.sh delete mode 100644 test/lerna-npm/scenarios.json delete mode 100755 test/lerna-npm/test.sh delete mode 100644 test/less/scenarios.json delete mode 100755 test/less/test.sh delete mode 100644 test/levant-asdf/scenarios.json delete mode 100755 test/levant-asdf/test.sh delete mode 100644 test/lighthouse-cli/scenarios.json delete mode 100755 test/lighthouse-cli/test.sh delete mode 100644 test/linkerd2-cli-edge/scenarios.json delete mode 100755 test/linkerd2-cli-edge/test_defaults_debian.sh delete mode 100644 test/linkerd2-cli-stable/scenarios.json delete mode 100755 test/linkerd2-cli-stable/test_defaults_debian.sh delete mode 100644 test/linode-cli/scenarios.json delete mode 100755 test/linode-cli/test.sh delete mode 100644 test/lite-server/scenarios.json delete mode 100755 test/lite-server/test.sh delete mode 100644 test/live-server/scenarios.json delete mode 100755 test/live-server/test.sh delete mode 100644 test/localstack/scenarios.json delete mode 100755 test/localstack/test.sh delete mode 100755 test/localstack/test_with_python_feature.sh delete mode 100644 test/localtunnel-npm/scenarios.json delete mode 100755 test/localtunnel-npm/test.sh delete mode 100644 test/mackup/scenarios.json delete mode 100755 test/mackup/test.sh delete mode 100644 test/markdownlint-cli/scenarios.json delete mode 100755 test/markdownlint-cli/test.sh delete mode 100644 test/markdownlint-cli2/scenarios.json delete mode 100755 test/markdownlint-cli2/test.sh delete mode 100644 test/maven-sdkman/scenarios.json delete mode 100755 test/maven-sdkman/test.sh delete mode 100644 test/meltano/scenarios.json delete mode 100755 test/meltano/test.sh delete mode 100644 test/memcached-exporter/scenarios.json delete mode 100755 test/memcached-exporter/test_defaults_debian.sh delete mode 100644 test/micro/scenarios.json delete mode 100755 test/micro/test_defaults_debian.sh delete mode 100644 test/micronaut-sdkman/scenarios.json delete mode 100755 test/micronaut-sdkman/test.sh delete mode 100644 test/mise/scenarios.json delete mode 100755 test/mise/test.sh delete mode 100644 test/mise/ubuntu_with_version.sh delete mode 100644 test/mitmproxy/scenarios.json delete mode 100755 test/mitmproxy/test.sh delete mode 100644 test/mkcert/scenarios.json delete mode 100755 test/mkcert/test_defaults_debian.sh delete mode 100644 test/mkdocs/scenarios.json delete mode 100755 test/mkdocs/test.sh delete mode 100755 test/mkdocs/test_ubuntu.sh delete mode 100644 test/mlocate-apt-get/scenarios.json delete mode 100755 test/mlocate-apt-get/test.sh delete mode 100644 test/mocha/scenarios.json delete mode 100755 test/mocha/test.sh delete mode 100644 test/mongodb-atlas-cli-homebrew/scenarios.json delete mode 100755 test/mongodb-atlas-cli-homebrew/test.sh delete mode 100644 test/mongosh-homebrew/scenarios.json delete mode 100755 test/mongosh-homebrew/test.sh delete mode 100644 test/mosh-apt-get/scenarios.json delete mode 100755 test/mosh-apt-get/test.sh delete mode 100644 test/mosh-homebrew/scenarios.json delete mode 100755 test/mosh-homebrew/test.sh delete mode 100644 test/mulefd-sdkman/scenarios.json delete mode 100755 test/mulefd-sdkman/test.sh delete mode 100644 test/mvnd-sdkman/scenarios.json delete mode 100755 test/mvnd-sdkman/test.sh delete mode 100644 test/mybatis-sdkman/scenarios.json delete mode 100755 test/mybatis-sdkman/test.sh delete mode 100644 test/mypy/scenarios.json delete mode 100755 test/mypy/test.sh delete mode 100644 test/mysql-homebrew/scenarios.json delete mode 100755 test/mysql-homebrew/test.sh delete mode 100644 test/mysqld-exporter/scenarios.json delete mode 100755 test/mysqld-exporter/test_defaults_debian.sh delete mode 100644 test/n8n/scenarios.json delete mode 100755 test/n8n/test.sh delete mode 100644 test/namespace-cli/scenarios.json delete mode 100644 test/namespace-cli/test.sh delete mode 100644 test/namespace-cli/test_specific_version.sh delete mode 100644 test/nancy/scenarios.json delete mode 100755 test/nancy/test_defaults_debian.sh delete mode 100644 test/navi/scenarios.json delete mode 100755 test/navi/test_defaults_debian.sh delete mode 100644 test/ncdu/scenarios.json delete mode 100755 test/ncdu/test_defaults_debian.sh delete mode 100644 test/neko-asdf/scenarios.json delete mode 100755 test/neko-asdf/test.sh delete mode 100644 test/neo4jmigrations-sdkman/scenarios.json delete mode 100755 test/neo4jmigrations-sdkman/test.sh delete mode 100644 test/neofetch/scenarios.json delete mode 100755 test/neofetch/test_defaults_debian.sh delete mode 100644 test/neovim-apt-get/scenarios.json delete mode 100755 test/neovim-apt-get/test_debian.sh delete mode 100755 test/neovim-apt-get/test_ubuntu.sh delete mode 100644 test/neovim-homebrew/scenarios.json delete mode 100755 test/neovim-homebrew/test.sh delete mode 100644 test/nestjs-cli/scenarios.json delete mode 100755 test/nestjs-cli/test.sh delete mode 100644 test/netdata/scenarios.json delete mode 100755 test/netdata/test.sh delete mode 100644 test/netlify-cli/scenarios.json delete mode 100755 test/netlify-cli/test.sh delete mode 100644 test/nim-asdf/scenarios.json delete mode 100755 test/nim-asdf/test.sh delete mode 100644 test/ninja-asdf/scenarios.json delete mode 100755 test/ninja-asdf/test.sh delete mode 100644 test/nmap-apt-get/scenarios.json delete mode 100755 test/nmap-apt-get/test.sh delete mode 100644 test/nmap-homebrew/scenarios.json delete mode 100755 test/nmap-homebrew/test.sh delete mode 100644 test/nnn-apt-get/scenarios.json delete mode 100755 test/nnn-apt-get/test.sh delete mode 100644 test/nnn-homebrew/scenarios.json delete mode 100755 test/nnn-homebrew/test.sh delete mode 100644 test/node-asdf/scenarios.json delete mode 100755 test/node-asdf/test.sh delete mode 100644 test/node-exporter/scenarios.json delete mode 100755 test/node-exporter/test_defaults_debian.sh delete mode 100644 test/nomad-asdf/scenarios.json delete mode 100755 test/nomad-asdf/test.sh delete mode 100644 test/nox/scenarios.json delete mode 100755 test/nox/test.sh delete mode 100755 test/npm-package/install_angular_cli.sh delete mode 100755 test/npm-package/install_typescript.sh delete mode 100644 test/npm-package/scenarios.json delete mode 100755 test/npm-package/test_existing_installation.sh delete mode 100755 test/npm-package/test_existing_installation_different_version.sh delete mode 100644 test/npm-packages/scenarios.json delete mode 100755 test/npm-packages/test.sh delete mode 100755 test/npm-packages/test_debian_versions.sh delete mode 100644 test/nx-npm/scenarios.json delete mode 100755 test/nx-npm/test.sh delete mode 100644 test/ocaml-asdf/scenarios.json delete mode 100755 test/ocaml-asdf/test.sh delete mode 100644 test/ocaml-opam/scenarios.json delete mode 100755 test/ocaml-opam/test_debian.sh delete mode 100755 test/ocaml-opam/test_no_platform_tools.sh delete mode 100755 test/ocaml-opam/test_specific_version.sh delete mode 100644 test/oclif/scenarios.json delete mode 100755 test/oclif/test.sh delete mode 100644 test/opa/scenarios.json delete mode 100755 test/opa/test_defaults_debian.sh delete mode 100644 test/opam-asdf/scenarios.json delete mode 100755 test/opam-asdf/test.sh delete mode 100644 test/ory-cli/scenarios.json delete mode 100755 test/ory-cli/test_defaults_debian.sh delete mode 100644 test/ory-hydra/scenarios.json delete mode 100755 test/ory-hydra/test_defaults_debian.sh delete mode 100644 test/ory-kratos/scenarios.json delete mode 100755 test/ory-kratos/test_defaults_debian.sh delete mode 100644 test/ory-oathkeeper/scenarios.json delete mode 100755 test/ory-oathkeeper/test_defaults_debian.sh delete mode 100644 test/packer-asdf/scenarios.json delete mode 100755 test/packer-asdf/test.sh delete mode 100644 test/pandoc/scenarios.json delete mode 100755 test/pandoc/test_defaults_debian.sh delete mode 100644 test/pass-apt-get/scenarios.json delete mode 100755 test/pass-apt-get/test.sh delete mode 100644 test/pdm/scenarios.json delete mode 100755 test/pdm/test.sh delete mode 100644 test/peco-asdf/scenarios.json delete mode 100755 test/peco-asdf/test.sh delete mode 100644 test/perl-asdf/scenarios.json delete mode 100755 test/perl-asdf/test.sh delete mode 100644 test/pierrot-sdkman/scenarios.json delete mode 100755 test/pierrot-sdkman/test.sh delete mode 100644 test/pipenv/scenarios.json delete mode 100755 test/pipenv/test.sh delete mode 100755 test/pipx-package/install_ansible_specific_version.sh delete mode 100755 test/pipx-package/install_black.sh delete mode 100755 test/pipx-package/install_black_custom_interpreter.sh delete mode 100755 test/pipx-package/install_black_debian_bookworm.sh delete mode 100755 test/pipx-package/install_precommit.sh delete mode 100644 test/pipx-package/scenarios.json delete mode 100644 test/pnpm/scenarios.json delete mode 100755 test/pnpm/test.sh delete mode 100755 test/pnpm/test_existing_but_different_version.sh delete mode 100644 test/podman-homebrew/scenarios.json delete mode 100755 test/podman-homebrew/test.sh delete mode 100644 test/poetry/scenarios.json delete mode 100755 test/poetry/test.sh delete mode 100644 test/pomchecker-sdkman/scenarios.json delete mode 100755 test/pomchecker-sdkman/test.sh delete mode 100644 test/poppler-utils-apt-get/scenarios.json delete mode 100755 test/poppler-utils-apt-get/test.sh delete mode 100644 test/powerbi-visuals-tools/scenarios.json delete mode 100755 test/powerbi-visuals-tools/test.sh delete mode 100644 test/powershell/scenarios.json delete mode 100755 test/powershell/test_defaults_debian.sh delete mode 100644 test/pre-commit/scenarios.json delete mode 100755 test/pre-commit/test.sh delete mode 100644 test/prettier/scenarios.json delete mode 100755 test/prettier/test.sh delete mode 100644 test/prisma/scenarios.json delete mode 100755 test/prisma/test.sh delete mode 100644 test/projen/scenarios.json delete mode 100755 test/projen/test.sh delete mode 100644 test/prometheus/scenarios.json delete mode 100755 test/prometheus/test_defaults_debian.sh delete mode 100644 test/promlens/scenarios.json delete mode 100755 test/promlens/test_defaults_debian.sh delete mode 100644 test/protoc-asdf/scenarios.json delete mode 100755 test/protoc-asdf/test_latest_version.sh delete mode 100755 test/protoc-asdf/test_specified_version.sh delete mode 100644 test/protoc/scenarios.json delete mode 100755 test/protoc/test_defaults_debian.sh delete mode 100644 test/pulumi/scenarios.json delete mode 100755 test/pulumi/test.sh delete mode 100644 test/pushgateway/scenarios.json delete mode 100755 test/pushgateway/test_defaults_debian.sh delete mode 100644 test/pyinfra/scenarios.json delete mode 100755 test/pyinfra/test.sh delete mode 100644 test/pylint/scenarios.json delete mode 100755 test/pylint/test.sh delete mode 100644 test/pyoxidizer/scenarios.json delete mode 100755 test/pyoxidizer/test_defaults_debian.sh delete mode 100644 test/pyscaffold/scenarios.json delete mode 100755 test/pyscaffold/test.sh delete mode 100644 test/qrcode/scenarios.json delete mode 100755 test/qrcode/test.sh delete mode 100644 test/quarkus-sdkman/scenarios.json delete mode 100755 test/quarkus-sdkman/test.sh delete mode 100644 test/quasar-cli/scenarios.json delete mode 100755 test/quasar-cli/test.sh delete mode 100644 test/raku-asdf/scenarios.json delete mode 100755 test/raku-asdf/test.sh delete mode 100644 test/rclone/scenarios.json delete mode 100755 test/rclone/test_defaults_debian.sh delete mode 100644 test/redis-homebrew/scenarios.json delete mode 100755 test/redis-homebrew/test.sh delete mode 100644 test/rekor-cli/scenarios.json delete mode 100755 test/rekor-cli/test_defaults_debian.sh delete mode 100644 test/renovate-cli/scenarios.json delete mode 100755 test/renovate-cli/test.sh delete mode 100644 test/ripgrep/scenarios.json delete mode 100755 test/ripgrep/test_defaults_debian.sh delete mode 100644 test/rollup/scenarios.json delete mode 100755 test/rollup/test.sh delete mode 100644 test/ruby-asdf/scenarios.json delete mode 100755 test/ruby-asdf/test.sh delete mode 100644 test/ruff/scenarios.json delete mode 100755 test/ruff/test.sh delete mode 100644 test/salesforce-cli/scenarios.json delete mode 100755 test/salesforce-cli/test.sh delete mode 100644 test/salesforce-sfdx/scenarios.json delete mode 100755 test/salesforce-sfdx/test.sh delete mode 100644 test/sanity-cli/scenarios.json delete mode 100755 test/sanity-cli/test.sh delete mode 100644 test/sap-piper/scenarios.json delete mode 100755 test/sap-piper/test_defaults_debian.sh delete mode 100644 test/sbt-sdkman/scenarios.json delete mode 100755 test/sbt-sdkman/test.sh delete mode 100644 test/scala-sdkman/scenarios.json delete mode 100755 test/scala-sdkman/test.sh delete mode 100644 test/scalacli-sdkman/scenarios.json delete mode 100755 test/scalacli-sdkman/test.sh delete mode 100644 test/scancode-toolkit/scenarios.json delete mode 100755 test/scancode-toolkit/test_defaults.sh delete mode 100644 test/schemacrawler-sdkman/scenarios.json delete mode 100755 test/schemacrawler-sdkman/test.sh delete mode 100644 test/sentinel-asdf/scenarios.json delete mode 100755 test/sentinel-asdf/test.sh delete mode 100644 test/serf-asdf/scenarios.json delete mode 100755 test/serf-asdf/test.sh delete mode 100644 test/shfmt/scenarios.json delete mode 100755 test/shfmt/test_defaults_debian.sh delete mode 100644 test/shopify-cli/scenarios.json delete mode 100755 test/shopify-cli/test.sh delete mode 100644 test/sigstore-python/scenarios.json delete mode 100755 test/sigstore-python/test_defaults.sh delete mode 100644 test/snyk-cli/scenarios.json delete mode 100755 test/snyk-cli/test.sh delete mode 100644 test/sops/scenarios.json delete mode 100755 test/sops/test_defaults_debian.sh delete mode 100644 test/spacectl/scenarios.json delete mode 100755 test/spacectl/test_defaults_debian.sh delete mode 100644 test/spark-sdkman/scenarios.json delete mode 100755 test/spark-sdkman/test.sh delete mode 100644 test/spicedb/scenarios.json delete mode 100755 test/spicedb/test_defaults_debian.sh delete mode 100644 test/springboot-sdkman/scenarios.json delete mode 100755 test/springboot-sdkman/test.sh delete mode 100644 test/sqlfluff/scenarios.json delete mode 100755 test/sqlfluff/test.sh delete mode 100644 test/squarespace-server/scenarios.json delete mode 100755 test/squarespace-server/test.sh delete mode 100644 test/sshoogr-sdkman/scenarios.json delete mode 100755 test/sshoogr-sdkman/test.sh delete mode 100644 test/starship-homebrew/scenarios.json delete mode 100755 test/starship-homebrew/test.sh delete mode 100644 test/starship/scenarios.json delete mode 100755 test/starship/test_defaults_debian.sh delete mode 100644 test/statsd-exporter/scenarios.json delete mode 100755 test/statsd-exporter/test_defaults_debian.sh delete mode 100644 test/stew/scenarios.json delete mode 100755 test/stew/test_defaults_debian.sh delete mode 100644 test/supabase-cli/scenarios.json delete mode 100755 test/supabase-cli/test_defaults_debian.sh delete mode 100644 test/surge-cli/scenarios.json delete mode 100755 test/surge-cli/test.sh delete mode 100644 test/sv2v/scenarios.json delete mode 100755 test/sv2v/test_defaults_debian.sh delete mode 100644 test/svu-asdf/scenarios.json delete mode 100755 test/svu-asdf/test.sh delete mode 100644 test/syft/scenarios.json delete mode 100755 test/syft/test_defaults_debian.sh delete mode 100644 test/syntaqx-serve/scenarios.json delete mode 100755 test/syntaqx-serve/test_defaults_debian.sh delete mode 100644 test/tailscale/scenarios.json delete mode 100755 test/tailscale/test.sh delete mode 100644 test/talosctl/scenarios.json delete mode 100644 test/talosctl/test.sh delete mode 100644 test/talosctl/test_specific_version.sh delete mode 100644 test/taxi-sdkman/scenarios.json delete mode 100755 test/taxi-sdkman/test.sh delete mode 100644 test/tea/scenarios.json delete mode 100755 test/tea/test_defaults_debian.sh delete mode 100644 test/tekton-cli/scenarios.json delete mode 100755 test/tekton-cli/test_defaults_debian.sh delete mode 100644 test/tempo/scenarios.json delete mode 100755 test/tempo/test_defaults_debian.sh delete mode 100644 test/temporal-cli/scenarios.json delete mode 100755 test/temporal-cli/test_defaults_debian.sh delete mode 100644 test/terracognita/scenarios.json delete mode 100755 test/terracognita/test_defaults_debian.sh delete mode 100644 test/terraform-asdf/scenarios.json delete mode 100755 test/terraform-asdf/test.sh delete mode 100644 test/terraform-docs/scenarios.json delete mode 100755 test/terraform-docs/test_defaults_debian.sh delete mode 100644 test/terraform-ls-asdf/scenarios.json delete mode 100755 test/terraform-ls-asdf/test.sh delete mode 100644 test/terraformer/scenarios.json delete mode 100755 test/terraformer/test_defaults_debian.sh delete mode 100644 test/terragrunt/scenarios.json delete mode 100755 test/terragrunt/test_defaults_debian.sh delete mode 100644 test/terramate/scenarios.json delete mode 100755 test/terramate/test_defaults_debian.sh delete mode 100644 test/terrascan/scenarios.json delete mode 100755 test/terrascan/test.sh delete mode 100644 test/tfc-agent-asdf/scenarios.json delete mode 100755 test/tfc-agent-asdf/test.sh delete mode 100644 test/tfenv-homebrew/scenarios.json delete mode 100755 test/tfenv-homebrew/test.sh delete mode 100644 test/tfsec/scenarios.json delete mode 100755 test/tfsec/test_defaults_debian.sh delete mode 100644 test/tfswitch/scenarios.json delete mode 100755 test/tfswitch/test.sh delete mode 100644 test/tldr/scenarios.json delete mode 100755 test/tldr/test.sh delete mode 100644 test/tmate/scenarios.json delete mode 100755 test/tmate/test_defaults_debian.sh delete mode 100644 test/tmux-apt-get/scenarios.json delete mode 100755 test/tmux-apt-get/test.sh delete mode 100644 test/tmux-homebrew/scenarios.json delete mode 100755 test/tmux-homebrew/test.sh delete mode 100644 test/tomcat-sdkman/scenarios.json delete mode 100755 test/tomcat-sdkman/test.sh delete mode 100644 test/tooljet-cli/scenarios.json delete mode 100755 test/tooljet-cli/test.sh delete mode 100644 test/toolkit-sdkman/scenarios.json delete mode 100755 test/toolkit-sdkman/test.sh delete mode 100644 test/tox/scenarios.json delete mode 100755 test/tox/test.sh delete mode 100644 test/tridentctl-asdf/scenarios.json delete mode 100755 test/tridentctl-asdf/test.sh delete mode 100644 test/truffle/scenarios.json delete mode 100755 test/truffle/test.sh delete mode 100644 test/ts-node/scenarios.json delete mode 100755 test/ts-node/test.sh delete mode 100644 test/tsx/scenarios.json delete mode 100755 test/tsx/test.sh delete mode 100644 test/turborepo-npm/scenarios.json delete mode 100755 test/turborepo-npm/test.sh delete mode 100644 test/twine/scenarios.json delete mode 100755 test/twine/test.sh delete mode 100644 test/typescript/scenarios.json delete mode 100755 test/typescript/test.sh delete mode 100644 test/typst/scenarios.json delete mode 100755 test/typst/test_defaults_debian.sh delete mode 100644 test/ufmt/scenarios.json delete mode 100755 test/ufmt/test.sh delete mode 100644 test/upx/scenarios.json delete mode 100755 test/upx/test_defaults_debian.sh delete mode 100644 test/vault-asdf/scenarios.json delete mode 100755 test/vault-asdf/test.sh delete mode 100644 test/vercel-cli/scenarios.json delete mode 100755 test/vercel-cli/test.sh delete mode 100644 test/vercel-ncc/scenarios.json delete mode 100755 test/vercel-ncc/test.sh delete mode 100644 test/vercel-pkg/scenarios.json delete mode 100755 test/vercel-pkg/test.sh delete mode 100644 test/vercel-release/scenarios.json delete mode 100755 test/vercel-release/test.sh delete mode 100644 test/vercel-serve/scenarios.json delete mode 100755 test/vercel-serve/test.sh delete mode 100644 test/vscode-cli/scenarios.json delete mode 100644 test/vscode-cli/test.sh delete mode 100644 test/vscode-server/scenarios.json delete mode 100644 test/vscode-server/test.sh delete mode 100644 test/vtop/scenarios.json delete mode 100755 test/vtop/test.sh delete mode 100644 test/vue-cli/scenarios.json delete mode 100755 test/vue-cli/test.sh delete mode 100644 test/vulture/scenarios.json delete mode 100755 test/vulture/test.sh delete mode 100644 test/w3m-apt-get/scenarios.json delete mode 100755 test/w3m-apt-get/test.sh delete mode 100644 test/w3m-homebrew/scenarios.json delete mode 100755 test/w3m-homebrew/test.sh delete mode 100644 test/waypoint-asdf/scenarios.json delete mode 100755 test/waypoint-asdf/test.sh delete mode 100644 test/webi-packages/scenarios.json delete mode 100755 test/webi-packages/test.sh delete mode 100755 test/webi-packages/test_alpine.sh delete mode 100644 test/webtau-sdkman/scenarios.json delete mode 100755 test/webtau-sdkman/test.sh delete mode 100644 test/wget-apt-get/scenarios.json delete mode 100755 test/wget-apt-get/test.sh delete mode 100644 test/wget-homebrew/scenarios.json delete mode 100755 test/wget-homebrew/test.sh delete mode 100644 test/wireguard-apt-get/scenarios.json delete mode 100755 test/wireguard-apt-get/test.sh delete mode 100644 test/xmrig/scenarios.json delete mode 100755 test/xmrig/test_defaults_debian.sh delete mode 100644 test/xonsh/scenarios.json delete mode 100755 test/xonsh/test.sh delete mode 100644 test/yamllint/scenarios.json delete mode 100755 test/yamllint/test.sh delete mode 100644 test/yapf/scenarios.json delete mode 100755 test/yapf/test.sh delete mode 100644 test/youtube-dl/scenarios.json delete mode 100755 test/youtube-dl/test.sh delete mode 100644 test/youtubeuploader/scenarios.json delete mode 100755 test/youtubeuploader/test_defaults_debian.sh delete mode 100644 test/yt-dlp/scenarios.json delete mode 100755 test/yt-dlp/test.sh delete mode 100644 test/zig/scenarios.json delete mode 100755 test/zig/test.sh delete mode 100755 test/zsh-plugins/install_plugins.sh delete mode 100755 test/zsh-plugins/install_plugins_on_plain_ubuntu.sh delete mode 100755 test/zsh-plugins/multiple-omz-plugins.sh delete mode 100644 test/zsh-plugins/scenarios.json diff --git a/src/act-asdf/README.md b/src/act-asdf/README.md deleted file mode 100644 index b9be9bd5f..000000000 --- a/src/act-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# act (via asdf) (act-asdf) - -Act is an open source project that allows you to run your github flow locally. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/act-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/act-asdf/devcontainer-feature.json b/src/act-asdf/devcontainer-feature.json deleted file mode 100644 index 9ec431ee0..000000000 --- a/src/act-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "act-asdf", - "version": "2.0.14", - "name": "act (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/act-asdf", - "description": "Act is an open source project that allows you to run your github flow locally.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/act-asdf/install.sh b/src/act-asdf/install.sh deleted file mode 100755 index e820ca190..000000000 --- a/src/act-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='act' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/act-asdf/library_scripts.sh b/src/act-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/act-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/act/README.md b/src/act/README.md deleted file mode 100644 index 207d3eccd..000000000 --- a/src/act/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# act (via Github Releases) (act) - -Act is an open source project that allows you to run your github flow locally. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/act:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/act/devcontainer-feature.json b/src/act/devcontainer-feature.json deleted file mode 100644 index 25e0c891b..000000000 --- a/src/act/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "act", - "version": "1.0.14", - "name": "act (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/act", - "description": "Act is an open source project that allows you to run your github flow locally.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/act/install.sh b/src/act/install.sh deleted file mode 100755 index 9b9221d32..000000000 --- a/src/act/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='nektos/act' --option binaryNames='act' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/act/library_scripts.sh b/src/act/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/act/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/actionlint/README.md b/src/actionlint/README.md deleted file mode 100644 index 3635b59ec..000000000 --- a/src/actionlint/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# actionlint (via Github Releases) (actionlint) - -Static checker for GitHub Actions workflow files. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/actionlint:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/actionlint/devcontainer-feature.json b/src/actionlint/devcontainer-feature.json deleted file mode 100644 index 4b765b037..000000000 --- a/src/actionlint/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "actionlint", - "version": "1.0.6", - "name": "actionlint (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/actionlint", - "description": "Static checker for GitHub Actions workflow files.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/actionlint/install.sh b/src/actionlint/install.sh deleted file mode 100755 index 11c5f3f4e..000000000 --- a/src/actionlint/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='rhysd/actionlint' --option binaryNames='actionlint' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/actionlint/library_scripts.sh b/src/actionlint/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/actionlint/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/actions-runner/README.md b/src/actions-runner/README.md deleted file mode 100644 index 3aa601743..000000000 --- a/src/actions-runner/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# GitHub Actions Runner (actions-runner) - -The runner is the application that runs a job from a GitHub Actions workflow. It is used by GitHub Actions in the hosted virtual environments, or you can self-host the runner in your own environment. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/actions-runner:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| dotnetVersion | Select the dotnet version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/actions-runner/devcontainer-feature.json b/src/actions-runner/devcontainer-feature.json deleted file mode 100644 index 995a40b34..000000000 --- a/src/actions-runner/devcontainer-feature.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "actions-runner", - "version": "1.0.12", - "name": "GitHub Actions Runner", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/actions-runner", - "description": "The runner is the application that runs a job from a GitHub Actions workflow. It is used by GitHub Actions in the hosted virtual environments, or you can self-host the runner in your own environment.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "dotnetVersion": { - "default": "latest", - "description": "Select the dotnet version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release", - "ghcr.io/devcontainers/features/dotnet" - ] -} \ No newline at end of file diff --git a/src/actions-runner/install.sh b/src/actions-runner/install.sh deleted file mode 100755 index 3c64d0926..000000000 --- a/src/actions-runner/install.sh +++ /dev/null @@ -1,40 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/dotnet:1.1.3" \ - --option dotnetVersion="$DOTNETVERSION" --option runtimeOnly='true' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='actions/runner' --option binaryNames='run.sh' --option binLocation='$_REMOTE_USER_HOME/.local/bin' --option version="$VERSION" --option libLocation='$_REMOTE_USER_HOME' --option libName='actions-runner' --option assetRegex='^(?!.*(noruntime))(?!.*(trimmedpackages))(?!.*(noexternals))' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='rm /home/vscode/.local/bin/run.sh && \ - chown -hR ${_REMOTE_USER}:${_REMOTE_USER} $_REMOTE_USER_HOME/actions-runner' - - - -echo "GitHub Actions Runner now installed at $_REMOTE_USER_HOME/actions-runner" - diff --git a/src/actions-runner/library_scripts.sh b/src/actions-runner/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/actions-runner/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/activemq-sdkman/README.md b/src/activemq-sdkman/README.md deleted file mode 100644 index 890f17781..000000000 --- a/src/activemq-sdkman/README.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Apache ActiveMQ (Classic) (via SDKMAN) (activemq-sdkman) - -Apache ActiveMQ® is a popular open source, multi-protocol, Java-based message -broker. It supports industry standard protocols so users get the benefits of -client choices across a broad range of languages and platforms. Connect from -clients written in JavaScript, C, C++, Python, .Net, and more. Integrate your -multi-platform applications using the ubiquitous AMQP protocol. Exchange -messages between your web applications using STOMP over websockets. Manage your -IoT devices using MQTT. Support your existing JMS infrastructure and beyond. -ActiveMQ offers the power and flexibility to support any messaging use-case. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/activemq-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Apache ActiveMQ (Classic) to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/activemq-sdkman/devcontainer-feature.json b/src/activemq-sdkman/devcontainer-feature.json deleted file mode 100644 index 4b14ca02b..000000000 --- a/src/activemq-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "activemq-sdkman", - "version": "2.0.15", - "name": "Apache ActiveMQ (Classic) (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/activemq-sdkman", - "description": "Apache ActiveMQ\u00ae is a popular open source, multi-protocol, Java-based message\nbroker. It supports industry standard protocols so users get the benefits of\nclient choices across a broad range of languages and platforms. Connect from\nclients written in JavaScript, C, C++, Python, .Net, and more. Integrate your\nmulti-platform applications using the ubiquitous AMQP protocol. Exchange\nmessages between your web applications using STOMP over websockets. Manage your\nIoT devices using MQTT. Support your existing JMS infrastructure and beyond.\nActiveMQ offers the power and flexibility to support any messaging use-case.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Apache ActiveMQ (Classic) to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/activemq-sdkman/install.sh b/src/activemq-sdkman/install.sh deleted file mode 100755 index 03ebfc233..000000000 --- a/src/activemq-sdkman/install.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='activemq' --option version="$VERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='chmod +x -R /usr/local/sdkman/candidates/activemq/current/bin' - - -echo 'Done!' - diff --git a/src/activemq-sdkman/library_scripts.sh b/src/activemq-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/activemq-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/age/README.md b/src/age/README.md deleted file mode 100644 index 6f26c1d15..000000000 --- a/src/age/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# age (via Github Releases) (age) - -age is a simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/age:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/age/devcontainer-feature.json b/src/age/devcontainer-feature.json deleted file mode 100644 index 20df4686f..000000000 --- a/src/age/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "age", - "version": "1.0.15", - "name": "age (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/age", - "description": "age is a simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/age/install.sh b/src/age/install.sh deleted file mode 100755 index f27160a64..000000000 --- a/src/age/install.sh +++ /dev/null @@ -1,18 +0,0 @@ -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='filosottile/age' --option binaryNames='age' --option version="$VERSION" --option assetRegex='.*(.tar.gz)$' - -echo 'Done!' diff --git a/src/age/library_scripts.sh b/src/age/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/age/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/akamai-cli/README.md b/src/akamai-cli/README.md deleted file mode 100644 index 24be7098e..000000000 --- a/src/akamai-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Akamai CLI (via Github Releases) (akamai-cli) - -Use Akamai CLI to configure Akamai platform and products directly from the command line. You can install ready-to-use product packages or build your own custom solutions to manage from CLI. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/akamai-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/akamai-cli/devcontainer-feature.json b/src/akamai-cli/devcontainer-feature.json deleted file mode 100644 index 3ade1d378..000000000 --- a/src/akamai-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "akamai-cli", - "version": "1.0.5", - "name": "Akamai CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/akamai-cli", - "description": "Use Akamai CLI to configure Akamai platform and products directly from the command line. You can install ready-to-use product packages or build your own custom solutions to manage from CLI.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/akamai-cli/install.sh b/src/akamai-cli/install.sh deleted file mode 100755 index 73af1851f..000000000 --- a/src/akamai-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='akamai/cli' --option binaryNames='akamai' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/akamai-cli/library_scripts.sh b/src/akamai-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/akamai-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/alertmanager/README.md b/src/alertmanager/README.md deleted file mode 100644 index 9c10765be..000000000 --- a/src/alertmanager/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus Alertmanager (via Github Releases) (alertmanager) - -The Alertmanager handles alerts sent by client applications such as the Prometheus server. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/alertmanager:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/alertmanager/devcontainer-feature.json b/src/alertmanager/devcontainer-feature.json deleted file mode 100644 index 6449693b6..000000000 --- a/src/alertmanager/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "alertmanager", - "version": "1.0.2", - "name": "Prometheus Alertmanager (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/alertmanager", - "description": "The Alertmanager handles alerts sent by client applications such as the Prometheus server.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/alertmanager/install.sh b/src/alertmanager/install.sh deleted file mode 100755 index 4e4752b88..000000000 --- a/src/alertmanager/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/alertmanager' --option binaryNames='alertmanager' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/alertmanager/library_scripts.sh b/src/alertmanager/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/alertmanager/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/alp-asdf/README.md b/src/alp-asdf/README.md deleted file mode 100644 index cb0046bdf..000000000 --- a/src/alp-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# alp (via asdf) (alp-asdf) - -Installs alp - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/alp-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/alp-asdf/devcontainer-feature.json b/src/alp-asdf/devcontainer-feature.json deleted file mode 100644 index 65f88d40e..000000000 --- a/src/alp-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "alp-asdf", - "version": "2.0.15", - "name": "alp (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/alp-asdf", - "description": "Installs alp", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/alp-asdf/install.sh b/src/alp-asdf/install.sh deleted file mode 100755 index d35c1af10..000000000 --- a/src/alp-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='alp' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/alp-asdf/library_scripts.sh b/src/alp-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/alp-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/amplify-cli/README.md b/src/amplify-cli/README.md deleted file mode 100644 index 586999009..000000000 --- a/src/amplify-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# AWS Amplify CLI (via npm) (amplify-cli) - -The Amplify Command Line Interface (CLI) is a unified toolchain to create AWS cloud services for your app. Let's go ahead and install the Amplify CLI. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/amplify-cli:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of AWS Amplify CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/amplify-cli/devcontainer-feature.json b/src/amplify-cli/devcontainer-feature.json deleted file mode 100644 index 640741ff0..000000000 --- a/src/amplify-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "amplify-cli", - "version": "2.0.15", - "name": "AWS Amplify CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/amplify-cli", - "description": "The Amplify Command Line Interface (CLI) is a unified toolchain to create AWS cloud services for your app. Let's go ahead and install the Amplify CLI.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of AWS Amplify CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/amplify-cli/install.sh b/src/amplify-cli/install.sh deleted file mode 100755 index 7c3ca93e9..000000000 --- a/src/amplify-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@aws-amplify/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/amplify-cli/library_scripts.sh b/src/amplify-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/amplify-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/angular-cli/README.md b/src/angular-cli/README.md deleted file mode 100644 index c5c60b857..000000000 --- a/src/angular-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Angular CLI (via npm) (angular-cli) - -Angular CLI is a command-line interface tool that you use to initialize, develop, scaffold, and maintain Angular applications directly from a command shell. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/angular-cli:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/angular-cli/devcontainer-feature.json b/src/angular-cli/devcontainer-feature.json deleted file mode 100644 index 5c2456cfa..000000000 --- a/src/angular-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "angular-cli", - "version": "2.0.15", - "name": "Angular CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/angular-cli", - "description": "Angular CLI is a command-line interface tool that you use to initialize, develop, scaffold, and maintain Angular applications directly from a command shell.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/angular-cli/install.sh b/src/angular-cli/install.sh deleted file mode 100755 index 074e7870b..000000000 --- a/src/angular-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@angular/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/angular-cli/library_scripts.sh b/src/angular-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/angular-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ansible/README.md b/src/ansible/README.md deleted file mode 100644 index aa75a4285..000000000 --- a/src/ansible/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Ansible (via pipx) (ansible) - -Ansible is a suite of software tools that enables infrastructure as code. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ansible:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| injections | Space delimitered list of python packages to inject into the main package env | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ansible/devcontainer-feature.json b/src/ansible/devcontainer-feature.json deleted file mode 100644 index 17f56e7ac..000000000 --- a/src/ansible/devcontainer-feature.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "id": "ansible", - "version": "2.1.0", - "name": "Ansible (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ansible", - "description": "Ansible is a suite of software tools that enables infrastructure as code.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "injections": { - "default": "", - "description": "Space delimitered list of python packages to inject into the ansible package env", - "proposals": [ - "hcloud", - "hcloud requests" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/ansible/install.sh b/src/ansible/install.sh deleted file mode 100755 index 4f49988da..000000000 --- a/src/ansible/install.sh +++ /dev/null @@ -1,18 +0,0 @@ -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.9" \ - --option package='ansible-core' --option injections="ansible $INJECTIONS" --option version="$VERSION" --option includeDeps="true" - -echo 'Done!' diff --git a/src/ansible/library_scripts.sh b/src/ansible/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ansible/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ant-sdkman/README.md b/src/ant-sdkman/README.md deleted file mode 100644 index 40fb5c786..000000000 --- a/src/ant-sdkman/README.md +++ /dev/null @@ -1,33 +0,0 @@ - -# Ant (via SDKMAN) (ant-sdkman) - -Apache Ant is a Java library and command-line tool whose mission is to drive -processes described in build files as targets and extension points dependent -upon each other. The main known usage of Ant is the build of Java applications. -Ant supplies a number of built-in tasks allowing to compile, assemble, test and -run Java applications. Ant can also be used effectively to build non Java -applications, for instance C or C++ applications. More generally, Ant can be -used to pilot any type of process which can be described in terms of targets and -tasks. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ant-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ant-sdkman/devcontainer-feature.json b/src/ant-sdkman/devcontainer-feature.json deleted file mode 100644 index 763a0c04a..000000000 --- a/src/ant-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "ant-sdkman", - "version": "2.0.15", - "name": "Ant (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ant-sdkman", - "description": "Apache Ant is a Java library and command-line tool whose mission is to drive\nprocesses described in build files as targets and extension points dependent\nupon each other. The main known usage of Ant is the build of Java applications.\nAnt supplies a number of built-in tasks allowing to compile, assemble, test and\nrun Java applications. Ant can also be used effectively to build non Java\napplications, for instance C or C++ applications. More generally, Ant can be\nused to pilot any type of process which can be described in terms of targets and\ntasks.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/ant-sdkman/install.sh b/src/ant-sdkman/install.sh deleted file mode 100755 index 657701a05..000000000 --- a/src/ant-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='ant' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/ant-sdkman/library_scripts.sh b/src/ant-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ant-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/apko/README.md b/src/apko/README.md deleted file mode 100644 index 2911098f4..000000000 --- a/src/apko/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# apko (via Github Releases) (apko) - -apko is an apk-based OCI image builder - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/apko:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/apko/devcontainer-feature.json b/src/apko/devcontainer-feature.json deleted file mode 100644 index ef7b6f89d..000000000 --- a/src/apko/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "apko", - "version": "1.0.9", - "name": "apko (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/apko", - "description": "apko is an apk-based OCI image builder", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/apko/install.sh b/src/apko/install.sh deleted file mode 100755 index 83edace7e..000000000 --- a/src/apko/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='chainguard-dev/apko' --option binaryNames='apko' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/apko/library_scripts.sh b/src/apko/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/apko/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/apt-get-packages/README.md b/src/apt-get-packages/README.md deleted file mode 100644 index 514c65d15..000000000 --- a/src/apt-get-packages/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# apt-get packages (for Debian/Ubuntu) (apt-get-packages) - -apt-get is a command line tool for interacting with the Advanced Package Tool (APT) library (a package management system for Linux distributions). - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/apt-get-packages:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| packages | Comma separated list of packages. | string | - | -| ppas | Comma separated list of required ppas (not recommended) | string | - | -| clean_ppas | If ppas used, remove them after usage in order to increase safety | boolean | true | -| preserve_apt_list | Preserving the existing apt list (the result of apt-get update) will decrease container layer size (but will require a re-update of the packages database on next install) | boolean | true | -| force_ppas_on_non_ubuntu | Installing ppas on a non-ubuntu distro (eg. debian) is discouraged | boolean | false | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/apt-get-packages/devcontainer-feature.json b/src/apt-get-packages/devcontainer-feature.json deleted file mode 100644 index 07a47b305..000000000 --- a/src/apt-get-packages/devcontainer-feature.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "id": "apt-get-packages", - "version": "1.0.7", - "name": "apt-get packages (for Debian/Ubuntu)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/apt-get-packages", - "description": "apt-get is a command line tool for interacting with the Advanced Package Tool (APT) library (a package management system for Linux distributions).", - "options": { - "packages": { - "default": "", - "description": "Comma separated list of packages.", - "proposals": [ - "htop", - "build-essential", - "curl,ca-certificates" - ], - "type": "string" - }, - "ppas": { - "default": "", - "description": "Comma separated list of required ppas (not recommended)", - "proposals": [ - "ppa:deadsnakes/ppa" - ], - "type": "string" - }, - "clean_ppas": { - "default": true, - "description": "If ppas used, remove them after usage in order to increase safety", - "type": "boolean" - }, - "preserve_apt_list": { - "default": true, - "description": "Preserving the existing apt list (the result of apt-get update) will decrease container layer size (but will require a re-update of the packages database on next install)", - "type": "boolean" - }, - "force_ppas_on_non_ubuntu": { - "default": false, - "description": "Installing ppas on a non-ubuntu distro (eg. debian) is discouraged", - "type": "boolean" - } - }, - "installsAfter": [] -} \ No newline at end of file diff --git a/src/apt-get-packages/install.sh b/src/apt-get-packages/install.sh deleted file mode 100755 index d5fceda6a..000000000 --- a/src/apt-get-packages/install.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.46" - - - - -ppas_cmd=$(if ! [[ -z $PPAS ]]; then echo --ppas "${PPAS}" ; fi) -force_ppas_cmd=$(if [[ $FORCE_PPAS_ON_NON_UBUNTU == "true" ]]; then echo --force-ppas-on-non-ubuntu; else echo --no-force-ppas-on-non-ubuntu ; fi) -clean_ppas_cmd=$(if [[ $CLEAN_PPAS == "true" ]]; then echo --clean-ppas; else echo --no-clean-ppas ; fi) -preserve_apt_list_cmd=$(if [[ $PRESERVE_APT_LIST == "true" ]]; then echo --preserve-apt-list; else echo --no-preserve-apt-list ; fi) - -$nanolayer_location install apt-get "$PACKAGES" \ - $ppas_cmd \ - $force_ppas_cmd \ - $clean_ppas_cmd \ - $preserve_apt_list_cmd \ - - diff --git a/src/apt-get-packages/library_scripts.sh b/src/apt-get-packages/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/apt-get-packages/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/apt-packages/README.md b/src/apt-packages/README.md deleted file mode 100644 index 1bc68a803..000000000 --- a/src/apt-packages/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# apt packages (for Debian/Ubuntu) (apt-packages) - -Advanced package tool, or APT, is a free-software user interface that works with core libraries to handle the installation and removal of software on Debian and Debian-based Linux distributions. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/apt-packages:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| packages | Comma separated list of packages. | string | - | -| ppas | Comma separated list of required ppas (not recommended) | string | - | -| clean_ppas | If ppas used, remove them after usage in order to increase safety | boolean | true | -| preserve_apt_list | Preserving the existing apt list (the result of apt-get update) will decrease container layer size (but will require a re-update of the packages database on next install) | boolean | true | -| force_ppas_on_non_ubuntu | Installing ppas on a non-ubuntu distro (eg. debian) is discouraged | boolean | false | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/apt-packages/devcontainer-feature.json b/src/apt-packages/devcontainer-feature.json deleted file mode 100644 index c47af11d8..000000000 --- a/src/apt-packages/devcontainer-feature.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "id": "apt-packages", - "version": "1.0.5", - "name": "apt packages (for Debian/Ubuntu)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/apt-packages", - "description": "Advanced package tool, or APT, is a free-software user interface that works with core libraries to handle the installation and removal of software on Debian and Debian-based Linux distributions.", - "options": { - "packages": { - "default": "", - "description": "Comma separated list of packages.", - "proposals": [ - "htop", - "build-essential", - "curl,ca-certificates" - ], - "type": "string" - }, - "ppas": { - "default": "", - "description": "Comma separated list of required ppas (not recommended)", - "proposals": [ - "ppa:deadsnakes/ppa" - ], - "type": "string" - }, - "clean_ppas": { - "default": true, - "description": "If ppas used, remove them after usage in order to increase safety", - "type": "boolean" - }, - "preserve_apt_list": { - "default": true, - "description": "Preserving the existing apt list (the result of apt-get update) will decrease container layer size (but will require a re-update of the packages database on next install)", - "type": "boolean" - }, - "force_ppas_on_non_ubuntu": { - "default": false, - "description": "Installing ppas on a non-ubuntu distro (eg. debian) is discouraged", - "type": "boolean" - } - }, - "installsAfter": [] -} \ No newline at end of file diff --git a/src/apt-packages/install.sh b/src/apt-packages/install.sh deleted file mode 100755 index 105b3ac53..000000000 --- a/src/apt-packages/install.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.46" - - - - -ppas_cmd=$(if ! [[ -z $PPAS ]]; then echo --ppas "${PPAS}" ; fi) -force_ppas_cmd=$(if [[ $FORCE_PPAS_ON_NON_UBUNTU == "true" ]]; then echo --force-ppas-on-non-ubuntu; else echo --no-force-ppas-on-non-ubuntu ; fi) -clean_ppas_cmd=$(if [[ $CLEAN_PPAS == "true" ]]; then echo --clean-ppas; else echo --no-clean-ppas ; fi) -preserve_apt_list_cmd=$(if [[ $PRESERVE_APT_LIST == "true" ]]; then echo --preserve-apt-list; else echo --no-preserve-apt-list ; fi) - -$nanolayer_location install apt "$PACKAGES" \ - $ppas_cmd \ - $force_ppas_cmd \ - $clean_ppas_cmd \ - $preserve_apt_list_cmd \ - - diff --git a/src/apt-packages/library_scripts.sh b/src/apt-packages/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/apt-packages/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/argo-cd/README.md b/src/argo-cd/README.md deleted file mode 100644 index a73eff5cf..000000000 --- a/src/argo-cd/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ArgoCD CLI (via Github Releases) (argo-cd) - -Declarative GitOps CD for Kubernetes - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/argo-cd:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the Argo CD CLI version you would like to install | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/argo-cd/devcontainer-feature.json b/src/argo-cd/devcontainer-feature.json deleted file mode 100644 index e4f4bfd5b..000000000 --- a/src/argo-cd/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "ArgoCD CLI (via Github Releases)", - "id": "argo-cd", - "version": "1.0.2", - "description": "Declarative GitOps CD for Kubernetes", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/argo-cd", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "2.5.0" - ], - "default": "latest", - "description": "Select the Argo CD CLI version you would like to install" - } - } -} \ No newline at end of file diff --git a/src/argo-cd/install.sh b/src/argo-cd/install.sh deleted file mode 100755 index 59af15f26..000000000 --- a/src/argo-cd/install.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash - -ARGOCD_VERSION="${VERSION:-"latest"}" - -set -e - -# Clean up -rm -rf /var/lib/apt/lists/* - -architecture="$(uname -m)" -case ${architecture} in -x86_64) architecture="amd64" ;; -aarch64 | armv8*) architecture="arm64" ;; -aarch32 | armv7* | armvhf*) architecture="arm" ;; -i?86) architecture="386" ;; -*) - echo "(!) Architecture ${architecture} unsupported" - exit 1 - ;; -esac - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# Figure out correct version of a three part version number is not passed -find_version_from_git_tags() { - local variable_name=$1 - local requested_version=${!variable_name} - if [ "${requested_version}" = "none" ]; then return; fi - local repository=$2 - local prefix=${3:-"tags/v"} - local separator=${4:-"."} - local last_part_optional=${5:-"false"} - if [ "$(echo "${requested_version}" | grep -o "." | wc -l)" != "2" ]; then - local escaped_separator=${separator//./\\.} - local last_part - if [ "${last_part_optional}" = "true" ]; then - last_part="(${escaped_separator}[0-9]+)?" - else - last_part="${escaped_separator}[0-9]+" - fi - local regex="${prefix}\\K[0-9]+${escaped_separator}[0-9]+${last_part}$" - local version_list="$(git ls-remote --tags ${repository} | grep -oP "${regex}" | tr -d ' ' | tr "${separator}" "." | sort -rV)" - if [ "${requested_version}" = "latest" ] || [ "${requested_version}" = "current" ] || [ "${requested_version}" = "lts" ]; then - declare -g ${variable_name}="$(echo "${version_list}" | head -n 1)" - else - set +e - declare -g ${variable_name}="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|$)")" - set -e - fi - fi - if [ -z "${!variable_name}" ] || ! echo "${version_list}" | grep "^${!variable_name//./\\.}$" >/dev/null 2>&1; then - echo -e "Invalid ${variable_name} value: ${requested_version}\nValid values:\n${version_list}" >&2 - exit 1 - fi - echo "${variable_name}=${!variable_name}" -} - -# make sure we have curl -check_packages ca-certificates curl - -# make sure version is available -find_version_from_git_tags ARGOCD_VERSION 'https://github.com/argoproj/argo-cd' - -# download and install binary -ARGOCD_FILENAME=argocd-linux-${architecture} -curl -sSL https://github.com/argoproj/argo-cd/releases/download/v${ARGOCD_VERSION}/${ARGOCD_FILENAME} -o argocd-linux -install -m 555 argocd-linux /usr/local/bin/argocd -rm argocd-linux - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/argo-workflows/README.md b/src/argo-workflows/README.md deleted file mode 100644 index 1fd16a095..000000000 --- a/src/argo-workflows/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Argo Workflows CLI (via Github Releases) (argo-workflows) - -Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/argo-workflows:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the Argo Workflows CLI version you would like to install | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/argo-workflows/devcontainer-feature.json b/src/argo-workflows/devcontainer-feature.json deleted file mode 100644 index f59eaa73b..000000000 --- a/src/argo-workflows/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Argo Workflows CLI (via Github Releases)", - "id": "argo-workflows", - "version": "1.0.2", - "description": "Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/argo-workflows", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "3.4.2" - ], - "default": "latest", - "description": "Select the Argo Workflows CLI version you would like to install" - } - } -} \ No newline at end of file diff --git a/src/argo-workflows/install.sh b/src/argo-workflows/install.sh deleted file mode 100755 index f9095ab81..000000000 --- a/src/argo-workflows/install.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env bash - -ARGO_WORKFLOWS_VERSION="${VERSION:-"latest"}" - -set -e - -# Clean up -rm -rf /var/lib/apt/lists/* - -architecture="$(uname -m)" -case ${architecture} in -x86_64) architecture="amd64" ;; -aarch64 | armv8*) architecture="arm64" ;; -aarch32 | armv7* | armvhf*) architecture="arm" ;; -i?86) architecture="386" ;; -*) - echo "(!) Architecture ${architecture} unsupported" - exit 1 - ;; -esac - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# Figure out correct version of a three part version number is not passed -find_version_from_git_tags() { - local variable_name=$1 - local requested_version=${!variable_name} - if [ "${requested_version}" = "none" ]; then return; fi - local repository=$2 - local prefix=${3:-"tags/v"} - local separator=${4:-"."} - local last_part_optional=${5:-"false"} - if [ "$(echo "${requested_version}" | grep -o "." | wc -l)" != "2" ]; then - local escaped_separator=${separator//./\\.} - local last_part - if [ "${last_part_optional}" = "true" ]; then - last_part="(${escaped_separator}[0-9]+)?" - else - last_part="${escaped_separator}[0-9]+" - fi - local regex="${prefix}\\K[0-9]+${escaped_separator}[0-9]+${last_part}$" - local version_list="$(git ls-remote --tags ${repository} | grep -oP "${regex}" | tr -d ' ' | tr "${separator}" "." | sort -rV)" - if [ "${requested_version}" = "latest" ] || [ "${requested_version}" = "current" ] || [ "${requested_version}" = "lts" ]; then - declare -g ${variable_name}="$(echo "${version_list}" | head -n 1)" - else - set +e - declare -g ${variable_name}="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|$)")" - set -e - fi - fi - if [ -z "${!variable_name}" ] || ! echo "${version_list}" | grep "^${!variable_name//./\\.}$" >/dev/null 2>&1; then - echo -e "Invalid ${variable_name} value: ${requested_version}\nValid values:\n${version_list}" >&2 - exit 1 - fi - echo "${variable_name}=${!variable_name}" -} - -# make sure we have curl and gzip -check_packages ca-certificates curl gzip - -# make sure version is available -find_version_from_git_tags ARGO_WORKFLOWS_VERSION 'https://github.com/argoproj/argo-workflows' - -# download binary -ARGO_WORKFLOWS_FILENAME=argo-linux-${architecture} -ARGO_WORKFLOWS_FILENAME_GZ=${ARGO_WORKFLOWS_FILENAME}.gz - -curl -sSL https://github.com/argoproj/argo-workflows/releases/download/v${ARGO_WORKFLOWS_VERSION}/${ARGO_WORKFLOWS_FILENAME_GZ} -o "${ARGO_WORKFLOWS_FILENAME_GZ}" - -# Unzip -gunzip "${ARGO_WORKFLOWS_FILENAME_GZ}" - -# Make binary executable -chmod +x $ARGO_WORKFLOWS_FILENAME - -mv ./$ARGO_WORKFLOWS_FILENAME /usr/local/bin/argo - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/asciidoctorj-sdkman/README.md b/src/asciidoctorj-sdkman/README.md deleted file mode 100644 index 54452edea..000000000 --- a/src/asciidoctorj-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# AsciidoctorJ (via SDKMAN) (asciidoctorj-sdkman) - -AsciidoctorJ is the official library for running Asciidoctor on the JVM. Using -AsciidoctorJ, you can convert AsciiDoc content or analyze the structure of a -parsed AsciiDoc document from Java and other JVM languages. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/asciidoctorj-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/asciidoctorj-sdkman/devcontainer-feature.json b/src/asciidoctorj-sdkman/devcontainer-feature.json deleted file mode 100644 index 2b041a989..000000000 --- a/src/asciidoctorj-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "asciidoctorj-sdkman", - "version": "2.0.15", - "name": "AsciidoctorJ (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/asciidoctorj-sdkman", - "description": "AsciidoctorJ is the official library for running Asciidoctor on the JVM. Using\nAsciidoctorJ, you can convert AsciiDoc content or analyze the structure of a\nparsed AsciiDoc document from Java and other JVM languages.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/asciidoctorj-sdkman/install.sh b/src/asciidoctorj-sdkman/install.sh deleted file mode 100755 index bf7275441..000000000 --- a/src/asciidoctorj-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='asciidoctorj' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/asciidoctorj-sdkman/library_scripts.sh b/src/asciidoctorj-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/asciidoctorj-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/asdf-package/README.md b/src/asdf-package/README.md deleted file mode 100644 index 82b78eb51..000000000 --- a/src/asdf-package/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# asdf package (asdf-package) - -Installs an asdf package. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/asdf-package:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| plugin | Select the asdf plugin to install. | string | - | -| version | Select the version of the asdf plugin to install. | string | latest | -| pluginRepo | Select the asdf plugin repo to install (can remain empty in order to use the plugin short-name index https://github.com/asdf-vm/asdf-plugins) | string | - | -| latestVersionPattern | this will be used as argument for 'asdf latest ' command. If none given the default asdf of '[0-9]' will be used. | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/asdf-package/devcontainer-feature.json b/src/asdf-package/devcontainer-feature.json deleted file mode 100644 index 3d2fe6537..000000000 --- a/src/asdf-package/devcontainer-feature.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "asdf package", - "id": "asdf-package", - "version": "1.0.9", - "description": "Installs an asdf package.", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/asdf-package", - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ], - "options": { - "plugin": { - "type": "string", - "proposals": [ - "act", - "nomad" - ], - "default": "", - "description": "Select the asdf plugin to install." - }, - "version": { - "type": "string", - "proposals": [ - "latest" - ], - "default": "latest", - "description": "Select the version of the asdf plugin to install." - }, - "pluginRepo": { - "type": "string", - "proposals": [ - "https://github.com/grimoh/asdf-act.git", - "https://github.com/asdf-community/asdf-hashicorp.git" - ], - "default": "", - "description": "Select the asdf plugin repo to install (can remain empty in order to use the plugin short-name index https://github.com/asdf-vm/asdf-plugins)" - }, - "latestVersionPattern": { - "type": "string", - "proposals": [ - "[0-9]" - ], - "default": "", - "description": "this will be used as argument for 'asdf latest ' command. If none given the default asdf of '[0-9]' will be used." - } - } -} \ No newline at end of file diff --git a/src/asdf-package/install.sh b/src/asdf-package/install.sh deleted file mode 100755 index 95dfe16c1..000000000 --- a/src/asdf-package/install.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/usr/bin/env bash -# This is part of devcontainers-extra script library -# source: https://github.com/devcontainers-extra/features -set -ex - -PLUGIN=${PLUGIN:-""} -VERSION=${VERSION:-"latest"} -PLUGINREPO=${PLUGINREPO:-""} -LATESTVERSIONPATTERN=${LATESTVERSIONPATTERN:-""} - -# Clean up -rm -rf /var/lib/apt/lists/* - -if [ -z "$PLUGIN" ]; then - echo -e "'plugin' variable is empty, skipping" - exit 0 -fi - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as - root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -check_alpine_packages() { - apk add -v --no-cache "$@" -} - -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -updaterc() { - if cat /etc/os-release | grep "ID_LIKE=.*alpine.*\|ID=.*alpine.*" ; then - echo "Updating /etc/profile" - echo -e "$1" >>/etc/profile - fi - if [[ "$(cat /etc/bash.bashrc)" != *"$1"* ]]; then - echo "Updating /etc/bash.bashrc" - echo -e "$1" >>/etc/bash.bashrc - fi - if [ -f "/etc/zsh/zshrc" ] && [[ "$(cat /etc/zsh/zshrc)" != *"$1"* ]]; then - echo "Updating /etc/zsh/zshrc" - echo -e "$1" >>/etc/zsh/zshrc - fi -} - -install_via_asdf() { - PLUGIN=$1 - VERSION=$2 - REPO=$3 - - # install git and curl if does not exists - if cat /etc/os-release | grep "ID_LIKE=.*alpine.*\|ID=.*alpine.*" ; then - check_alpine_packages curl git ca-certificates - elif cat /etc/os-release | grep "ID_LIKE=.*debian.*\|ID=.*debian.*"; then - check_packages curl git ca-certificates - fi - - - # asdf may be installed somewhere on the machine, but we need it to be accessible to the remote user - # the code bellow will return 2 only when asdf is available, and 1 otherwise - set +e - su - "$_REMOTE_USER" </dev/null 2>&1; then - exit 2 - fi - exit 1 -EOF - exit_code=$? - set -e - - if [ "${exit_code}" -eq 2 ]; then - # asdf already available to remote user, use it - su - "$_REMOTE_USER" </dev/null 2>&1; then - echo "$PLUGIN already exists - skipping adding it" - else - asdf plugin add "$PLUGIN" "$REPO" - fi - - if [ "${VERSION}" = "latest" ] ; then - resolved_version=$(asdf latest "$PLUGIN" "$LATESTVERSIONPATTERN") - else - resolved_version=$VERSION - fi - - asdf install "$PLUGIN" "$resolved_version" - asdf global "$PLUGIN" "$resolved_version" -EOF - else - # asdf is not available to remote user, install it, then update rc files - - - su - "$_REMOTE_USER" <&1 - - . $_REMOTE_USER_HOME/.asdf/asdf.sh - if asdf list "$PLUGIN" >/dev/null 2>&1; then - echo "$PLUGIN already exists - skipping adding it" - else - asdf plugin add "$PLUGIN" "$REPO" - fi - -EOF - - - # I resolve the version like this because in bash resolving - # a subshell take prevedent to su, so we must resolve variables - # pre using them in final su clause. - # I hate bash. - resolved_version=$(su - "$_REMOTE_USER" < /dev/null 2>&1 - - if [ "${VERSION}" = "latest" ] ; then - asdf latest "$PLUGIN" "$LATESTVERSIONPATTERN" - else - echo $VERSION - fi -EOF -) - su - "$_REMOTE_USER" </dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/atlantis/README.md b/src/atlantis/README.md deleted file mode 100644 index 66272611a..000000000 --- a/src/atlantis/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Atlantis (via Github Releases) (atlantis) - -Atlantis is a self-hosted golang application that listens for Terraform pull request events via webhooks. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/atlantis:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/atlantis/devcontainer-feature.json b/src/atlantis/devcontainer-feature.json deleted file mode 100644 index 588b5c368..000000000 --- a/src/atlantis/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "atlantis", - "version": "1.0.5", - "name": "Atlantis (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/atlantis", - "description": "Atlantis is a self-hosted golang application that listens for Terraform pull request events via webhooks.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/atlantis/install.sh b/src/atlantis/install.sh deleted file mode 100755 index 8b95c2cbf..000000000 --- a/src/atlantis/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='runatlantis/atlantis' --option binaryNames='atlantis' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/atlantis/library_scripts.sh b/src/atlantis/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/atlantis/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/atmos/README.md b/src/atmos/README.md deleted file mode 100644 index 1aa3bfbd6..000000000 --- a/src/atmos/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Atmos (via Github Releases) (atmos) - -Atmos is a workflow automation tool. Atmos is lets you take a complex workflow and turn it into a parameterized CLI. You can then run the CLI anywhere, such as locally or in CI/CD. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/atmos:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/atmos/devcontainer-feature.json b/src/atmos/devcontainer-feature.json deleted file mode 100644 index 596a752d9..000000000 --- a/src/atmos/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "atmos", - "version": "1.0.5", - "name": "Atmos (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/atmos", - "description": "Atmos is a workflow automation tool. Atmos is lets you take a complex workflow and turn it into a parameterized CLI. You can then run the CLI anywhere, such as locally or in CI/CD.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/atmos/install.sh b/src/atmos/install.sh deleted file mode 100755 index 03580a48b..000000000 --- a/src/atmos/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='cloudposse/atmos' --option binaryNames='atmos' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/atmos/library_scripts.sh b/src/atmos/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/atmos/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/auditjs/README.md b/src/auditjs/README.md deleted file mode 100644 index 14503a0e6..000000000 --- a/src/auditjs/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# AuditJS (via npm) (auditjs) - -AuditJS audits an NPM package.json file to identify known vulnerabilities. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/auditjs:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/auditjs/devcontainer-feature.json b/src/auditjs/devcontainer-feature.json deleted file mode 100644 index 2b046d826..000000000 --- a/src/auditjs/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "auditjs", - "version": "1.0.5", - "name": "AuditJS (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/auditjs", - "description": "AuditJS audits an NPM package.json file to identify known vulnerabilities.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/auditjs/install.sh b/src/auditjs/install.sh deleted file mode 100755 index b99fca3d9..000000000 --- a/src/auditjs/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='auditjs' --option version="$VERSION" - - - -echo 'Done' - diff --git a/src/auditjs/library_scripts.sh b/src/auditjs/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/auditjs/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/autoenv/README.md b/src/autoenv/README.md deleted file mode 100644 index 344d9676b..000000000 --- a/src/autoenv/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Autoenv (via npm) (autoenv) - -Autoenv is a tool which automatically reads and setups configuration from a . env file when you cd to a directory. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/autoenv:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/autoenv/devcontainer-feature.json b/src/autoenv/devcontainer-feature.json deleted file mode 100644 index 12ea1dcc4..000000000 --- a/src/autoenv/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "autoenv", - "version": "1.0.5", - "name": "Autoenv (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/autoenv", - "description": "Autoenv is a tool which automatically reads and setups configuration from a . env file when you cd to a directory.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/autoenv/install.sh b/src/autoenv/install.sh deleted file mode 100755 index d693d596d..000000000 --- a/src/autoenv/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@hyperupcall/autoenv' --option version="$VERSION" - - - -echo 'In order to enable autoenv , execute `source $(npm root -g)/@hyperupcall/autoenv/activate.sh` in your shell' - diff --git a/src/autoenv/library_scripts.sh b/src/autoenv/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/autoenv/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/aws-cdk/README.md b/src/aws-cdk/README.md deleted file mode 100644 index 6f80b7422..000000000 --- a/src/aws-cdk/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# AWS Cloud Development Kit (AWS CDK) (via npm) (aws-cdk) - -AWS CDK is an open-source software development framework to define cloud infrastructure in code and provision it through AWS CloudFormation. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/aws-cdk:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of AWS Cloud Development Kit (AWS CDK) to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/aws-cdk/devcontainer-feature.json b/src/aws-cdk/devcontainer-feature.json deleted file mode 100644 index 8c5d78fa4..000000000 --- a/src/aws-cdk/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "aws-cdk", - "version": "2.0.15", - "name": "AWS Cloud Development Kit (AWS CDK) (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/aws-cdk", - "description": "AWS CDK is an open-source software development framework to define cloud infrastructure in code and provision it through AWS CloudFormation.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of AWS Cloud Development Kit (AWS CDK) to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/aws-cdk/install.sh b/src/aws-cdk/install.sh deleted file mode 100755 index babf6eb36..000000000 --- a/src/aws-cdk/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='aws-cdk' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/aws-cdk/library_scripts.sh b/src/aws-cdk/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/aws-cdk/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/aws-eb-cli/README.md b/src/aws-eb-cli/README.md deleted file mode 100644 index 289485bc0..000000000 --- a/src/aws-eb-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# aws-eb-cli (via pipx) (aws-eb-cli) - -AWS Elastic Beanstalk CLI. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/aws-eb-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of aws-eb-cli to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/aws-eb-cli/devcontainer-feature.json b/src/aws-eb-cli/devcontainer-feature.json deleted file mode 100644 index a31a6bb80..000000000 --- a/src/aws-eb-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "aws-eb-cli", - "version": "1.0.16", - "name": "aws-eb-cli (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/aws-eb-cli", - "description": "AWS Elastic Beanstalk CLI.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of aws-eb-cli to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/aws-eb-cli/install.sh b/src/aws-eb-cli/install.sh deleted file mode 100755 index 0cee70c3d..000000000 --- a/src/aws-eb-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='awsebcli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/aws-eb-cli/library_scripts.sh b/src/aws-eb-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/aws-eb-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/aws-sso-cli/README.md b/src/aws-sso-cli/README.md deleted file mode 100644 index 94bb6575b..000000000 --- a/src/aws-sso-cli/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# aws-sso-cli (via Github Releases) (aws-sso-cli) - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/aws-sso-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/aws-sso-cli/devcontainer-feature.json b/src/aws-sso-cli/devcontainer-feature.json deleted file mode 100644 index 359b99a4d..000000000 --- a/src/aws-sso-cli/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "aws-sso-cli", - "version": "1.0.0", - "name": "aws-sso-cli (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/aws-sso-cli", - "description": "", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [] -} \ No newline at end of file diff --git a/src/aws-sso-cli/install.sh b/src/aws-sso-cli/install.sh deleted file mode 100755 index c7c966c28..000000000 --- a/src/aws-sso-cli/install.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1" \ - --option repo='synfinatic/aws-sso-cli' --option binaryNames='aws-sso' \ - --option version="$VERSION" --option releaseTagRegex='^(?!.*beta).*$' - -echo 'Done!' diff --git a/src/aws-sso-cli/library_scripts.sh b/src/aws-sso-cli/library_scripts.sh deleted file mode 100644 index f6d0760d7..000000000 --- a/src/aws-sso-cli/library_scripts.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ]; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ]; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up() { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - if [ -x "/sbin/apk" ]; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} diff --git a/src/aztfexport/README.md b/src/aztfexport/README.md deleted file mode 100644 index 5e42671d8..000000000 --- a/src/aztfexport/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# aztfexport (via Github Releases) (aztfexport) - -aztfexport is a tool to bring existing Azure resources under Terraform's management. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/aztfexport:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/aztfexport/devcontainer-feature.json b/src/aztfexport/devcontainer-feature.json deleted file mode 100644 index 20840a2e6..000000000 --- a/src/aztfexport/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "aztfexport", - "version": "1.0.5", - "name": "aztfexport (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/aztfexport", - "description": "aztfexport is a tool to bring existing Azure resources under Terraform's management.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/aztfexport/install.sh b/src/aztfexport/install.sh deleted file mode 100755 index b121fc7e3..000000000 --- a/src/aztfexport/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='Azure/aztfexport' --option binaryNames='aztfexport' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/aztfexport/library_scripts.sh b/src/aztfexport/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/aztfexport/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/azure-apiops/README.md b/src/azure-apiops/README.md deleted file mode 100644 index 4a0678942..000000000 --- a/src/azure-apiops/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Azure Apiops (Extractor and Publisher) (via Github Releases) (azure-apiops) - -APIOps applies the concepts of GitOps and DevOps to API deployment. By using practices from these two methodologies, APIOps can enable everyone involved in the lifecycle of API design, development, and deployment with self-service and automated tools to ensure the quality of the specifications and APIs that theyre building. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/azure-apiops:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version you would like to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/azure-apiops/devcontainer-feature.json b/src/azure-apiops/devcontainer-feature.json deleted file mode 100644 index 8c7092753..000000000 --- a/src/azure-apiops/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "azure-apiops", - "version": "1.0.1", - "name": "Azure Apiops (Extractor and Publisher) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/azure-apiops", - "description": "APIOps applies the concepts of GitOps and DevOps to API deployment. By using practices from these two methodologies, APIOps can enable everyone involved in the lifecycle of API design, development, and deployment with self-service and automated tools to ensure the quality of the specifications and APIs that theyre building.", - "options": { - "version": { - "default": "latest", - "description": "Select the version you would like to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/azure-apiops/install.sh b/src/azure-apiops/install.sh deleted file mode 100755 index 21544a3f5..000000000 --- a/src/azure-apiops/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='Azure/apiops' --option binaryNames='extractor' --option assetRegex='^extractor-linux-x64.zip' --option version="$VERSION" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='Azure/apiops' --option binaryNames='publisher' --option assetRegex='^publisher-linux-x64.zip' --option version="$VERSION" - -echo 'Done!' diff --git a/src/azure-apiops/library_scripts.sh b/src/azure-apiops/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/azure-apiops/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ballerina-sdkman/README.md b/src/ballerina-sdkman/README.md deleted file mode 100644 index 90ea3dee6..000000000 --- a/src/ballerina-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Ballerina (via SDKMAN) (ballerina-sdkman) - -Open source programming language and platform for cloud-era application -programmers to easily write software that just works. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ballerina-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. (Notice Ballerina is supported only on JDK 1.8) | string | 8 | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ballerina-sdkman/devcontainer-feature.json b/src/ballerina-sdkman/devcontainer-feature.json deleted file mode 100644 index 1ea009dd9..000000000 --- a/src/ballerina-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id": "ballerina-sdkman", - "version": "2.0.15", - "name": "Ballerina (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ballerina-sdkman", - "description": "Open source programming language and platform for cloud-era application\nprogrammers to easily write software that just works.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "8", - "description": "Select or enter a JDK version to install. (Notice Ballerina is supported only on JDK 1.8)", - "proposals": [ - "none", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/ballerina-sdkman/install.sh b/src/ballerina-sdkman/install.sh deleted file mode 100755 index 3545dacdb..000000000 --- a/src/ballerina-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='ballerina' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/ballerina-sdkman/library_scripts.sh b/src/ballerina-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ballerina-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/bandit/README.md b/src/bandit/README.md deleted file mode 100644 index 2d6db8468..000000000 --- a/src/bandit/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Bandit (via pipx) (bandit) - -Bandit is a tool designed to find common security issues in Python code. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bandit:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/bandit/devcontainer-feature.json b/src/bandit/devcontainer-feature.json deleted file mode 100644 index c75e687ae..000000000 --- a/src/bandit/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "bandit", - "version": "2.0.17", - "name": "Bandit (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/bandit", - "description": "Bandit is a tool designed to find common security issues in Python code.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/bandit/install.sh b/src/bandit/install.sh deleted file mode 100755 index 3e27112d7..000000000 --- a/src/bandit/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='bandit' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/bandit/library_scripts.sh b/src/bandit/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/bandit/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/bartib/README.md b/src/bartib/README.md deleted file mode 100644 index 2b08765d5..000000000 --- a/src/bartib/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Bartib (via Github Releases) (bartib) - -Bartib is a simple timetracker for the command line. It saves a log of all tracked activities as a plaintext file and allows you to create flexible reports. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bartib:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/bartib/devcontainer-feature.json b/src/bartib/devcontainer-feature.json deleted file mode 100644 index 85ba35c60..000000000 --- a/src/bartib/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "bartib", - "version": "1.0.9", - "name": "Bartib (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/bartib", - "description": "Bartib is a simple timetracker for the command line. It saves a log of all tracked activities as a plaintext file and allows you to create flexible reports.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/bartib/install.sh b/src/bartib/install.sh deleted file mode 100755 index 4fbb142f3..000000000 --- a/src/bartib/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='nikolassv/bartib' --option binaryNames='bartib' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/bartib/library_scripts.sh b/src/bartib/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/bartib/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/bash-command/README.md b/src/bash-command/README.md deleted file mode 100644 index be91e04ad..000000000 --- a/src/bash-command/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Bash Command (bash-command) - -Executes a bash command - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bash-command:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| command | command to be executed (will be forwarded as is to a 'bash -c ' line) | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/bash-command/devcontainer-feature.json b/src/bash-command/devcontainer-feature.json deleted file mode 100644 index 36f7cc582..000000000 --- a/src/bash-command/devcontainer-feature.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Bash Command", - "id": "bash-command", - "version": "1.0.0", - "description": "Executes a bash command", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/bash-command", - "options": { - "command": { - "type": "string", - "proposals": [ - "echo hi!" - ], - "default": "", - "description": "command to be executed (will be forwarded as is to a 'bash -c ' line)" - } - } -} \ No newline at end of file diff --git a/src/bash-command/install.sh b/src/bash-command/install.sh deleted file mode 100755 index b79ab5e94..000000000 --- a/src/bash-command/install.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -COMMAND="${COMMAND:-""}" - -set -ex - -# Clean up -rm -rf /var/lib/apt/lists/* - -bash -c "${COMMAND}" - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/beehive/README.md b/src/beehive/README.md deleted file mode 100644 index b7c17816b..000000000 --- a/src/beehive/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Beehive (via Github Releases) (beehive) - -Beehive is an event and agent system, which allows you to create your own agents that perform automated tasks triggered by events and filters. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/beehive:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/beehive/devcontainer-feature.json b/src/beehive/devcontainer-feature.json deleted file mode 100644 index da4e80a1a..000000000 --- a/src/beehive/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "beehive", - "version": "1.0.14", - "name": "Beehive (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/beehive", - "description": "Beehive is an event and agent system, which allows you to create your own agents that perform automated tasks triggered by events and filters.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/beehive/install.sh b/src/beehive/install.sh deleted file mode 100755 index f773182b4..000000000 --- a/src/beehive/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='muesli/beehive' --option binaryNames='beehive' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/beehive/library_scripts.sh b/src/beehive/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/beehive/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/bikeshed/README.md b/src/bikeshed/README.md deleted file mode 100644 index ee2d85627..000000000 --- a/src/bikeshed/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Bikeshed (via pipx) (bikeshed) - -A preprocessor for anyone writing specifications that converts source files into actual specs. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bikeshed:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/bikeshed/devcontainer-feature.json b/src/bikeshed/devcontainer-feature.json deleted file mode 100644 index 7a856c1a3..000000000 --- a/src/bikeshed/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "bikeshed", - "version": "2.0.17", - "name": "Bikeshed (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/bikeshed", - "description": "A preprocessor for anyone writing specifications that converts source files into actual specs.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/bikeshed/install.sh b/src/bikeshed/install.sh deleted file mode 100755 index 16cd81c12..000000000 --- a/src/bikeshed/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='bikeshed' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/bikeshed/library_scripts.sh b/src/bikeshed/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/bikeshed/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/bin/README.md b/src/bin/README.md deleted file mode 100644 index 0e9b20abc..000000000 --- a/src/bin/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# bin (via Github Releases) (bin) - -bin is an effortless binary manager. It manages binary files downloaded from different sources. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bin:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/bin/devcontainer-feature.json b/src/bin/devcontainer-feature.json deleted file mode 100644 index f526a2c40..000000000 --- a/src/bin/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "bin", - "version": "1.0.14", - "name": "bin (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/bin", - "description": "bin is an effortless binary manager. It manages binary files downloaded from different sources.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/bin/install.sh b/src/bin/install.sh deleted file mode 100755 index 564ff8397..000000000 --- a/src/bin/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='marcosnils/bin' --option binaryNames='bin' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/bin/library_scripts.sh b/src/bin/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/bin/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/black/README.md b/src/black/README.md deleted file mode 100644 index 97be09f5c..000000000 --- a/src/black/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Black (via pipx) (black) - -Black is an uncompromising Python code formatter. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/black:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/black/devcontainer-feature.json b/src/black/devcontainer-feature.json deleted file mode 100644 index 477a36d08..000000000 --- a/src/black/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "black", - "version": "2.0.17", - "name": "Black (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/black", - "description": "Black is an uncompromising Python code formatter.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/black/install.sh b/src/black/install.sh deleted file mode 100755 index 8a0e2b57c..000000000 --- a/src/black/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='black' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/black/library_scripts.sh b/src/black/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/black/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/blackbox-exporter/README.md b/src/blackbox-exporter/README.md deleted file mode 100644 index 858a7b2b3..000000000 --- a/src/blackbox-exporter/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus Blackbox Exporter (via Github Releases) (blackbox-exporter) - -The blackbox exporter allows blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP, ICMP and gRPC. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/blackbox-exporter:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/blackbox-exporter/devcontainer-feature.json b/src/blackbox-exporter/devcontainer-feature.json deleted file mode 100644 index 3fbc69f8e..000000000 --- a/src/blackbox-exporter/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "blackbox-exporter", - "version": "1.0.2", - "name": "Prometheus Blackbox Exporter (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/blackbox-exporter", - "description": "The blackbox exporter allows blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP, ICMP and gRPC.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/blackbox-exporter/install.sh b/src/blackbox-exporter/install.sh deleted file mode 100755 index 446500fe4..000000000 --- a/src/blackbox-exporter/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/blackbox_exporter' --option binaryNames='blackbox_exporter' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/blackbox-exporter/library_scripts.sh b/src/blackbox-exporter/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/blackbox-exporter/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/bomber/README.md b/src/bomber/README.md deleted file mode 100644 index e7bf265b2..000000000 --- a/src/bomber/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# bomber (via Github Releases) (bomber) - -bomber is an application that scans SBOMs for security vulnerabilities. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bomber:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/bomber/devcontainer-feature.json b/src/bomber/devcontainer-feature.json deleted file mode 100644 index 3b2ce5d3d..000000000 --- a/src/bomber/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "bomber", - "version": "1.0.9", - "name": "bomber (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/bomber", - "description": "bomber is an application that scans SBOMs for security vulnerabilities.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/bomber/install.sh b/src/bomber/install.sh deleted file mode 100755 index 78a23549e..000000000 --- a/src/bomber/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='devops-kung-fu/bomber' --option binaryNames='bomber' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/bomber/library_scripts.sh b/src/bomber/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/bomber/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/bower/README.md b/src/bower/README.md deleted file mode 100644 index 95c0efba8..000000000 --- a/src/bower/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Bower (via npm) (bower) - -Bower offers a generic, unopinionated solution to the problem of front-end package management, while exposing the package dependency model via an API that can be consumed by a more opinionated build stack. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bower:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/bower/devcontainer-feature.json b/src/bower/devcontainer-feature.json deleted file mode 100644 index 17a6a2aae..000000000 --- a/src/bower/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "bower", - "version": "1.0.2", - "name": "Bower (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/bower", - "description": "Bower offers a generic, unopinionated solution to the problem of front-end package management, while exposing the package dependency model via an API that can be consumed by a more opinionated build stack.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/bower/install.sh b/src/bower/install.sh deleted file mode 100755 index 1d82bcce9..000000000 --- a/src/bower/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='bower' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/bower/library_scripts.sh b/src/bower/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/bower/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/bpipe-sdkman/README.md b/src/bpipe-sdkman/README.md deleted file mode 100644 index a7f8e3548..000000000 --- a/src/bpipe-sdkman/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Bpipe (via SDKMAN) (bpipe-sdkman) - -Bpipe is a framework for running computational pipelines and workflows - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bpipe-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/bpipe-sdkman/devcontainer-feature.json b/src/bpipe-sdkman/devcontainer-feature.json deleted file mode 100644 index a2d77fca7..000000000 --- a/src/bpipe-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "bpipe-sdkman", - "version": "2.0.15", - "name": "Bpipe (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/bpipe-sdkman", - "description": "Bpipe is a framework for running computational pipelines and workflows", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/bpipe-sdkman/install.sh b/src/bpipe-sdkman/install.sh deleted file mode 100755 index 0ed7d0004..000000000 --- a/src/bpipe-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='bpipe' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/bpipe-sdkman/library_scripts.sh b/src/bpipe-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/bpipe-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/brownie/README.md b/src/brownie/README.md deleted file mode 100644 index fe0b21895..000000000 --- a/src/brownie/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Brownie (via pipx) (brownie) - -Brownie is a Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/brownie:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| pythonVersion | Select the version to install. | string | os-provided | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/brownie/devcontainer-feature.json b/src/brownie/devcontainer-feature.json deleted file mode 100755 index 68cfd4842..000000000 --- a/src/brownie/devcontainer-feature.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "id": "brownie", - "version": "2.0.17", - "name": "Brownie (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/brownie", - "description": "Brownie is a Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "pythonVersion": { - "default": "os-provided", - "description": "Select the version to install.", - "proposals": [ - "os-provided" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package" - ] -} \ No newline at end of file diff --git a/src/brownie/install.sh b/src/brownie/install.sh deleted file mode 100755 index 7308af016..000000000 --- a/src/brownie/install.sh +++ /dev/null @@ -1,18 +0,0 @@ -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='eth-brownie' --option version="$VERSION" - -echo 'Done!' diff --git a/src/brownie/library_scripts.sh b/src/brownie/library_scripts.sh deleted file mode 100755 index 9e1072eca..000000000 --- a/src/brownie/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/browserify/README.md b/src/browserify/README.md deleted file mode 100644 index 7fb1ae07b..000000000 --- a/src/browserify/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Browserify (via npm) (browserify) - -Browserify lets you require('modules') in the browser by bundling up all of your dependencies. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/browserify:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/browserify/devcontainer-feature.json b/src/browserify/devcontainer-feature.json deleted file mode 100644 index 2d3d00fcd..000000000 --- a/src/browserify/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "browserify", - "version": "2.0.15", - "name": "Browserify (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/browserify", - "description": "Browserify lets you require('modules') in the browser by bundling up all of your dependencies.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/browserify/install.sh b/src/browserify/install.sh deleted file mode 100755 index 510e9a6c7..000000000 --- a/src/browserify/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='browserify' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/browserify/library_scripts.sh b/src/browserify/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/browserify/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/btop-homebrew/README.md b/src/btop-homebrew/README.md deleted file mode 100644 index c1b2dcc1b..000000000 --- a/src/btop-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# btop (via Homebrew) (btop-homebrew) - -btop is a resource monitor that shows usage and stats for processor, memory, disks, network and processes. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/btop-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/btop-homebrew/devcontainer-feature.json b/src/btop-homebrew/devcontainer-feature.json deleted file mode 100644 index 4f8e1fce7..000000000 --- a/src/btop-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "btop-homebrew", - "version": "1.0.20", - "name": "btop (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/btop-homebrew", - "description": "btop is a resource monitor that shows usage and stats for processor, memory, disks, network and processes.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/btop-homebrew/install.sh b/src/btop-homebrew/install.sh deleted file mode 100755 index 1ebcf3ca7..000000000 --- a/src/btop-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='btop' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/btop-homebrew/library_scripts.sh b/src/btop-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/btop-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/btrace-sdkman/README.md b/src/btrace-sdkman/README.md deleted file mode 100644 index cc9cd5af2..000000000 --- a/src/btrace-sdkman/README.md +++ /dev/null @@ -1,29 +0,0 @@ - -# BTrace (via SDKMAN) (btrace-sdkman) - -BTrace is a safe, dynamic tracing tool for the Java platform. BTrace can be used -to dynamically trace a running Java program (similar to DTrace for OpenSolaris -applications and OS). BTrace dynamically instruments the classes of the target -application to inject bytecode tracing code. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/btrace-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/btrace-sdkman/devcontainer-feature.json b/src/btrace-sdkman/devcontainer-feature.json deleted file mode 100644 index 3aeab5b40..000000000 --- a/src/btrace-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "btrace-sdkman", - "version": "2.0.15", - "name": "BTrace (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/btrace-sdkman", - "description": "BTrace is a safe, dynamic tracing tool for the Java platform. BTrace can be used\nto dynamically trace a running Java program (similar to DTrace for OpenSolaris\napplications and OS). BTrace dynamically instruments the classes of the target\napplication to inject bytecode tracing code.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/btrace-sdkman/install.sh b/src/btrace-sdkman/install.sh deleted file mode 100755 index 3334c327e..000000000 --- a/src/btrace-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='btrace' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/btrace-sdkman/library_scripts.sh b/src/btrace-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/btrace-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/budibase-cli/README.md b/src/budibase-cli/README.md deleted file mode 100644 index 870c0b821..000000000 --- a/src/budibase-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Budibase CLI (via npm) (budibase-cli) - -The Budibase CLI tool can be used to create a new Budibase installation, to manage an existing installation, make backups or update a Budibase installation to a new version. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/budibase-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/budibase-cli/devcontainer-feature.json b/src/budibase-cli/devcontainer-feature.json deleted file mode 100644 index fd570a7c2..000000000 --- a/src/budibase-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "budibase-cli", - "version": "1.0.2", - "name": "Budibase CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/budibase-cli", - "description": "The Budibase CLI tool can be used to create a new Budibase installation, to manage an existing installation, make backups or update a Budibase installation to a new version.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/budibase-cli/install.sh b/src/budibase-cli/install.sh deleted file mode 100755 index 3c75afc8b..000000000 --- a/src/budibase-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@budibase/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/budibase-cli/library_scripts.sh b/src/budibase-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/budibase-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/buku/README.md b/src/buku/README.md deleted file mode 100644 index 216d4111d..000000000 --- a/src/buku/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# buku (via pipx) (buku) - -buku is a powerful bookmark manager and a personal textual mini-web. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/buku:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/buku/devcontainer-feature.json b/src/buku/devcontainer-feature.json deleted file mode 100644 index c201cfdc0..000000000 --- a/src/buku/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "buku", - "version": "1.0.4", - "name": "buku (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/buku", - "description": "buku is a powerful bookmark manager and a personal textual mini-web.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/buku/install.sh b/src/buku/install.sh deleted file mode 100755 index dca06a10b..000000000 --- a/src/buku/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='buku' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/buku/library_scripts.sh b/src/buku/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/buku/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/caddy/README.md b/src/caddy/README.md deleted file mode 100644 index c62ea1107..000000000 --- a/src/caddy/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Caddy (via Github Releases) (caddy) - -Caddy is a powerful, enterprise-ready, open source web server with automatic HTTPS. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/caddy:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| golangVersion | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/caddy/devcontainer-feature.json b/src/caddy/devcontainer-feature.json deleted file mode 100644 index 9e2fcead4..000000000 --- a/src/caddy/devcontainer-feature.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "id": "caddy", - "version": "1.0.9", - "name": "Caddy (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/caddy", - "description": "Caddy is a powerful, enterprise-ready, open source web server with automatic HTTPS.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "golangVersion": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest", - "none", - "1.19", - "1.18" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers/features/go", - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/caddy/install.sh b/src/caddy/install.sh deleted file mode 100755 index d5d7f9357..000000000 --- a/src/caddy/install.sh +++ /dev/null @@ -1,31 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/go:1.1.3" \ - --option version="$GOLANGVERSION" - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='caddyserver/caddy' --option binaryNames='caddy' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/caddy/library_scripts.sh b/src/caddy/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/caddy/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ccache-asdf/README.md b/src/ccache-asdf/README.md deleted file mode 100644 index 6a17313b9..000000000 --- a/src/ccache-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ccache (via asdf) (ccache-asdf) - -Ccache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ccache-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ccache-asdf/devcontainer-feature.json b/src/ccache-asdf/devcontainer-feature.json deleted file mode 100644 index 886bdea51..000000000 --- a/src/ccache-asdf/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "ccache-asdf", - "version": "2.0.17", - "name": "Ccache (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ccache-asdf", - "description": "Ccache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package", - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/ccache-asdf/install.sh b/src/ccache-asdf/install.sh deleted file mode 100755 index 0265bebeb..000000000 --- a/src/ccache-asdf/install.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='build-essential,cmake' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='ccache' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ccache-asdf/library_scripts.sh b/src/ccache-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ccache-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/checkov/README.md b/src/checkov/README.md deleted file mode 100644 index 15beb9984..000000000 --- a/src/checkov/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Checkov (via pipx) (checkov) - -Checkov is a static code analysis tool for infrastructure as code (IaC) and also a software composition analysis (SCA) tool for images and open source packages. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/checkov:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/checkov/devcontainer-feature.json b/src/checkov/devcontainer-feature.json deleted file mode 100644 index 09372ccb9..000000000 --- a/src/checkov/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "checkov", - "version": "1.0.16", - "name": "Checkov (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/checkov", - "description": "Checkov is a static code analysis tool for infrastructure as code (IaC) and also a software composition analysis (SCA) tool for images and open source packages.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/checkov/install.sh b/src/checkov/install.sh deleted file mode 100755 index 6a80aba48..000000000 --- a/src/checkov/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='checkov' --option version="$VERSION" - - - - - diff --git a/src/checkov/library_scripts.sh b/src/checkov/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/checkov/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/chezscheme-asdf/README.md b/src/chezscheme-asdf/README.md deleted file mode 100644 index cb03d95cf..000000000 --- a/src/chezscheme-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# chezscheme (via asdf) (chezscheme-asdf) - -Chez Scheme is both a programming language and an implementation of that language, with supporting tools and documentation. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/chezscheme-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/chezscheme-asdf/devcontainer-feature.json b/src/chezscheme-asdf/devcontainer-feature.json deleted file mode 100644 index 358352a91..000000000 --- a/src/chezscheme-asdf/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "chezscheme-asdf", - "version": "2.0.17", - "name": "chezscheme (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/chezscheme-asdf", - "description": "Chez Scheme is both a programming language and an implementation of that language, with supporting tools and documentation.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package", - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/chezscheme-asdf/install.sh b/src/chezscheme-asdf/install.sh deleted file mode 100755 index 9ef50e4ee..000000000 --- a/src/chezscheme-asdf/install.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='build-essential,uuid-dev,libncurses5-dev,libx11-dev' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='chezscheme' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/chezscheme-asdf/library_scripts.sh b/src/chezscheme-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/chezscheme-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/chisel/README.md b/src/chisel/README.md deleted file mode 100644 index 27da38d17..000000000 --- a/src/chisel/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Chisel (via Github Releases) (chisel) - -Chisel is a fast TCP/UDP tunnel, transported over HTTP, secured via SSH. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/chisel:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/chisel/devcontainer-feature.json b/src/chisel/devcontainer-feature.json deleted file mode 100644 index 88e6b7e02..000000000 --- a/src/chisel/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "chisel", - "version": "1.0.3", - "name": "Chisel (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/chisel", - "description": "Chisel is a fast TCP/UDP tunnel, transported over HTTP, secured via SSH.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/chisel/install.sh b/src/chisel/install.sh deleted file mode 100755 index 30152b86b..000000000 --- a/src/chisel/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='jpillora/chisel' --option binaryNames='chisel' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/chisel/library_scripts.sh b/src/chisel/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/chisel/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/circleci-cli/README.md b/src/circleci-cli/README.md deleted file mode 100644 index e0a7935af..000000000 --- a/src/circleci-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# CircleCI CLI (via Github Releases) (circleci-cli) - -The CircleCI command line interface (CLI) tool enables developers to build, validate, and test their pipeline jobs in their local development environments. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/circleci-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/circleci-cli/devcontainer-feature.json b/src/circleci-cli/devcontainer-feature.json deleted file mode 100644 index f3bb63ae0..000000000 --- a/src/circleci-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "circleci-cli", - "version": "1.0.7", - "name": "CircleCI CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/circleci-cli", - "description": "The CircleCI command line interface (CLI) tool enables developers to build, validate, and test their pipeline jobs in their local development environments.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/circleci-cli/install.sh b/src/circleci-cli/install.sh deleted file mode 100755 index 5f2bfdbcd..000000000 --- a/src/circleci-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='CircleCI-Public/circleci-cli' --option binaryNames='circleci' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/circleci-cli/library_scripts.sh b/src/circleci-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/circleci-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/clojure-asdf/README.md b/src/clojure-asdf/README.md deleted file mode 100644 index 1e68bbc50..000000000 --- a/src/clojure-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Clojure (via asdf) (clojure-asdf) - -Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/clojure-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/clojure-asdf/devcontainer-feature.json b/src/clojure-asdf/devcontainer-feature.json deleted file mode 100644 index 6c901c46c..000000000 --- a/src/clojure-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "clojure-asdf", - "version": "2.0.15", - "name": "Clojure (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/clojure-asdf", - "description": "Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/clojure-asdf/install.sh b/src/clojure-asdf/install.sh deleted file mode 100755 index 57fbb62a5..000000000 --- a/src/clojure-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='clojure' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/clojure-asdf/library_scripts.sh b/src/clojure-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/clojure-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/cloud-nuke/README.md b/src/cloud-nuke/README.md deleted file mode 100644 index c36693dc4..000000000 --- a/src/cloud-nuke/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# cloud-nuke (via Github Releases) (cloud-nuke) - -cloud-nuke is a tool for cleaning up your cloud accounts by nuking (deleting) all resources within it - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cloud-nuke:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cloud-nuke/devcontainer-feature.json b/src/cloud-nuke/devcontainer-feature.json deleted file mode 100644 index 2b7fb58ea..000000000 --- a/src/cloud-nuke/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "cloud-nuke", - "version": "1.0.5", - "name": "cloud-nuke (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cloud-nuke", - "description": "cloud-nuke is a tool for cleaning up your cloud accounts by nuking (deleting) all resources within it", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/cloud-nuke/install.sh b/src/cloud-nuke/install.sh deleted file mode 100755 index b3bb12375..000000000 --- a/src/cloud-nuke/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='gruntwork-io/cloud-nuke' --option binaryNames='cloud-nuke' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/cloud-nuke/library_scripts.sh b/src/cloud-nuke/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cloud-nuke/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cloudflare-wrangler/README.md b/src/cloudflare-wrangler/README.md deleted file mode 100644 index 596bbc8ed..000000000 --- a/src/cloudflare-wrangler/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Cloudflare Workers CLI (Wrangler) (via npm) (cloudflare-wrangler) - -The Workers command-line interface, Wrangler, allows you to create, test, and deploy your Workers projects. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cloudflare-wrangler:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cloudflare-wrangler/devcontainer-feature.json b/src/cloudflare-wrangler/devcontainer-feature.json deleted file mode 100644 index 7453d281f..000000000 --- a/src/cloudflare-wrangler/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "cloudflare-wrangler", - "version": "1.0.2", - "name": "Cloudflare Workers CLI (Wrangler) (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cloudflare-wrangler", - "description": "The Workers command-line interface, Wrangler, allows you to create, test, and deploy your Workers projects.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/cloudflare-wrangler/install.sh b/src/cloudflare-wrangler/install.sh deleted file mode 100755 index 4aab52b6c..000000000 --- a/src/cloudflare-wrangler/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='wrangler' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/cloudflare-wrangler/library_scripts.sh b/src/cloudflare-wrangler/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cloudflare-wrangler/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cloudflared-fips/README.md b/src/cloudflared-fips/README.md deleted file mode 100644 index 2a127d28e..000000000 --- a/src/cloudflared-fips/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Cloudflare Tunnel client (FIPS) (via Github Releases) (cloudflared-fips) - -Cloudflare Tunnel client is a command-line client for Cloudflare Tunnel, a tunneling daemon that proxies traffic from the Cloudflare network to your origins. This daemon sits between Cloudflare network and your origin (e.g. a webserver). - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cloudflared-fips:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cloudflared-fips/devcontainer-feature.json b/src/cloudflared-fips/devcontainer-feature.json deleted file mode 100644 index e67560dbd..000000000 --- a/src/cloudflared-fips/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "cloudflared-fips", - "version": "1.0.7", - "name": "Cloudflare Tunnel client (FIPS) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cloudflared-fips", - "description": "Cloudflare Tunnel client is a command-line client for Cloudflare Tunnel, a tunneling daemon that proxies traffic from the Cloudflare network to your origins. This daemon sits between Cloudflare network and your origin (e.g. a webserver).", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/cloudflared-fips/install.sh b/src/cloudflared-fips/install.sh deleted file mode 100755 index c2b683adc..000000000 --- a/src/cloudflared-fips/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='cloudflare/cloudflared' --option binaryNames='cloudflared' --option version="$VERSION" --option assetRegex='.*(fips).*' - - - -echo 'Done!' - diff --git a/src/cloudflared-fips/library_scripts.sh b/src/cloudflared-fips/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cloudflared-fips/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cloudflared/README.md b/src/cloudflared/README.md deleted file mode 100644 index 2aaafc46d..000000000 --- a/src/cloudflared/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Cloudflare Tunnel client (via Github Releases) (cloudflared) - -Cloudflare Tunnel client is a command-line client for Cloudflare Tunnel, a tunneling daemon that proxies traffic from the Cloudflare network to your origins. This daemon sits between Cloudflare network and your origin (e.g. a webserver). - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cloudflared:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cloudflared/devcontainer-feature.json b/src/cloudflared/devcontainer-feature.json deleted file mode 100644 index c8109beb4..000000000 --- a/src/cloudflared/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "cloudflared", - "version": "1.0.7", - "name": "Cloudflare Tunnel client (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cloudflared", - "description": "Cloudflare Tunnel client is a command-line client for Cloudflare Tunnel, a tunneling daemon that proxies traffic from the Cloudflare network to your origins. This daemon sits between Cloudflare network and your origin (e.g. a webserver).", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/cloudflared/install.sh b/src/cloudflared/install.sh deleted file mode 100755 index 7418c2bdf..000000000 --- a/src/cloudflared/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='cloudflare/cloudflared' --option binaryNames='cloudflared' --option version="$VERSION" --option assetRegex='^(?!.*(fips))' - - - -echo 'Done!' - diff --git a/src/cloudflared/library_scripts.sh b/src/cloudflared/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cloudflared/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cloudinary-cli/README.md b/src/cloudinary-cli/README.md deleted file mode 100644 index d399df0c6..000000000 --- a/src/cloudinary-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# cloudinary-cli (via pipx) (cloudinary-cli) - -Cloudinary CLI. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cloudinary-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of cloudinary-cli to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cloudinary-cli/devcontainer-feature.json b/src/cloudinary-cli/devcontainer-feature.json deleted file mode 100644 index 4a2ca8f59..000000000 --- a/src/cloudinary-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "cloudinary-cli", - "version": "1.0.16", - "name": "cloudinary-cli (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cloudinary-cli", - "description": "Cloudinary CLI.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of cloudinary-cli to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/cloudinary-cli/install.sh b/src/cloudinary-cli/install.sh deleted file mode 100755 index 191f4a21d..000000000 --- a/src/cloudinary-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='cloudinary-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/cloudinary-cli/library_scripts.sh b/src/cloudinary-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cloudinary-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cmake/README.md b/src/cmake/README.md deleted file mode 100644 index c0d0a61cc..000000000 --- a/src/cmake/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# cmake (via GitHub Releases) (cmake) - -CMake is a cross-platform, open-source build system generator. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cmake:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cmake/devcontainer-feature.json b/src/cmake/devcontainer-feature.json deleted file mode 100644 index d44cc5fd4..000000000 --- a/src/cmake/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "cmake", - "version": "1.0.0", - "name": "cmake (via GitHub Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cmake", - "description": "CMake is a cross-platform, open-source build system generator.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest", - "3.31.4" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/cmake/install.sh b/src/cmake/install.sh deleted file mode 100755 index baf1f6db0..000000000 --- a/src/cmake/install.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - -# The releases of Kitware/CMake are prefixed with a 'v' character -# So if it's not the latest version, we need to add it -if [ "${VERSION}" != "latest" ]; then - VERSION="v${VERSION}" -fi - -# Install cmake via GitHub Release feature -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='Kitware/CMake' --option binaryNames='cmake,ctest,cpack' \ - --option libName='cmake' --option assetRegex='.*tar.gz$' \ - --option version="${VERSION}" - -echo 'Done!' diff --git a/src/cmake/library_scripts.sh b/src/cmake/library_scripts.sh deleted file mode 100644 index f6d0760d7..000000000 --- a/src/cmake/library_scripts.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ]; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ]; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up() { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - if [ -x "/sbin/apk" ]; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} diff --git a/src/codefresh-cli/README.md b/src/codefresh-cli/README.md deleted file mode 100644 index 0d5bd2a5a..000000000 --- a/src/codefresh-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Codefresh CLI (via Github Releases) (codefresh-cli) - -Codefresh CLI provides a full and flexible interface to interact with Codefresh. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/codefresh-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/codefresh-cli/devcontainer-feature.json b/src/codefresh-cli/devcontainer-feature.json deleted file mode 100644 index f0d46c4ce..000000000 --- a/src/codefresh-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "codefresh-cli", - "version": "1.0.7", - "name": "Codefresh CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/codefresh-cli", - "description": "Codefresh CLI provides a full and flexible interface to interact with Codefresh.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/codefresh-cli/install.sh b/src/codefresh-cli/install.sh deleted file mode 100755 index 93dbce0e8..000000000 --- a/src/codefresh-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='codefresh-io/cli' --option binaryNames='codefresh' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/codefresh-cli/library_scripts.sh b/src/codefresh-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/codefresh-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/composer/README.md b/src/composer/README.md deleted file mode 100644 index 1ebe9d6ac..000000000 --- a/src/composer/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Composer (via Github Releases) (composer) - -Composer is an open source dependency management tool for PHP. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/composer:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/composer/devcontainer-feature.json b/src/composer/devcontainer-feature.json deleted file mode 100644 index f182240dd..000000000 --- a/src/composer/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "composer", - "version": "1.0.0", - "name": "Composer (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/composer", - "description": "Composer is an open source dependency management tool for PHP.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/composer/install.sh b/src/composer/install.sh deleted file mode 100755 index a1c6a7a1a..000000000 --- a/src/composer/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='composer/composer' --option binaryNames='composer' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/composer/library_scripts.sh b/src/composer/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/composer/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/concurnas-sdkman/README.md b/src/concurnas-sdkman/README.md deleted file mode 100644 index 4f2c028cb..000000000 --- a/src/concurnas-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Concurnas (via SDKMAN) (concurnas-sdkman) - -Concurnas is an open source JVM programming language designed for building -reliable, scalable, high performance concurrent, distributed and parallel -systems. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/concurnas-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. (compatability chart for concurnas can be found here https://concurnas.com/download.html) | string | 11 | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/concurnas-sdkman/devcontainer-feature.json b/src/concurnas-sdkman/devcontainer-feature.json deleted file mode 100644 index d008a3e40..000000000 --- a/src/concurnas-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id": "concurnas-sdkman", - "version": "2.0.15", - "name": "Concurnas (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/concurnas-sdkman", - "description": "Concurnas is an open source JVM programming language designed for building\nreliable, scalable, high performance concurrent, distributed and parallel\nsystems.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "11", - "description": "Select or enter a JDK version to install. (compatability chart for concurnas can be found here https://concurnas.com/download.html)", - "proposals": [ - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/concurnas-sdkman/install.sh b/src/concurnas-sdkman/install.sh deleted file mode 100755 index 6a356d841..000000000 --- a/src/concurnas-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='concurnas' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/concurnas-sdkman/library_scripts.sh b/src/concurnas-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/concurnas-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/connor-sdkman/README.md b/src/connor-sdkman/README.md deleted file mode 100644 index f826c52a1..000000000 --- a/src/connor-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# ConnOR (via SDKMAN) (connor-sdkman) - -ConnOR, short for ConnectOffsetReset, is a commandline tool for resetting Kafka -Connect source connector offsets. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/connor-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/connor-sdkman/devcontainer-feature.json b/src/connor-sdkman/devcontainer-feature.json deleted file mode 100644 index 080e7d195..000000000 --- a/src/connor-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "connor-sdkman", - "version": "2.0.15", - "name": "ConnOR (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/connor-sdkman", - "description": "ConnOR, short for ConnectOffsetReset, is a commandline tool for resetting Kafka\nConnect source connector offsets.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/connor-sdkman/install.sh b/src/connor-sdkman/install.sh deleted file mode 100755 index 648ae2d0d..000000000 --- a/src/connor-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='connor' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/connor-sdkman/library_scripts.sh b/src/connor-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/connor-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/consul-asdf/README.md b/src/consul-asdf/README.md deleted file mode 100644 index 3c53f4ad6..000000000 --- a/src/consul-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# consul (via asdf) (consul-asdf) - -Consul is a service networking solution to automate network configurations, discover services, and enable secure connectivity across any cloud or runtime. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/consul-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/consul-asdf/devcontainer-feature.json b/src/consul-asdf/devcontainer-feature.json deleted file mode 100644 index 63afd39e1..000000000 --- a/src/consul-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "consul-asdf", - "version": "2.0.15", - "name": "consul (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/consul-asdf", - "description": "Consul is a service networking solution to automate network configurations, discover services, and enable secure connectivity across any cloud or runtime.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/consul-asdf/install.sh b/src/consul-asdf/install.sh deleted file mode 100755 index 42b442a50..000000000 --- a/src/consul-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='consul' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/consul-asdf/library_scripts.sh b/src/consul-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/consul-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/consul-exporter/README.md b/src/consul-exporter/README.md deleted file mode 100644 index 56aea5492..000000000 --- a/src/consul-exporter/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus Consul Exporter (via Github Releases) (consul-exporter) - -Prometheus exporter for Consul metrics. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/consul-exporter:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/consul-exporter/devcontainer-feature.json b/src/consul-exporter/devcontainer-feature.json deleted file mode 100644 index c4dd28585..000000000 --- a/src/consul-exporter/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "consul-exporter", - "version": "1.0.2", - "name": "Prometheus Consul Exporter (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/consul-exporter", - "description": "Prometheus exporter for Consul metrics.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/consul-exporter/install.sh b/src/consul-exporter/install.sh deleted file mode 100755 index a5f1dcaba..000000000 --- a/src/consul-exporter/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/consul_exporter' --option binaryNames='consul_exporter' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/consul-exporter/library_scripts.sh b/src/consul-exporter/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/consul-exporter/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cookiecutter/README.md b/src/cookiecutter/README.md deleted file mode 100644 index a9224b42c..000000000 --- a/src/cookiecutter/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Cookiecutter (via pipx) (cookiecutter) - -Cookiecutter creates projects from project templates. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cookiecutter:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cookiecutter/devcontainer-feature.json b/src/cookiecutter/devcontainer-feature.json deleted file mode 100644 index 12e8c6a0b..000000000 --- a/src/cookiecutter/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "cookiecutter", - "version": "2.0.17", - "name": "Cookiecutter (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cookiecutter", - "description": "Cookiecutter creates projects from project templates.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/cookiecutter/install.sh b/src/cookiecutter/install.sh deleted file mode 100755 index 169864290..000000000 --- a/src/cookiecutter/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='cookiecutter' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/cookiecutter/library_scripts.sh b/src/cookiecutter/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cookiecutter/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/copier/README.md b/src/copier/README.md deleted file mode 100644 index b7959ffc7..000000000 --- a/src/copier/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# copier (via pipx) (copier) - -copier creates projects from project templates. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/copier:7": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/copier/devcontainer-feature.json b/src/copier/devcontainer-feature.json deleted file mode 100644 index dcf4c7d30..000000000 --- a/src/copier/devcontainer-feature.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "id": "copier", - "version": "7.0.14", - "name": "copier (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/copier", - "description": "copier creates projects from project templates.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "injections": { - "default": "", - "description": "Space delimitered list of python packages to inject into the main package env.", - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/copier/install.sh b/src/copier/install.sh deleted file mode 100755 index c8484ceb7..000000000 --- a/src/copier/install.sh +++ /dev/null @@ -1,22 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='copier' \ - --option version="$VERSION" \ - --option injections="$INJECTIONS" - -echo 'Done!' - diff --git a/src/copier/library_scripts.sh b/src/copier/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/copier/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/corepack/README.md b/src/corepack/README.md deleted file mode 100644 index 1efeb7590..000000000 --- a/src/corepack/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Corepack (via npm) (corepack) - -Corepack is a zero-runtime-dependency Node.js script that acts as a bridge between Node.js projects and the package managers they are intended to be used with during development. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/corepack:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/corepack/devcontainer-feature.json b/src/corepack/devcontainer-feature.json deleted file mode 100644 index 5adf2a71d..000000000 --- a/src/corepack/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "corepack", - "version": "1.0.1", - "name": "Corepack (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/corepack", - "description": "Corepack is a zero-runtime-dependency Node.js script that acts as a bridge between Node.js projects and the package managers they are intended to be used with during development.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/corepack/install.sh b/src/corepack/install.sh deleted file mode 100755 index 3748d5096..000000000 --- a/src/corepack/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='corepack' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/corepack/library_scripts.sh b/src/corepack/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/corepack/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cosign/README.md b/src/cosign/README.md deleted file mode 100644 index c528da9ad..000000000 --- a/src/cosign/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Cosign (via Github Releases) (cosign) - -Cosign is a command line utility that can sign and verify software artifact, such as container images and blobs. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cosign:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cosign/devcontainer-feature.json b/src/cosign/devcontainer-feature.json deleted file mode 100644 index 668f2b0bb..000000000 --- a/src/cosign/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "cosign", - "version": "1.0.9", - "name": "Cosign (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cosign", - "description": "Cosign is a command line utility that can sign and verify software artifact, such as container images and blobs.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/cosign/install.sh b/src/cosign/install.sh deleted file mode 100755 index 92f7720f9..000000000 --- a/src/cosign/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sigstore/cosign' --option binaryNames='cosign' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/cosign/library_scripts.sh b/src/cosign/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cosign/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/coverage-py/README.md b/src/coverage-py/README.md deleted file mode 100644 index 46591e8c9..000000000 --- a/src/coverage-py/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Coverage.py (via pipx) (coverage-py) - -Coverage.py is a tool for measuring code coverage of Python programs. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/coverage-py:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Coverage.py to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/coverage-py/devcontainer-feature.json b/src/coverage-py/devcontainer-feature.json deleted file mode 100644 index 4b0e83b15..000000000 --- a/src/coverage-py/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "coverage-py", - "version": "2.0.17", - "name": "Coverage.py (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/coverage-py", - "description": "Coverage.py is a tool for measuring code coverage of Python programs.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Coverage.py to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/coverage-py/install.sh b/src/coverage-py/install.sh deleted file mode 100755 index b1c7a9322..000000000 --- a/src/coverage-py/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='coverage' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/coverage-py/library_scripts.sh b/src/coverage-py/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/coverage-py/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/crystal-asdf/README.md b/src/crystal-asdf/README.md deleted file mode 100644 index 19e86f6f9..000000000 --- a/src/crystal-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Crystal (via asdf) (crystal-asdf) - -Crystal is a general-purpose, object-oriented programming language - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/crystal-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/crystal-asdf/devcontainer-feature.json b/src/crystal-asdf/devcontainer-feature.json deleted file mode 100644 index 6514022be..000000000 --- a/src/crystal-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "crystal-asdf", - "version": "2.0.15", - "name": "Crystal (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/crystal-asdf", - "description": "Crystal is a general-purpose, object-oriented programming language", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/crystal-asdf/install.sh b/src/crystal-asdf/install.sh deleted file mode 100755 index 712f54d38..000000000 --- a/src/crystal-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='crystal' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/crystal-asdf/library_scripts.sh b/src/crystal-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/crystal-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/cuba-sdkman/README.md b/src/cuba-sdkman/README.md deleted file mode 100644 index bcea148a3..000000000 --- a/src/cuba-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# CUBA CLI (via SDKMAN) (cuba-sdkman) - -CUBA CLI is an open source command line utility that enables you to easily -create projects based on CUBA Platform - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cuba-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of CUBA CLI to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cuba-sdkman/devcontainer-feature.json b/src/cuba-sdkman/devcontainer-feature.json deleted file mode 100644 index 8b8d5bd2d..000000000 --- a/src/cuba-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "cuba-sdkman", - "version": "2.0.15", - "name": "CUBA CLI (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cuba-sdkman", - "description": "CUBA CLI is an open source command line utility that enables you to easily\ncreate projects based on CUBA Platform", - "options": { - "version": { - "default": "latest", - "description": "Select the version of CUBA CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/cuba-sdkman/install.sh b/src/cuba-sdkman/install.sh deleted file mode 100755 index 1224688bd..000000000 --- a/src/cuba-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='cuba' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/cuba-sdkman/library_scripts.sh b/src/cuba-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/cuba-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/curl-apt-get/README.md b/src/curl-apt-get/README.md deleted file mode 100644 index a9f4ee07e..000000000 --- a/src/curl-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# cURL (via apt-get) (curl-apt-get) - -cURL is a computer software project providing a library and command-line tool for transferring data using various network protocols. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/curl-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/curl-apt-get/devcontainer-feature.json b/src/curl-apt-get/devcontainer-feature.json deleted file mode 100644 index 2daf32fd1..000000000 --- a/src/curl-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "curl-apt-get", - "version": "1.0.17", - "name": "cURL (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/curl-apt-get", - "description": "cURL is a computer software project providing a library and command-line tool for transferring data using various network protocols.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/curl-apt-get/install.sh b/src/curl-apt-get/install.sh deleted file mode 100755 index e06e9d5b6..000000000 --- a/src/curl-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='curl,ca-certificates' - - -echo 'Done!' - diff --git a/src/curl-apt-get/library_scripts.sh b/src/curl-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/curl-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/curl-homebrew/README.md b/src/curl-homebrew/README.md deleted file mode 100644 index 25ea45b23..000000000 --- a/src/curl-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# cURL (via Homebrew) (curl-homebrew) - -cURL is a computer software project providing a library and command-line tool for transferring data using various network protocols. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/curl-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/curl-homebrew/devcontainer-feature.json b/src/curl-homebrew/devcontainer-feature.json deleted file mode 100644 index edb44a30b..000000000 --- a/src/curl-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "curl-homebrew", - "version": "1.0.20", - "name": "cURL (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/curl-homebrew", - "description": "cURL is a computer software project providing a library and command-line tool for transferring data using various network protocols.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/curl-homebrew/install.sh b/src/curl-homebrew/install.sh deleted file mode 100755 index b2f97d233..000000000 --- a/src/curl-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='curl' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/curl-homebrew/library_scripts.sh b/src/curl-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/curl-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/cve-bin-tool/README.md b/src/cve-bin-tool/README.md deleted file mode 100644 index 60739d2e6..000000000 --- a/src/cve-bin-tool/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# CVE Binary Tool (via pipx) (cve-bin-tool) - -The CVE Binary Tool is a free, open source tool to help you find known vulnerabilities in software, using data from the National Vulnerability Database (NVD) list of Common Vulnerabilities and Exposures (CVEs). - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cve-bin-tool:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cve-bin-tool/devcontainer-feature.json b/src/cve-bin-tool/devcontainer-feature.json deleted file mode 100644 index 43022c8e9..000000000 --- a/src/cve-bin-tool/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "cve-bin-tool", - "version": "1.0.4", - "name": "CVE Binary Tool (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cve-bin-tool", - "description": "The CVE Binary Tool is a free, open source tool to help you find known vulnerabilities in software, using data from the National Vulnerability Database (NVD) list of Common Vulnerabilities and Exposures (CVEs).", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/cve-bin-tool/install.sh b/src/cve-bin-tool/install.sh deleted file mode 100755 index fb72f74c1..000000000 --- a/src/cve-bin-tool/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='cve-bin-tool' --option version="$VERSION" - - - -echo 'Done' - diff --git a/src/cve-bin-tool/library_scripts.sh b/src/cve-bin-tool/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cve-bin-tool/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cxf-sdkman/README.md b/src/cxf-sdkman/README.md deleted file mode 100644 index bdfd49b7e..000000000 --- a/src/cxf-sdkman/README.md +++ /dev/null @@ -1,29 +0,0 @@ - -# CXF (via SDKMAN) (cxf-sdkman) - -Apache CXF is an open source services framework. CXF helps you build and develop -services using frontend programming APIs, like JAX-WS and JAX-RS. These services -can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA -and work over a variety of transports such as HTTP, JMS or JBI. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cxf-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cxf-sdkman/devcontainer-feature.json b/src/cxf-sdkman/devcontainer-feature.json deleted file mode 100644 index 6fef6f379..000000000 --- a/src/cxf-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "cxf-sdkman", - "version": "2.0.15", - "name": "CXF (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cxf-sdkman", - "description": "Apache CXF is an open source services framework. CXF helps you build and develop\nservices using frontend programming APIs, like JAX-WS and JAX-RS. These services\ncan speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA\nand work over a variety of transports such as HTTP, JMS or JBI.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/cxf-sdkman/install.sh b/src/cxf-sdkman/install.sh deleted file mode 100755 index 074bd3a91..000000000 --- a/src/cxf-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='cxf' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/cxf-sdkman/library_scripts.sh b/src/cxf-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/cxf-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/cyclonedx-cli/README.md b/src/cyclonedx-cli/README.md deleted file mode 100644 index c2a313cf8..000000000 --- a/src/cyclonedx-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# CycloneDX CLI (via Github Releases) (cyclonedx-cli) - -CycloneDX CLI is a utility with many functions to view, convert, and perform operations on SBOMs. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cyclonedx-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cyclonedx-cli/devcontainer-feature.json b/src/cyclonedx-cli/devcontainer-feature.json deleted file mode 100644 index 7220b2c8e..000000000 --- a/src/cyclonedx-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "cyclonedx-cli", - "version": "1.0.9", - "name": "CycloneDX CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cyclonedx-cli", - "description": "CycloneDX CLI is a utility with many functions to view, convert, and perform operations on SBOMs.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/cyclonedx-cli/install.sh b/src/cyclonedx-cli/install.sh deleted file mode 100755 index 4f6d95d42..000000000 --- a/src/cyclonedx-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='CycloneDX/cyclonedx-cli' --option binaryNames='cyclonedx' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/cyclonedx-cli/library_scripts.sh b/src/cyclonedx-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cyclonedx-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cyclonedx-python/README.md b/src/cyclonedx-python/README.md deleted file mode 100644 index 0cde0e480..000000000 --- a/src/cyclonedx-python/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# CycloneDX Python (via pipx) (cyclonedx-python) - -CycloneDX Python creates CycloneDX Software Bill of Materials (SBOM) from Python projects and environments. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cyclonedx-python:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cyclonedx-python/devcontainer-feature.json b/src/cyclonedx-python/devcontainer-feature.json deleted file mode 100644 index 85ef918e6..000000000 --- a/src/cyclonedx-python/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "cyclonedx-python", - "version": "1.0.4", - "name": "CycloneDX Python (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cyclonedx-python", - "description": "CycloneDX Python creates CycloneDX Software Bill of Materials (SBOM) from Python projects and environments.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/cyclonedx-python/install.sh b/src/cyclonedx-python/install.sh deleted file mode 100755 index a629172a2..000000000 --- a/src/cyclonedx-python/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='cyclonedx-bom' --option version="$VERSION" - - - -echo 'Done' - diff --git a/src/cyclonedx-python/library_scripts.sh b/src/cyclonedx-python/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cyclonedx-python/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/cz-cli/README.md b/src/cz-cli/README.md deleted file mode 100644 index 117ffe59c..000000000 --- a/src/cz-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Commitizen CLI (via npm) (cz-cli) - -Commitizen is release management tool designed for teams. Commitizen assumes your team uses a standard way of commiting rules and from that foundation, it can bump your project's version, create the changelog, and update files. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cz-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/cz-cli/devcontainer-feature.json b/src/cz-cli/devcontainer-feature.json deleted file mode 100644 index 8b415b21d..000000000 --- a/src/cz-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "cz-cli", - "version": "1.0.1", - "name": "Commitizen CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cz-cli", - "description": "Commitizen is release management tool designed for teams. Commitizen assumes your team uses a standard way of commiting rules and from that foundation, it can bump your project's version, create the changelog, and update files.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/cz-cli/install.sh b/src/cz-cli/install.sh deleted file mode 100755 index 593da691f..000000000 --- a/src/cz-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='commitizen' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/cz-cli/library_scripts.sh b/src/cz-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/cz-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/d/README.md b/src/d/README.md deleted file mode 100644 index a2b2fa653..000000000 --- a/src/d/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# D (via dlang.org) (d) - -D is a general-purpose programming language with static typing, systems-level access, and C-like syntax. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/d:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| compiler | Options are: 'dmd', 'ldc' and 'gdc' | string | dmd | -| version | Select the compiler version you would like to install | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/d/devcontainer-feature.json b/src/d/devcontainer-feature.json deleted file mode 100644 index 25ffc78bf..000000000 --- a/src/d/devcontainer-feature.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "D (via dlang.org)", - "id": "d", - "version": "1.0.2", - "description": "D is a general-purpose programming language with static typing, systems-level access, and C-like syntax.", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/d", - "options": { - "compiler": { - "type": "string", - "proposals": [ - "dmd", - "ldc", - "gdc" - ], - "default": "dmd", - "description": "Options are: 'dmd', 'ldc' and 'gdc'" - }, - "version": { - "type": "string", - "proposals": [ - "latest" - ], - "default": "latest", - "description": "Select the compiler version you would like to install" - } - } -} \ No newline at end of file diff --git a/src/d/install.sh b/src/d/install.sh deleted file mode 100755 index 153c4cdbd..000000000 --- a/src/d/install.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/env bash -COMPILER_TYPE="${COMPILER:-"dmd"}" -COMPILER_VERSION="${VERSION:-"latest"}" - -case ${COMPILER_TYPE} in -dmd) ;; -ldc) ;; -gdc) ;; -*) - echo "(!) Compiler ${COMPILER_TYPE} unsupported, choose from: 'dmd', 'ldc', 'gdc'" - exit 1 - ;; -esac - -# VERBOSITY=0 -set -e - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# making sure curl is there, you never know -check_packages ca-certificates curl xz-utils - -curl -fsS https://dlang.org/install.sh >install_d.sh - -# source in order to get access to the $COMPILER to be used lated to activate -source install_d.sh install -p /usr/local/lib/dlang $COMPILER_TYPE -rm install_d.sh - -chmod +rx -R /usr/local/lib/dlang - -echo "source /usr/local/lib/dlang/$COMPILER/activate" >>/etc/bash.bashrc - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/dasel-asdf/README.md b/src/dasel-asdf/README.md deleted file mode 100644 index 550a9aff6..000000000 --- a/src/dasel-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Dasel (via asdf) (dasel-asdf) - -Dasel (short for data-selector) allows you to query and modify data structures using selector strings. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/dasel-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/dasel-asdf/devcontainer-feature.json b/src/dasel-asdf/devcontainer-feature.json deleted file mode 100644 index ad03d9870..000000000 --- a/src/dasel-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "dasel-asdf", - "version": "2.0.15", - "name": "Dasel (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/dasel-asdf", - "description": "Dasel (short for data-selector) allows you to query and modify data structures using selector strings.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/dasel-asdf/install.sh b/src/dasel-asdf/install.sh deleted file mode 100755 index 1053668d3..000000000 --- a/src/dasel-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='dasel' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/dasel-asdf/library_scripts.sh b/src/dasel-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/dasel-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/dashlane-cli/README.md b/src/dashlane-cli/README.md deleted file mode 100644 index ad528b96e..000000000 --- a/src/dashlane-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Dashlane CLI (via Github Releases) (dashlane-cli) - -Dashlane Command Line Interface allows you to get your passwords, otp and secure notes right from your terminal. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/dashlane-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/dashlane-cli/devcontainer-feature.json b/src/dashlane-cli/devcontainer-feature.json deleted file mode 100644 index 6fc92129b..000000000 --- a/src/dashlane-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "dashlane-cli", - "version": "1.0.14", - "name": "Dashlane CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/dashlane-cli", - "description": "Dashlane Command Line Interface allows you to get your passwords, otp and secure notes right from your terminal.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/dashlane-cli/install.sh b/src/dashlane-cli/install.sh deleted file mode 100755 index e62af6906..000000000 --- a/src/dashlane-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='Dashlane/dashlane-cli' --option binaryNames='dcli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/dashlane-cli/library_scripts.sh b/src/dashlane-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/dashlane-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/datadog-ci-cli/README.md b/src/datadog-ci-cli/README.md deleted file mode 100644 index 209887539..000000000 --- a/src/datadog-ci-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Datadog CI CLI (via Github Releases) (datadog-ci-cli) - -Execute commands with Datadog from within your Continuous Integration/Continuous Deployment scripts to perform end-to-end tests of your application before applying your changes or deploying. datadog-ci allows you to run Continuous Testing tests and wait for the results. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/datadog-ci-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/datadog-ci-cli/devcontainer-feature.json b/src/datadog-ci-cli/devcontainer-feature.json deleted file mode 100644 index 957c2ccee..000000000 --- a/src/datadog-ci-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "datadog-ci-cli", - "version": "1.0.7", - "name": "Datadog CI CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/datadog-ci-cli", - "description": "Execute commands with Datadog from within your Continuous Integration/Continuous Deployment scripts to perform end-to-end tests of your application before applying your changes or deploying. datadog-ci allows you to run Continuous Testing tests and wait for the results.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/datadog-ci-cli/install.sh b/src/datadog-ci-cli/install.sh deleted file mode 100755 index 20c7ffc27..000000000 --- a/src/datadog-ci-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='DataDog/datadog-ci' --option binaryNames='datadog-ci' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/datadog-ci-cli/library_scripts.sh b/src/datadog-ci-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/datadog-ci-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/datasette/README.md b/src/datasette/README.md deleted file mode 100644 index c4df437b5..000000000 --- a/src/datasette/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Datasette (via pipx) (datasette) - -Datasette is a tool for exploring and publishing data and is aimed at data journalists, museum curators, archivists, local governments, scientists and researchers. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/datasette:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/datasette/devcontainer-feature.json b/src/datasette/devcontainer-feature.json deleted file mode 100644 index 823b6cd64..000000000 --- a/src/datasette/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "datasette", - "version": "2.0.17", - "name": "Datasette (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/datasette", - "description": "Datasette is a tool for exploring and publishing data and is aimed at data journalists, museum curators, archivists, local governments, scientists and researchers.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/datasette/install.sh b/src/datasette/install.sh deleted file mode 100755 index 004688bf5..000000000 --- a/src/datasette/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='datasette' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/datasette/library_scripts.sh b/src/datasette/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/datasette/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/dbt-coverage/README.md b/src/dbt-coverage/README.md deleted file mode 100644 index 7144cedb3..000000000 --- a/src/dbt-coverage/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# dbt-coverage (via pipx) (dbt-coverage) - -dbt-coverage is a one-stop-shop for docs and test coverage of dbt projects. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/dbt-coverage:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/dbt-coverage/devcontainer-feature.json b/src/dbt-coverage/devcontainer-feature.json deleted file mode 100644 index 2d8218de9..000000000 --- a/src/dbt-coverage/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "dbt-coverage", - "version": "1.0.1", - "name": "dbt-coverage (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/dbt-coverage", - "description": "dbt-coverage is a one-stop-shop for docs and test coverage of dbt projects.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/dbt-coverage/install.sh b/src/dbt-coverage/install.sh deleted file mode 100755 index bbf18e8e0..000000000 --- a/src/dbt-coverage/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='dbt-coverage' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/dbt-coverage/library_scripts.sh b/src/dbt-coverage/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/dbt-coverage/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ddgr-apt-get/README.md b/src/ddgr-apt-get/README.md deleted file mode 100644 index d9c9c084f..000000000 --- a/src/ddgr-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ddgr (via apt-get) (ddgr-apt-get) - -ddgr is a cmdline utility to search DuckDuckGo from the terminal. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ddgr-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ddgr-apt-get/devcontainer-feature.json b/src/ddgr-apt-get/devcontainer-feature.json deleted file mode 100644 index ea11aa6bd..000000000 --- a/src/ddgr-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "ddgr-apt-get", - "version": "1.0.16", - "name": "ddgr (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ddgr-apt-get", - "description": "ddgr is a cmdline utility to search DuckDuckGo from the terminal.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/ddgr-apt-get/install.sh b/src/ddgr-apt-get/install.sh deleted file mode 100755 index d30a96133..000000000 --- a/src/ddgr-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='ddgr' - - -echo 'Done!' - diff --git a/src/ddgr-apt-get/library_scripts.sh b/src/ddgr-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ddgr-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/ddgr-homebrew/README.md b/src/ddgr-homebrew/README.md deleted file mode 100644 index a8ec95ae0..000000000 --- a/src/ddgr-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ddgr (via Homebrew) (ddgr-homebrew) - -ddgr is a cmdline utility to search DuckDuckGo from the terminal. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ddgr-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ddgr-homebrew/devcontainer-feature.json b/src/ddgr-homebrew/devcontainer-feature.json deleted file mode 100644 index 55bd99ccd..000000000 --- a/src/ddgr-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ddgr-homebrew", - "version": "1.0.20", - "name": "ddgr (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ddgr-homebrew", - "description": "ddgr is a cmdline utility to search DuckDuckGo from the terminal.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/ddgr-homebrew/install.sh b/src/ddgr-homebrew/install.sh deleted file mode 100755 index fe4c6f877..000000000 --- a/src/ddgr-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='ddgr' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/ddgr-homebrew/library_scripts.sh b/src/ddgr-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ddgr-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/deno-asdf/README.md b/src/deno-asdf/README.md deleted file mode 100644 index 036261fbf..000000000 --- a/src/deno-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Deno (via asdf) (deno-asdf) - -Deno is a simple, modern runtime for JavaScript and TypeScript that uses V8 and is built in Rust. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/deno-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/deno-asdf/devcontainer-feature.json b/src/deno-asdf/devcontainer-feature.json deleted file mode 100644 index e0bf5b16a..000000000 --- a/src/deno-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "deno-asdf", - "version": "2.0.15", - "name": "Deno (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/deno-asdf", - "description": "Deno is a simple, modern runtime for JavaScript and TypeScript that uses V8 and is built in Rust.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/deno-asdf/install.sh b/src/deno-asdf/install.sh deleted file mode 100755 index 328ce2525..000000000 --- a/src/deno-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='deno' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/deno-asdf/library_scripts.sh b/src/deno-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/deno-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/deno/README.md b/src/deno/README.md deleted file mode 100644 index 4ec339a16..000000000 --- a/src/deno/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Deno (via Github Releases) (deno) - -Deno is a simple, modern runtime for JavaScript and TypeScript that uses V8 and is built in Rust. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/deno:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the Deno version you would like to install | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/deno/devcontainer-feature.json b/src/deno/devcontainer-feature.json deleted file mode 100644 index a6ede0bbb..000000000 --- a/src/deno/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Deno (via Github Releases)", - "id": "deno", - "version": "1.0.2", - "description": "Deno is a simple, modern runtime for JavaScript and TypeScript that uses V8 and is built in Rust.", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/deno", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "1.27.1" - ], - "default": "latest", - "description": "Select the Deno version you would like to install" - } - } -} \ No newline at end of file diff --git a/src/deno/install.sh b/src/deno/install.sh deleted file mode 100755 index e9f96854e..000000000 --- a/src/deno/install.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env bash - -DENO_VERSION="${VERSION:-"latest"}" - -set -e - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Clean up -rm -rf /var/lib/apt/lists/* - -if [ "$OS" = "Windows_NT" ]; then - target="x86_64-pc-windows-msvc" -else - case $(uname -sm) in - "Darwin x86_64") target="x86_64-apple-darwin" ;; - "Darwin arm64") target="aarch64-apple-darwin" ;; - "Linux aarch64") - echo "Error: Official Deno builds for Linux aarch64 are not available. (https://github.com/denoland/deno/issues/1846)" 1>&2 - exit 1 - ;; - *) target="x86_64-unknown-linux-gnu" ;; - esac -fi - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# make sure we have curl -check_packages ca-certificates curl - -if [ "${DENO_VERSION}" == "latest" ]; then - deno_uri="https://github.com/denoland/deno/releases/latest/download/deno-${target}.zip" -else - deno_uri="https://github.com/denoland/deno/releases/download/v${DENO_VERSION}/deno-${target}.zip" -fi - -deno_install="/usr/local/lib/deno" -bin_dir="$deno_install/bin" -exe="$bin_dir/deno" - -if [ ! -d "$bin_dir" ]; then - mkdir -p "$bin_dir" -fi - -curl --fail --location --progress-bar --output "$exe.zip" "$deno_uri" -unzip -d "$bin_dir" -o "$exe.zip" -chmod +x "$exe" -rm "$exe.zip" - -ln -s $exe /usr/local/bin/deno - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/devcontainers-cli/README.md b/src/devcontainers-cli/README.md deleted file mode 100644 index d78084910..000000000 --- a/src/devcontainers-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# devcontainers CLI (via npm) (devcontainers-cli) - -The devcontainers CLI, which configures devcontainers from devcontainer.json. Requires the Docker client and access to a Docker engine socket (e.g. by mounting the host's Docker socket into the container) - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/devcontainers-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/devcontainers-cli/devcontainer-feature.json b/src/devcontainers-cli/devcontainer-feature.json deleted file mode 100644 index f02641900..000000000 --- a/src/devcontainers-cli/devcontainer-feature.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "id": "devcontainers-cli", - "version": "1.0.0", - "name": "devcontainers CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/devcontainers-cli", - "description": "The devcontainers CLI, which configures devcontainers from devcontainer.json. Requires the Docker client and access to a Docker engine socket (e.g. by mounting the host's Docker socket into the container)", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node", - "ghcr.io/devcontainers/features/docker-outside-of-docker" - ] -} \ No newline at end of file diff --git a/src/devcontainers-cli/install.sh b/src/devcontainers-cli/install.sh deleted file mode 100755 index 7ec2a7959..000000000 --- a/src/devcontainers-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@devcontainers/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/devcontainers-cli/library_scripts.sh b/src/devcontainers-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/devcontainers-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/digitalocean-cli/README.md b/src/digitalocean-cli/README.md deleted file mode 100644 index b5fe5f9bf..000000000 --- a/src/digitalocean-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# DigitalOcean CLI (via Github Releases) (digitalocean-cli) - -DigitalOcean CLI allows you to interact with the DigitalOcean API via the command line - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/digitalocean-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the DigitalOcean CLI version you would like to install | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/digitalocean-cli/devcontainer-feature.json b/src/digitalocean-cli/devcontainer-feature.json deleted file mode 100644 index 72b532c6b..000000000 --- a/src/digitalocean-cli/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "DigitalOcean CLI (via Github Releases)", - "id": "digitalocean-cli", - "version": "1.0.3", - "description": "DigitalOcean CLI allows you to interact with the DigitalOcean API via the command line", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/digitalocean-cli", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "1.84.1" - ], - "default": "latest", - "description": "Select the DigitalOcean CLI version you would like to install" - } - } -} \ No newline at end of file diff --git a/src/digitalocean-cli/install.sh b/src/digitalocean-cli/install.sh deleted file mode 100755 index bc8169e53..000000000 --- a/src/digitalocean-cli/install.sh +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/env bash - -DIGITALOCEAN_CLI_VERSION="${VERSION:-"latest"}" - -set -ex - -# Clean up -rm -rf /var/lib/apt/lists/* - -architecture="$(uname -m)" -case ${architecture} in -x86_64) architecture="amd64" ;; -aarch64 | armv8*) architecture="arm64" ;; -aarch32 | armv7* | armvhf*) architecture="arm" ;; -i?86) architecture="386" ;; -*) - echo "(!) Architecture ${architecture} unsupported" - exit 1 - ;; -esac - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# Figure out correct version of a three part version number is not passed -find_version_from_git_tags() { - local variable_name=$1 - local requested_version=${!variable_name} - if [ "${requested_version}" = "none" ]; then return; fi - local repository=$2 - local prefix=${3:-"tags/v"} - local separator=${4:-"."} - local last_part_optional=${5:-"false"} - if [ "$(echo "${requested_version}" | grep -o "." | wc -l)" != "2" ]; then - local escaped_separator=${separator//./\\.} - local last_part - if [ "${last_part_optional}" = "true" ]; then - last_part="(${escaped_separator}[0-9]+)?" - else - last_part="${escaped_separator}[0-9]+" - fi - local regex="${prefix}\\K[0-9]+${escaped_separator}[0-9]+${last_part}$" - local version_list="$(git ls-remote --tags ${repository} | grep -oP "${regex}" | tr -d ' ' | tr "${separator}" "." | sort -rV)" - if [ "${requested_version}" = "latest" ] || [ "${requested_version}" = "current" ] || [ "${requested_version}" = "lts" ]; then - declare -g ${variable_name}="$(echo "${version_list}" | head -n 1)" - else - set +e - declare -g ${variable_name}="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|$)")" - set -e - fi - fi - if [ -z "${!variable_name}" ] || ! echo "${version_list}" | grep "^${!variable_name//./\\.}$" >/dev/null 2>&1; then - echo -e "Invalid ${variable_name} value: ${requested_version}\nValid values:\n${version_list}" >&2 - exit 1 - fi - echo "${variable_name}=${!variable_name}" -} - -# make sure we have curl, tar -check_packages ca-certificates curl tar - -# make sure version is available -find_version_from_git_tags DIGITALOCEAN_CLI_VERSION 'https://github.com/digitalocean/doctl' - -# download binary -DIGITALOCEAN_CLI_FILENAME=doctl-${DIGITALOCEAN_CLI_VERSION}-linux-${architecture}.tar.gz - -curl -sSL https://github.com/digitalocean/doctl/releases/download/v${DIGITALOCEAN_CLI_VERSION}/${DIGITALOCEAN_CLI_FILENAME} -o "${DIGITALOCEAN_CLI_FILENAME}" - -# untar -tar xf ./"${DIGITALOCEAN_CLI_FILENAME}" - -# Make binary executable -chmod +x ./doctl - -mv ./doctl /usr/local/bin/doctl - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/direnv-asdf/README.md b/src/direnv-asdf/README.md deleted file mode 100644 index 2720ea0e3..000000000 --- a/src/direnv-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# direnv (via asdf) (direnv-asdf) - -direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/direnv-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/direnv-asdf/devcontainer-feature.json b/src/direnv-asdf/devcontainer-feature.json deleted file mode 100644 index 3f762be2e..000000000 --- a/src/direnv-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "direnv-asdf", - "version": "2.0.15", - "name": "direnv (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/direnv-asdf", - "description": "direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/direnv-asdf/install.sh b/src/direnv-asdf/install.sh deleted file mode 100755 index 824768567..000000000 --- a/src/direnv-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='direnv' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/direnv-asdf/library_scripts.sh b/src/direnv-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/direnv-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/direnv/README.md b/src/direnv/README.md deleted file mode 100644 index 2d60d794b..000000000 --- a/src/direnv/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Direnv (via Github Releases) (direnv) - -direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/direnv:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/direnv/devcontainer-feature.json b/src/direnv/devcontainer-feature.json deleted file mode 100644 index ad636a933..000000000 --- a/src/direnv/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "direnv", - "version": "1.0.2", - "name": "Direnv (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/direnv", - "description": "direnv is an extension for your shell. It augments existing shells with a new feature that can load and unload environment variables depending on the current directory.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/direnv/install.sh b/src/direnv/install.sh deleted file mode 100755 index a43d38a70..000000000 --- a/src/direnv/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='direnv/direnv' --option binaryNames='direnv' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/direnv/library_scripts.sh b/src/direnv/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/direnv/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/dive/README.md b/src/dive/README.md deleted file mode 100644 index 405399fa5..000000000 --- a/src/dive/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Dive (via Github Releases) (dive) - -Dive is a tool for exploring a docker image, layer contents, and discovering ways to shrink the size of your Docker/OCI image. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/dive:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/dive/devcontainer-feature.json b/src/dive/devcontainer-feature.json deleted file mode 100644 index f20dafb35..000000000 --- a/src/dive/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "dive", - "version": "1.0.14", - "name": "Dive (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/dive", - "description": "Dive is a tool for exploring a docker image, layer contents, and discovering ways to shrink the size of your Docker/OCI image.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/dive/install.sh b/src/dive/install.sh deleted file mode 100755 index 3cff973e1..000000000 --- a/src/dive/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='wagoodman/dive' --option binaryNames='dive' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/dive/library_scripts.sh b/src/dive/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/dive/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/dnote/README.md b/src/dnote/README.md deleted file mode 100644 index ee9a4cab7..000000000 --- a/src/dnote/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Dnote (via Github Releases) (dnote) - -Dnote is a simple command line notebook for programmers. It keeps you focused by providing a way of effortlessly capturing and retrieving information without leaving your terminal. It also offers a seamless multi-device sync. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/dnote:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/dnote/devcontainer-feature.json b/src/dnote/devcontainer-feature.json deleted file mode 100644 index 75ba4c4c7..000000000 --- a/src/dnote/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "dnote", - "version": "1.0.9", - "name": "Dnote (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/dnote", - "description": "Dnote is a simple command line notebook for programmers. It keeps you focused by providing a way of effortlessly capturing and retrieving information without leaving your terminal. It also offers a seamless multi-device sync.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/dnote/install.sh b/src/dnote/install.sh deleted file mode 100755 index 23df79307..000000000 --- a/src/dnote/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='dnote/dnote' --option binaryNames='dnote' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/dnote/library_scripts.sh b/src/dnote/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/dnote/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/doctoolchain-sdkman/README.md b/src/doctoolchain-sdkman/README.md deleted file mode 100644 index 03b5c1d8c..000000000 --- a/src/doctoolchain-sdkman/README.md +++ /dev/null @@ -1,29 +0,0 @@ - -# docToolchain (via SDKMAN) (doctoolchain-sdkman) - -docToolchain is an implementation of the docs-as-code approach for software -architecture plus some additional automation. The basis of docToolchain is the -philosophy that software documentation should be treated in the same way as code -together with the arc42 template for software architecture. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/doctoolchain-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/doctoolchain-sdkman/devcontainer-feature.json b/src/doctoolchain-sdkman/devcontainer-feature.json deleted file mode 100644 index c854f6648..000000000 --- a/src/doctoolchain-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "doctoolchain-sdkman", - "version": "2.0.15", - "name": "docToolchain (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/doctoolchain-sdkman", - "description": "docToolchain is an implementation of the docs-as-code approach for software\narchitecture plus some additional automation. The basis of docToolchain is the\nphilosophy that software documentation should be treated in the same way as code\ntogether with the arc42 template for software architecture.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/doctoolchain-sdkman/install.sh b/src/doctoolchain-sdkman/install.sh deleted file mode 100755 index d88d452fe..000000000 --- a/src/doctoolchain-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='doctoolchain' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/doctoolchain-sdkman/library_scripts.sh b/src/doctoolchain-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/doctoolchain-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/dprint-asdf/README.md b/src/dprint-asdf/README.md deleted file mode 100644 index c612d4ca6..000000000 --- a/src/dprint-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# dprint (via asdf) (dprint-asdf) - -dprint is a pluggable and configurable code formatting platform written in Rust. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/dprint-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/dprint-asdf/devcontainer-feature.json b/src/dprint-asdf/devcontainer-feature.json deleted file mode 100644 index c58a7aac0..000000000 --- a/src/dprint-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "dprint-asdf", - "version": "2.0.15", - "name": "dprint (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/dprint-asdf", - "description": "dprint is a pluggable and configurable code formatting platform written in Rust.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/dprint-asdf/install.sh b/src/dprint-asdf/install.sh deleted file mode 100755 index daa081ff2..000000000 --- a/src/dprint-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='dprint' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/dprint-asdf/library_scripts.sh b/src/dprint-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/dprint-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/driftctl/README.md b/src/driftctl/README.md deleted file mode 100644 index 19f4dac00..000000000 --- a/src/driftctl/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# driftctl (via Github Releases) (driftctl) - -driftctl detect, track and alert on infrastructure drift. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/driftctl:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/driftctl/devcontainer-feature.json b/src/driftctl/devcontainer-feature.json deleted file mode 100644 index a938c38cd..000000000 --- a/src/driftctl/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "driftctl", - "version": "1.0.5", - "name": "driftctl (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/driftctl", - "description": "driftctl detect, track and alert on infrastructure drift.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/driftctl/install.sh b/src/driftctl/install.sh deleted file mode 100755 index 0de542f58..000000000 --- a/src/driftctl/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='snyk/driftctl' --option binaryNames='driftctl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/driftctl/library_scripts.sh b/src/driftctl/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/driftctl/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/drone-cli/README.md b/src/drone-cli/README.md deleted file mode 100644 index eeeb515b3..000000000 --- a/src/drone-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Drone CLI (via Github Releases) (drone-cli) - -Drone CLI is a command line client for the Drone continuous integration server. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/drone-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/drone-cli/devcontainer-feature.json b/src/drone-cli/devcontainer-feature.json deleted file mode 100644 index f1f2fa7eb..000000000 --- a/src/drone-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "drone-cli", - "version": "1.0.7", - "name": "Drone CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/drone-cli", - "description": "Drone CLI is a command line client for the Drone continuous integration server.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/drone-cli/install.sh b/src/drone-cli/install.sh deleted file mode 100755 index 50bbf1e49..000000000 --- a/src/drone-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='harness/drone-cli' --option binaryNames='drone' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/drone-cli/library_scripts.sh b/src/drone-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/drone-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/dua/README.md b/src/dua/README.md deleted file mode 100644 index add90ca8e..000000000 --- a/src/dua/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# dua (Disk Usage Analyzer) (via Github Releases) (dua) - -dua (Disk Usage Analyzer) is a tool to conveniently learn about the usage of disk space of a given directory. It's parallel by default and will max out your SSD, providing relevant information as fast as possible. Optionally delete superfluous data, and do so more quickly than rm. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/dua:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/dua/devcontainer-feature.json b/src/dua/devcontainer-feature.json deleted file mode 100644 index e2f6cf688..000000000 --- a/src/dua/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "dua", - "version": "1.0.14", - "name": "dua (Disk Usage Analyzer) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/dua", - "description": "dua (Disk Usage Analyzer) is a tool to conveniently learn about the usage of disk space of a given directory. It's parallel by default and will max out your SSD, providing relevant information as fast as possible. Optionally delete superfluous data, and do so more quickly than rm.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/dua/install.sh b/src/dua/install.sh deleted file mode 100755 index 3d5dfe243..000000000 --- a/src/dua/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='Byron/dua-cli' --option binaryNames='dua' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/dua/library_scripts.sh b/src/dua/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/dua/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/duf/README.md b/src/duf/README.md deleted file mode 100644 index 52851d712..000000000 --- a/src/duf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# duf (Disk Usage/Free Utility) (via Github Releases) (duf) - -duf is a better 'df' alternative. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/duf:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/duf/devcontainer-feature.json b/src/duf/devcontainer-feature.json deleted file mode 100644 index 24366d0f6..000000000 --- a/src/duf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "duf", - "version": "1.0.14", - "name": "duf (Disk Usage/Free Utility) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/duf", - "description": "duf is a better 'df' alternative.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/duf/install.sh b/src/duf/install.sh deleted file mode 100755 index b6eecfa56..000000000 --- a/src/duf/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='muesli/duf' --option binaryNames='duf' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/duf/library_scripts.sh b/src/duf/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/duf/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/dufs/README.md b/src/dufs/README.md deleted file mode 100644 index ca54f3e66..000000000 --- a/src/dufs/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Dufs (via Github Releases) (dufs) - -Dufs is a distinctive utility file server that supports static serving, uploading, searching, accessing control, webdav and more. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/dufs:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/dufs/devcontainer-feature.json b/src/dufs/devcontainer-feature.json deleted file mode 100644 index 296b8b5f9..000000000 --- a/src/dufs/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "dufs", - "version": "1.0.14", - "name": "Dufs (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/dufs", - "description": "Dufs is a distinctive utility file server that supports static serving, uploading, searching, accessing control, webdav and more.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/dufs/install.sh b/src/dufs/install.sh deleted file mode 100755 index 20490f730..000000000 --- a/src/dufs/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sigoden/dufs' --option binaryNames='dufs' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/dufs/library_scripts.sh b/src/dufs/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/dufs/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/eas-cli/README.md b/src/eas-cli/README.md deleted file mode 100644 index a8b4aba0a..000000000 --- a/src/eas-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# EAS CLI (via npm) (eas-cli) - -EAS CLI is the command line app you will use to interact with EAS services from your terminal. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/eas-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of EAS CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/eas-cli/devcontainer-feature.json b/src/eas-cli/devcontainer-feature.json deleted file mode 100644 index 7f65a8416..000000000 --- a/src/eas-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "eas-cli", - "version": "1.0.10", - "name": "EAS CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/eas-cli", - "description": "EAS CLI is the command line app you will use to interact with EAS services from your terminal.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of EAS CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/eas-cli/install.sh b/src/eas-cli/install.sh deleted file mode 100755 index 5601d11d2..000000000 --- a/src/eas-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='eas-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/eas-cli/library_scripts.sh b/src/eas-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/eas-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/eget/README.md b/src/eget/README.md deleted file mode 100644 index f831b25d5..000000000 --- a/src/eget/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Eget (via Github Releases) (eget) - -Eget easily install prebuilt binaries from GitHub. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/eget:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/eget/devcontainer-feature.json b/src/eget/devcontainer-feature.json deleted file mode 100644 index 2d4cea602..000000000 --- a/src/eget/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "eget", - "version": "1.0.14", - "name": "Eget (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/eget", - "description": "Eget easily install prebuilt binaries from GitHub.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/eget/install.sh b/src/eget/install.sh deleted file mode 100755 index 508ab5a7f..000000000 --- a/src/eget/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='zyedidia/eget' --option binaryNames='eget' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/eget/library_scripts.sh b/src/eget/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/eget/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/elasticsearch-asdf/README.md b/src/elasticsearch-asdf/README.md deleted file mode 100644 index 4bc2fee5d..000000000 --- a/src/elasticsearch-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Elasticsearch (via asdf) (elasticsearch-asdf) - -Elasticsearch is a search engine based on the Lucene library. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/elasticsearch-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/elasticsearch-asdf/devcontainer-feature.json b/src/elasticsearch-asdf/devcontainer-feature.json deleted file mode 100644 index 7ad070706..000000000 --- a/src/elasticsearch-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "elasticsearch-asdf", - "version": "2.0.15", - "name": "Elasticsearch (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/elasticsearch-asdf", - "description": "Elasticsearch is a search engine based on the Lucene library.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/elasticsearch-asdf/install.sh b/src/elasticsearch-asdf/install.sh deleted file mode 100755 index 54a865b6b..000000000 --- a/src/elasticsearch-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='elasticsearch' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/elasticsearch-asdf/library_scripts.sh b/src/elasticsearch-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/elasticsearch-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/elm-asdf/README.md b/src/elm-asdf/README.md deleted file mode 100644 index 44ea04292..000000000 --- a/src/elm-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Elm (via asdf) (elm-asdf) - -Elm is a domain-specific programming language for declaratively creating web browser-based graphical user interfaces. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/elm-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/elm-asdf/devcontainer-feature.json b/src/elm-asdf/devcontainer-feature.json deleted file mode 100644 index 339f64b9f..000000000 --- a/src/elm-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "elm-asdf", - "version": "2.0.15", - "name": "Elm (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/elm-asdf", - "description": "Elm is a domain-specific programming language for declaratively creating web browser-based graphical user interfaces.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/elm-asdf/install.sh b/src/elm-asdf/install.sh deleted file mode 100755 index d36168519..000000000 --- a/src/elm-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='elm' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/elm-asdf/library_scripts.sh b/src/elm-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/elm-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/ember-cli/README.md b/src/ember-cli/README.md deleted file mode 100644 index c08823be6..000000000 --- a/src/ember-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ember CLI (via npm) (ember-cli) - -The Ember CLI (command line interface) is the official way to create, build, test, and serve the files that make up an Ember app or addon. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ember-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ember-cli/devcontainer-feature.json b/src/ember-cli/devcontainer-feature.json deleted file mode 100644 index 6e0d71513..000000000 --- a/src/ember-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "ember-cli", - "version": "1.0.2", - "name": "Ember CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ember-cli", - "description": "The Ember CLI (command line interface) is the official way to create, build, test, and serve the files that make up an Ember app or addon.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/ember-cli/install.sh b/src/ember-cli/install.sh deleted file mode 100755 index 4b54522b7..000000000 --- a/src/ember-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='ember-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ember-cli/library_scripts.sh b/src/ember-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ember-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/envoy/README.md b/src/envoy/README.md deleted file mode 100644 index f7643bcdd..000000000 --- a/src/envoy/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Envoy (via Github Releases) (envoy) - -Envoy is an L7 proxy and communication bus designed for large modern service oriented architectures. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/envoy:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/envoy/devcontainer-feature.json b/src/envoy/devcontainer-feature.json deleted file mode 100644 index 7ef48445e..000000000 --- a/src/envoy/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "envoy", - "version": "1.0.5", - "name": "Envoy (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/envoy", - "description": "Envoy is an L7 proxy and communication bus designed for large modern service oriented architectures.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/envoy/install.sh b/src/envoy/install.sh deleted file mode 100755 index 35464acf5..000000000 --- a/src/envoy/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='envoyproxy/envoy' --option binaryNames='envoy' --option version="$VERSION" --option assetRegex='^(?!.*(contrib))' - - - -echo 'Done!' - diff --git a/src/envoy/library_scripts.sh b/src/envoy/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/envoy/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/epinio/README.md b/src/epinio/README.md deleted file mode 100644 index 7fd0f7d60..000000000 --- a/src/epinio/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Epinio (via Github Releases) (epinio) - -Epinio is an opinionated platform that runs on Kubernetes to take you from Code to URL in one step. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/epinio:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/epinio/devcontainer-feature.json b/src/epinio/devcontainer-feature.json deleted file mode 100644 index 364bffe76..000000000 --- a/src/epinio/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "epinio", - "version": "1.0.0", - "name": "Epinio (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/epinio", - "description": "Epinio is an opinionated platform that runs on Kubernetes to take you from Code to URL in one step.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/epinio/install.sh b/src/epinio/install.sh deleted file mode 100755 index 75e08b6d2..000000000 --- a/src/epinio/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='epinio/epinio' --option binaryNames='epinio' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/epinio/library_scripts.sh b/src/epinio/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/epinio/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/etcd/README.md b/src/etcd/README.md deleted file mode 100644 index aca14fff8..000000000 --- a/src/etcd/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# etcd (via Github Releases) (etcd) - -etcd is a distributed reliable key-value store for the most critical data of a distributed system. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/etcd:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/etcd/devcontainer-feature.json b/src/etcd/devcontainer-feature.json deleted file mode 100644 index 60d2ca3fb..000000000 --- a/src/etcd/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "etcd", - "version": "1.0.11", - "name": "etcd (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/etcd", - "description": "etcd is a distributed reliable key-value store for the most critical data of a distributed system.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/etcd/install.sh b/src/etcd/install.sh deleted file mode 100755 index 79d394d32..000000000 --- a/src/etcd/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='etcd-io/etcd' --option binaryNames='etcd,etcdctl' --option version="$VERSION" --option libName='etcd' - - - -echo 'Done!' - diff --git a/src/etcd/library_scripts.sh b/src/etcd/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/etcd/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/exa/README.md b/src/exa/README.md deleted file mode 100644 index 051c5e167..000000000 --- a/src/exa/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# exa (via Github Releases) (exa) - -exa is a modern replacement for ls. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/exa:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/exa/devcontainer-feature.json b/src/exa/devcontainer-feature.json deleted file mode 100644 index 3a0f0868f..000000000 --- a/src/exa/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "exa", - "version": "1.0.14", - "name": "exa (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/exa", - "description": "exa is a modern replacement for ls.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/exa/install.sh b/src/exa/install.sh deleted file mode 100755 index 10fddf239..000000000 --- a/src/exa/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ogham/exa' --option binaryNames='exa' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/exa/library_scripts.sh b/src/exa/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/exa/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/exercism-cli/README.md b/src/exercism-cli/README.md deleted file mode 100644 index a2939f3f7..000000000 --- a/src/exercism-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Exercism CLI (via Github Releases) (exercism-cli) - -Exercism CLI is the link between the Exercism website and your local work environment. It lets you download exercises and submit your solution to the site. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/exercism-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/exercism-cli/devcontainer-feature.json b/src/exercism-cli/devcontainer-feature.json deleted file mode 100644 index 28d6eda49..000000000 --- a/src/exercism-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "exercism-cli", - "version": "1.0.6", - "name": "Exercism CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/exercism-cli", - "description": "Exercism CLI is the link between the Exercism website and your local work environment. It lets you download exercises and submit your solution to the site.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/exercism-cli/install.sh b/src/exercism-cli/install.sh deleted file mode 100755 index 33e14f7fa..000000000 --- a/src/exercism-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='exercism/cli' --option binaryNames='exercism' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/exercism-cli/library_scripts.sh b/src/exercism-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/exercism-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/expo-cli/README.md b/src/expo-cli/README.md deleted file mode 100644 index 106bfffe2..000000000 --- a/src/expo-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Expo CLI (via npm) (expo-cli) - -The Expo CLI is a command-line tool that is the primary interface between a developer and other Expo tools. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/expo-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Expo CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/expo-cli/devcontainer-feature.json b/src/expo-cli/devcontainer-feature.json deleted file mode 100644 index 45e0edb74..000000000 --- a/src/expo-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "expo-cli", - "version": "1.0.10", - "name": "Expo CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/expo-cli", - "description": "The Expo CLI is a command-line tool that is the primary interface between a developer and other Expo tools.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Expo CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/expo-cli/install.sh b/src/expo-cli/install.sh deleted file mode 100755 index d6f41e99b..000000000 --- a/src/expo-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='expo-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/expo-cli/library_scripts.sh b/src/expo-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/expo-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/express-generator/README.md b/src/express-generator/README.md deleted file mode 100644 index 2257ff363..000000000 --- a/src/express-generator/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Express Application Generator (via npm) (express-generator) - -Express Application Generator is a handy tool for creating skeleton Express web apps. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/express-generator:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Express Application Generator to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/express-generator/devcontainer-feature.json b/src/express-generator/devcontainer-feature.json deleted file mode 100644 index 42f2037f5..000000000 --- a/src/express-generator/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "express-generator", - "version": "2.0.15", - "name": "Express Application Generator (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/express-generator", - "description": "Express Application Generator is a handy tool for creating skeleton Express web apps.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Express Application Generator to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/express-generator/install.sh b/src/express-generator/install.sh deleted file mode 100755 index f36b19d14..000000000 --- a/src/express-generator/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='express-generator' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/express-generator/library_scripts.sh b/src/express-generator/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/express-generator/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/fd/README.md b/src/fd/README.md deleted file mode 100644 index 1caee5649..000000000 --- a/src/fd/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# fd (via Github Releases) (fd) - -fd is a simple, fast and user-friendly alternative to 'find'. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/fd:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/fd/devcontainer-feature.json b/src/fd/devcontainer-feature.json deleted file mode 100644 index a1e4979db..000000000 --- a/src/fd/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "fd", - "version": "1.0.14", - "name": "fd (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/fd", - "description": "fd is a simple, fast and user-friendly alternative to 'find'.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/fd/install.sh b/src/fd/install.sh deleted file mode 100755 index 33854495d..000000000 --- a/src/fd/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sharkdp/fd' --option binaryNames='fd' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/fd/library_scripts.sh b/src/fd/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/fd/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ffmpeg-apt-get/README.md b/src/ffmpeg-apt-get/README.md deleted file mode 100644 index dda7237df..000000000 --- a/src/ffmpeg-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# FFmpeg (via apt-get) (ffmpeg-apt-get) - -FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ffmpeg-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ffmpeg-apt-get/devcontainer-feature.json b/src/ffmpeg-apt-get/devcontainer-feature.json deleted file mode 100644 index fc7f7b57b..000000000 --- a/src/ffmpeg-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "ffmpeg-apt-get", - "version": "1.0.16", - "name": "FFmpeg (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ffmpeg-apt-get", - "description": "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/ffmpeg-apt-get/install.sh b/src/ffmpeg-apt-get/install.sh deleted file mode 100755 index f4dff9524..000000000 --- a/src/ffmpeg-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='ffmpeg' - - -echo 'Done!' - diff --git a/src/ffmpeg-apt-get/library_scripts.sh b/src/ffmpeg-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ffmpeg-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/firebase-cli/README.md b/src/firebase-cli/README.md deleted file mode 100644 index e2a47b93e..000000000 --- a/src/firebase-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Firebase CLI (via npm) (firebase-cli) - -The Firebase CLI (GitHub) provides a variety of tools for managing, viewing, and deploying to Firebase projects. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/firebase-cli:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Firebase CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/firebase-cli/devcontainer-feature.json b/src/firebase-cli/devcontainer-feature.json deleted file mode 100644 index 18be4db00..000000000 --- a/src/firebase-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "firebase-cli", - "version": "2.0.15", - "name": "Firebase CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/firebase-cli", - "description": "The Firebase CLI (GitHub) provides a variety of tools for managing, viewing, and deploying to Firebase projects.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Firebase CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/firebase-cli/install.sh b/src/firebase-cli/install.sh deleted file mode 100755 index a844ccff9..000000000 --- a/src/firebase-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='firebase-tools' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/firebase-cli/library_scripts.sh b/src/firebase-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/firebase-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/fish-apt-get/README.md b/src/fish-apt-get/README.md deleted file mode 100644 index 959d9d29b..000000000 --- a/src/fish-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# fish (via apt-get) (fish-apt-get) - -fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish includes features like syntax highlighting, autosuggest-as-you-type, and fancy tab completions that just work, with no configuration required. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/fish-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/fish-apt-get/devcontainer-feature.json b/src/fish-apt-get/devcontainer-feature.json deleted file mode 100644 index 0e66a42d1..000000000 --- a/src/fish-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "fish-apt-get", - "version": "1.0.4", - "name": "fish (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/fish-apt-get", - "description": "fish is a smart and user-friendly command line shell for macOS, Linux, and the rest of the family. fish includes features like syntax highlighting, autosuggest-as-you-type, and fancy tab completions that just work, with no configuration required.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/fish-apt-get/install.sh b/src/fish-apt-get/install.sh deleted file mode 100755 index d5819623a..000000000 --- a/src/fish-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='fish' - - -echo 'Done!' - diff --git a/src/fish-apt-get/library_scripts.sh b/src/fish-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/fish-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/fkill/README.md b/src/fkill/README.md deleted file mode 100644 index 6454b7229..000000000 --- a/src/fkill/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# fkill (via npm) (fkill) - -fkill fabulously kill processes. Cross-platform. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/fkill:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/fkill/devcontainer-feature.json b/src/fkill/devcontainer-feature.json deleted file mode 100644 index 71cc627fa..000000000 --- a/src/fkill/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "fkill", - "version": "2.0.15", - "name": "fkill (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/fkill", - "description": "fkill fabulously kill processes. Cross-platform.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/fkill/install.sh b/src/fkill/install.sh deleted file mode 100755 index b5e4eeb9a..000000000 --- a/src/fkill/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='fkill-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/fkill/library_scripts.sh b/src/fkill/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/fkill/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/flake8/README.md b/src/flake8/README.md deleted file mode 100644 index 058525308..000000000 --- a/src/flake8/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Flake8 (via pipx) (flake8) - -Flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/flake8:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| plugins | A space delimitered list of flake8 plugins (will be injected into the flake8 pipx env). see proposals for examples | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/flake8/devcontainer-feature.json b/src/flake8/devcontainer-feature.json deleted file mode 100644 index 6ba6fb9d2..000000000 --- a/src/flake8/devcontainer-feature.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "id": "flake8", - "version": "2.0.17", - "name": "Flake8 (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/flake8", - "description": "Flake8 is a python tool that glues together pycodestyle, pyflakes, mccabe, and third-party plugins.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "plugins": { - "default": "", - "description": "A space delimitered list of flake8 plugins (will be injected into the flake8 pipx env). see proposals for examples", - "proposals": [ - "flake8-black", - "flake8-black flake8-isort flake8-print flake8-bandit flake8-pylint flake8-builtins flake8-spellcheck flake8-pytest-style flake8-django flake8-fastapi" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/flake8/install.sh b/src/flake8/install.sh deleted file mode 100755 index 3071e6a54..000000000 --- a/src/flake8/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='flake8' --option injections="$PLUGINS" --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/flake8/library_scripts.sh b/src/flake8/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/flake8/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/flink-sdkman/README.md b/src/flink-sdkman/README.md deleted file mode 100644 index 4e880313c..000000000 --- a/src/flink-sdkman/README.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Flink (via SDKMAN) (flink-sdkman) - -Apache Flink is an open-source, unified stream-processing and batch-processing -framework.It's a distributed processing engine for stateful computations over -unbounded and bounded data streams.It has been designed to run in all common -cluster environments, perform computations at in-memory speed and at any scale. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/flink-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/flink-sdkman/devcontainer-feature.json b/src/flink-sdkman/devcontainer-feature.json deleted file mode 100644 index 3180f9ee2..000000000 --- a/src/flink-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "flink-sdkman", - "version": "2.0.15", - "name": "Flink (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/flink-sdkman", - "description": "Apache Flink is an open-source, unified stream-processing and batch-processing\nframework.It's a distributed processing engine for stateful computations over\nunbounded and bounded data streams.It has been designed to run in all common\ncluster environments, perform computations at in-memory speed and at any scale.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/flink-sdkman/install.sh b/src/flink-sdkman/install.sh deleted file mode 100755 index ef8340a0d..000000000 --- a/src/flink-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='flink' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/flink-sdkman/library_scripts.sh b/src/flink-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/flink-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/flit/README.md b/src/flit/README.md deleted file mode 100644 index 9f693fec1..000000000 --- a/src/flit/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Flit (via pipx) (flit) - -Flit is a simple way to put Python packages and modules on PyPI. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/flit:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/flit/devcontainer-feature.json b/src/flit/devcontainer-feature.json deleted file mode 100644 index c3791ce7f..000000000 --- a/src/flit/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "flit", - "version": "2.0.17", - "name": "Flit (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/flit", - "description": "Flit is a simple way to put Python packages and modules on PyPI.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/flit/install.sh b/src/flit/install.sh deleted file mode 100755 index 5e370f24c..000000000 --- a/src/flit/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='flit' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/flit/library_scripts.sh b/src/flit/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/flit/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/former2-cli/README.md b/src/former2-cli/README.md deleted file mode 100644 index 0b651e9a0..000000000 --- a/src/former2-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Former2 CLI (via npm) (former2-cli) - -The Former2 CLI allows you to use the former2.com tool directly from your command line. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/former2-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/former2-cli/devcontainer-feature.json b/src/former2-cli/devcontainer-feature.json deleted file mode 100644 index 3d4c4111e..000000000 --- a/src/former2-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "former2-cli", - "version": "1.0.2", - "name": "Former2 CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/former2-cli", - "description": "The Former2 CLI allows you to use the former2.com tool directly from your command line.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/former2-cli/install.sh b/src/former2-cli/install.sh deleted file mode 100755 index 1d2e8124e..000000000 --- a/src/former2-cli/install.sh +++ /dev/null @@ -1,31 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='former2' --option version="$VERSION" - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@shopify/theme' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/former2-cli/library_scripts.sh b/src/former2-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/former2-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/fossil-apt-get/README.md b/src/fossil-apt-get/README.md deleted file mode 100644 index 96a723e9f..000000000 --- a/src/fossil-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Fossil (via apt-get) (fossil-apt-get) - -Fossil is a simple, high-reliability, distributed software configuration management system. It is capable of performing distributed version control, bug tracking, wiki services, and blogging. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/fossil-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/fossil-apt-get/devcontainer-feature.json b/src/fossil-apt-get/devcontainer-feature.json deleted file mode 100644 index 674ee9d51..000000000 --- a/src/fossil-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "fossil-apt-get", - "version": "1.0.16", - "name": "Fossil (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/fossil-apt-get", - "description": "Fossil is a simple, high-reliability, distributed software configuration management system. It is capable of performing distributed version control, bug tracking, wiki services, and blogging.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/fossil-apt-get/install.sh b/src/fossil-apt-get/install.sh deleted file mode 100755 index 768218d5d..000000000 --- a/src/fossil-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='fossil' - - -echo 'Done!' - diff --git a/src/fossil-apt-get/library_scripts.sh b/src/fossil-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/fossil-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/fossil-homebrew/README.md b/src/fossil-homebrew/README.md deleted file mode 100644 index 089dc9a63..000000000 --- a/src/fossil-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Fossil (via Homebrew) (fossil-homebrew) - -Fossil is a simple, high-reliability, distributed software configuration management system. It is capable of performing distributed version control, bug tracking, wiki services, and blogging. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/fossil-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/fossil-homebrew/devcontainer-feature.json b/src/fossil-homebrew/devcontainer-feature.json deleted file mode 100644 index 0f63e090d..000000000 --- a/src/fossil-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "fossil-homebrew", - "version": "1.0.20", - "name": "Fossil (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/fossil-homebrew", - "description": "Fossil is a simple, high-reliability, distributed software configuration management system. It is capable of performing distributed version control, bug tracking, wiki services, and blogging.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/fossil-homebrew/install.sh b/src/fossil-homebrew/install.sh deleted file mode 100755 index 1707b1c2a..000000000 --- a/src/fossil-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='fossil' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/fossil-homebrew/library_scripts.sh b/src/fossil-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/fossil-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/fulcio/README.md b/src/fulcio/README.md deleted file mode 100644 index 54fb39817..000000000 --- a/src/fulcio/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Fulcio (via Github Releases) (fulcio) - -Fulcio is a free-to-use certificate authority for issuing code signing certificates for an OpenID Connect (OIDC) identity, such as email address. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/fulcio:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/fulcio/devcontainer-feature.json b/src/fulcio/devcontainer-feature.json deleted file mode 100644 index 2fd2832b2..000000000 --- a/src/fulcio/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "fulcio", - "version": "1.0.9", - "name": "Fulcio (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/fulcio", - "description": "Fulcio is a free-to-use certificate authority for issuing code signing certificates for an OpenID Connect (OIDC) identity, such as email address.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/fulcio/install.sh b/src/fulcio/install.sh deleted file mode 100755 index ac9a73add..000000000 --- a/src/fulcio/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sigstore/fulcio' --option binaryNames='fulcio' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/fulcio/library_scripts.sh b/src/fulcio/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/fulcio/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/fzf/README.md b/src/fzf/README.md deleted file mode 100644 index 2c88fd5c9..000000000 --- a/src/fzf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# fzf (via Github Releases) (fzf) - -fzf is a general-purpose command-line fuzzy finder. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/fzf:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/fzf/devcontainer-feature.json b/src/fzf/devcontainer-feature.json deleted file mode 100644 index 3e460d9a4..000000000 --- a/src/fzf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "fzf", - "version": "1.0.14", - "name": "fzf (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/fzf", - "description": "fzf is a general-purpose command-line fuzzy finder.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/fzf/install.sh b/src/fzf/install.sh deleted file mode 100755 index 27a044b60..000000000 --- a/src/fzf/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='junegunn/fzf' --option binaryNames='fzf' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/fzf/library_scripts.sh b/src/fzf/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/fzf/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gaiden-sdkman/README.md b/src/gaiden-sdkman/README.md deleted file mode 100644 index 14ddd3cd2..000000000 --- a/src/gaiden-sdkman/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Gaiden (via SDKMAN) (gaiden-sdkman) - -Gaiden is a tool that makes it easy to create documentation with Markdown. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gaiden-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gaiden-sdkman/devcontainer-feature.json b/src/gaiden-sdkman/devcontainer-feature.json deleted file mode 100644 index 60b3b7529..000000000 --- a/src/gaiden-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "id": "gaiden-sdkman", - "version": "2.0.15", - "name": "Gaiden (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gaiden-sdkman", - "description": "Gaiden is a tool that makes it easy to create documentation with Markdown.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ], - "containerEnv": { - "JDK_JAVA_OPTIONS": "--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED" - } -} \ No newline at end of file diff --git a/src/gaiden-sdkman/install.sh b/src/gaiden-sdkman/install.sh deleted file mode 100755 index dd27f8739..000000000 --- a/src/gaiden-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='gaiden' --option version="$VERSION" - - -export JDK_JAVA_OPTIONS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.time=ALL-UNNAMED" - diff --git a/src/gaiden-sdkman/library_scripts.sh b/src/gaiden-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/gaiden-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/ganache/README.md b/src/ganache/README.md deleted file mode 100644 index 316b2a4a3..000000000 --- a/src/ganache/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ganache (via npm) (ganache) - -Ganache is an Ethereum simulator that makes developing Ethereum applications faster, easier, and safer. It includes all popular RPC functions and features (like events) and can be run deterministically to make development a breeze. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ganache:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ganache/devcontainer-feature.json b/src/ganache/devcontainer-feature.json deleted file mode 100644 index c4ee510a5..000000000 --- a/src/ganache/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "ganache", - "version": "1.0.2", - "name": "Ganache (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ganache", - "description": "Ganache is an Ethereum simulator that makes developing Ethereum applications faster, easier, and safer. It includes all popular RPC functions and features (like events) and can be run deterministically to make development a breeze.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/ganache/install.sh b/src/ganache/install.sh deleted file mode 100755 index b714afb63..000000000 --- a/src/ganache/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='ganache' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ganache/library_scripts.sh b/src/ganache/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ganache/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gcovr/README.md b/src/gcovr/README.md deleted file mode 100644 index 1958f87f7..000000000 --- a/src/gcovr/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# gcovr (via pipx) (gcovr) - -Generate code coverage reports with gcc/gcov - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gcovr:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gcovr/devcontainer-feature.json b/src/gcovr/devcontainer-feature.json deleted file mode 100644 index af2fd949c..000000000 --- a/src/gcovr/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "gcovr", - "version": "1.0.0", - "name": "gcovr (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gcovr", - "description": "Generate code coverage reports with gcc/gcov", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package" - ] -} \ No newline at end of file diff --git a/src/gcovr/install.sh b/src/gcovr/install.sh deleted file mode 100755 index e37a83f68..000000000 --- a/src/gcovr/install.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.9" \ - --option package='gcovr' --option version="$VERSION" - -echo 'Done!' diff --git a/src/gcovr/library_scripts.sh b/src/gcovr/library_scripts.sh deleted file mode 100644 index f6d0760d7..000000000 --- a/src/gcovr/library_scripts.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ]; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ]; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up() { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - if [ -x "/sbin/apk" ]; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} diff --git a/src/gdbgui/README.md b/src/gdbgui/README.md deleted file mode 100644 index 2719ed321..000000000 --- a/src/gdbgui/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# gdbgui (via pipx) (gdbgui) - -gdbgui is a browser-based frontend to gdb (gnu debugger). - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gdbgui:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gdbgui/devcontainer-feature.json b/src/gdbgui/devcontainer-feature.json deleted file mode 100644 index b5e56c0cf..000000000 --- a/src/gdbgui/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "gdbgui", - "version": "2.0.17", - "name": "gdbgui (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gdbgui", - "description": "gdbgui is a browser-based frontend to gdb (gnu debugger).", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/gdbgui/install.sh b/src/gdbgui/install.sh deleted file mode 100755 index c44ab82c7..000000000 --- a/src/gdbgui/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='gdbgui' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/gdbgui/library_scripts.sh b/src/gdbgui/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gdbgui/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gh-cli/README.md b/src/gh-cli/README.md deleted file mode 100644 index 369760bff..000000000 --- a/src/gh-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# GitHub CLI (via GitHub Releases) (gh-cli) - -GitHub CLI is a command-line interface to GitHub for use in your terminal or your scripts. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gh-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gh-cli/devcontainer-feature.json b/src/gh-cli/devcontainer-feature.json deleted file mode 100644 index 1fde748b7..000000000 --- a/src/gh-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "gh-cli", - "version": "1.0.12", - "name": "GitHub CLI (via GitHub Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gh-cli", - "description": "GitHub CLI is a command-line interface to GitHub for use in your terminal or your scripts.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/gh-cli/install.sh b/src/gh-cli/install.sh deleted file mode 100755 index 4fc5c154b..000000000 --- a/src/gh-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='cli/cli' --option binaryNames='gh' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/gh-cli/library_scripts.sh b/src/gh-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gh-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gh-release/README.md b/src/gh-release/README.md deleted file mode 100644 index bd131e64a..000000000 --- a/src/gh-release/README.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Github Release (gh-release) - -Github Release feature will download, extract and add to path a release binary from a given repo - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gh-release:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| repo | Select the version of the github release binary to install. | string | - | -| binaryNames | The target binary name (Comma separated in case there are multiple binaries in the same asset). For example, for Github CLI the binary name would be simply 'gh'. For DigitalOcean CLI: 'doctl'. For etcd it would be two: 'etcd,etcdctl' | string | - | -| version | Select the version of the github release binary to install. | string | latest | -| assetRegex | An optional filtering regex to help point the correct release asset. | string | - | -| releaseTagRegex | An optional filtering regex to help point the correct release git tag. | string | - | -| binLocation | Location to download the target binary to. Typically a location which exist under PATH variable | string | /usr/local/bin | -| libName | Name for the lib dir (if exists). Will default to binary name if not given | string | - | -| libLocation | Any lib files (if exists) will be downloaded into this location. The binary will then be soft linked from the lib location to the bin location | string | /usr/local/lib | -| additionalFlags | (Optional) Any additional flags for the 'nanolayer install gh-release' command | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gh-release/devcontainer-feature.json b/src/gh-release/devcontainer-feature.json deleted file mode 100644 index 16d0e986b..000000000 --- a/src/gh-release/devcontainer-feature.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "id": "gh-release", - "version": "1.0.25", - "name": "Github Release", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gh-release", - "description": "Github Release feature will download, extract and add to path a release binary from a given repo", - "options": { - "repo": { - "default": "", - "description": "Select the version of the github release binary to install.", - "proposals": [ - "digitalocean/doctl", - "argoproj/argo-cd", - "tenable/terrascan" - ], - "type": "string" - }, - "binaryNames": { - "default": "", - "description": "The target binary name (Comma separated in case there are multiple binaries in the same asset). For example, for Github CLI the binary name would be simply 'gh'. For DigitalOcean CLI: 'doctl'. For etcd it would be two: 'etcd,etcdctl'", - "proposals": [ - "gh", - "doctl", - "etcd,etcdctl" - ], - "type": "string" - }, - "version": { - "default": "latest", - "description": "Select the version of the github release binary to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "assetRegex": { - "default": "", - "description": "An optional filtering regex to help point the correct release asset.", - "type": "string" - }, - "releaseTagRegex": { - "default": "", - "description": "An optional filtering regex to help point the correct release git tag.", - "type": "string" - }, - "binLocation": { - "default": "/usr/local/bin", - "description": "Location to download the target binary to. Typically a location which exist under PATH variable", - "proposals": [ - "/usr/local/bin" - ], - "type": "string" - }, - "libName": { - "default": "", - "description": "Name for the lib dir (if exists). Will default to binary name if not given", - "type": "string" - }, - "libLocation": { - "default": "/usr/local/lib", - "description": "Any lib files (if exists) will be downloaded into this location. The binary will then be soft linked from the lib location to the bin location", - "proposals": [ - "/usr/local/lib" - ], - "type": "string" - }, - "additionalFlags": { - "default": "", - "description": "(Optional) Any additional flags for the 'nanolayer install gh-release' command ", - "proposals": [ - "--no-filter-assets-by-platform", - "--no-filter-assets-by-architecture", - "--no-filter-assets-by-distro", - "--no-filter-assets-by-misc" - ], - "type": "string" - } - }, - "installsAfter": [] -} \ No newline at end of file diff --git a/src/gh-release/install.sh b/src/gh-release/install.sh deleted file mode 100755 index ccf8c44c5..000000000 --- a/src/gh-release/install.sh +++ /dev/null @@ -1,24 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - - - - -release_tag_regex=$(if ! [ -z $RELEASETAGREGEX ]; then echo --release-tag-regex "${RELEASETAGREGEX}" ; fi) -asset_regex_cmd=$(if ! [ -z $ASSETREGEX ]; then echo --asset-regex "${ASSETREGEX}" ; fi) -lib_name_cmd=$(if ! [ -z $LIBNAME ]; then echo --lib-name "${LIBNAME}" ; fi) -$nanolayer_location \ - install gh-release \ - "$REPO" \ - "$BINARYNAMES" --force \ - --version "$VERSION" --bin-location "$BINLOCATION" --lib-location "$LIBLOCATION" $asset_regex_cmd $lib_name_cmd $release_tag_regex $ADDITIONALFLAGS - diff --git a/src/gh-release/library_scripts.sh b/src/gh-release/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gh-release/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/git-lfs/README.md b/src/git-lfs/README.md deleted file mode 100644 index 4132805f8..000000000 --- a/src/git-lfs/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Git LFS (via Github Releases) (git-lfs) - -Git LFS is a command line extension and specification for managing large files with Git. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/git-lfs:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/git-lfs/devcontainer-feature.json b/src/git-lfs/devcontainer-feature.json deleted file mode 100644 index 144240907..000000000 --- a/src/git-lfs/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "git-lfs", - "version": "1.0.2", - "name": "Git LFS (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/git-lfs", - "description": "Git LFS is a command line extension and specification for managing large files with Git.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/git-lfs/install.sh b/src/git-lfs/install.sh deleted file mode 100755 index 769f2dc90..000000000 --- a/src/git-lfs/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='git-lfs/git-lfs' --option binaryNames='git-lfs' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/git-lfs/library_scripts.sh b/src/git-lfs/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/git-lfs/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gitmux/README.md b/src/gitmux/README.md deleted file mode 100644 index bc2da1d3b..000000000 --- a/src/gitmux/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Gitmux (via Github Releases) (gitmux) - -Gitmux shows git status in your tmux status bar. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gitmux:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gitmux/devcontainer-feature.json b/src/gitmux/devcontainer-feature.json deleted file mode 100644 index f4ffc3bcd..000000000 --- a/src/gitmux/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "gitmux", - "version": "1.0.9", - "name": "Gitmux (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gitmux", - "description": "Gitmux shows git status in your tmux status bar.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/gitmux/install.sh b/src/gitmux/install.sh deleted file mode 100755 index 4e6a12f78..000000000 --- a/src/gitmux/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='arl/gitmux' --option binaryNames='gitmux' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/gitmux/library_scripts.sh b/src/gitmux/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gitmux/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gitomatic/README.md b/src/gitomatic/README.md deleted file mode 100644 index 27f03fae0..000000000 --- a/src/gitomatic/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# git-o-matic (gitomatic) (via Github Releases) (gitomatic) - -gitomatic is a tool to monitor git repositories and automatically pull & push changes. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gitomatic:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gitomatic/devcontainer-feature.json b/src/gitomatic/devcontainer-feature.json deleted file mode 100644 index 1639835fb..000000000 --- a/src/gitomatic/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "gitomatic", - "version": "1.0.14", - "name": "git-o-matic (gitomatic) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gitomatic", - "description": "gitomatic is a tool to monitor git repositories and automatically pull & push changes.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/gitomatic/install.sh b/src/gitomatic/install.sh deleted file mode 100755 index 147eabefc..000000000 --- a/src/gitomatic/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='muesli/gitomatic' --option binaryNames='gitomatic' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/gitomatic/library_scripts.sh b/src/gitomatic/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gitomatic/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gitsign-credential-cache/README.md b/src/gitsign-credential-cache/README.md deleted file mode 100644 index f89554b86..000000000 --- a/src/gitsign-credential-cache/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# gitsign-credential-cache (via Github Releases) (gitsign-credential-cache) - -gitsign-credential-cache is a optional helper binary that allows users to cache signing credentials. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gitsign-credential-cache:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gitsign-credential-cache/devcontainer-feature.json b/src/gitsign-credential-cache/devcontainer-feature.json deleted file mode 100644 index c9355bc1e..000000000 --- a/src/gitsign-credential-cache/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "gitsign-credential-cache", - "version": "1.0.9", - "name": "gitsign-credential-cache (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gitsign-credential-cache", - "description": "gitsign-credential-cache is a optional helper binary that allows users to cache signing credentials.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/gitsign-credential-cache/install.sh b/src/gitsign-credential-cache/install.sh deleted file mode 100755 index c1e5df0bf..000000000 --- a/src/gitsign-credential-cache/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sigstore/gitsign' --option binaryNames='gitsign-credential-cache' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/gitsign-credential-cache/library_scripts.sh b/src/gitsign-credential-cache/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gitsign-credential-cache/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gitsign/README.md b/src/gitsign/README.md deleted file mode 100644 index 8808e39f2..000000000 --- a/src/gitsign/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Gitsign (via Github Releases) (gitsign) - -Gitsign implements keyless Sigstore to sign Git commits with a valid OpenID Connect identity. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gitsign:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gitsign/devcontainer-feature.json b/src/gitsign/devcontainer-feature.json deleted file mode 100644 index cd42c9512..000000000 --- a/src/gitsign/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "gitsign", - "version": "1.0.9", - "name": "Gitsign (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gitsign", - "description": "Gitsign implements keyless Sigstore to sign Git commits with a valid OpenID Connect identity.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/gitsign/install.sh b/src/gitsign/install.sh deleted file mode 100755 index 837686b2f..000000000 --- a/src/gitsign/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sigstore/gitsign' --option binaryNames='gitsign' --option version="$VERSION" --option assetRegex='^(?!.*(credential-cache))' - - - -echo 'Done!' - diff --git a/src/gitsign/library_scripts.sh b/src/gitsign/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gitsign/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gitty/README.md b/src/gitty/README.md deleted file mode 100644 index b25484340..000000000 --- a/src/gitty/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# gitty (via Github Releases) (gitty) - -gitty is a smart little CLI helper for git projects, that shows you all the relevant issues, pull requests and changes at a quick glance, right on the command-line. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gitty:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gitty/devcontainer-feature.json b/src/gitty/devcontainer-feature.json deleted file mode 100644 index b51431b7e..000000000 --- a/src/gitty/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "gitty", - "version": "1.0.14", - "name": "gitty (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gitty", - "description": "gitty is a smart little CLI helper for git projects, that shows you all the relevant issues, pull requests and changes at a quick glance, right on the command-line.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/gitty/install.sh b/src/gitty/install.sh deleted file mode 100755 index 8c4617549..000000000 --- a/src/gitty/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='muesli/gitty' --option binaryNames='gitty' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/gitty/library_scripts.sh b/src/gitty/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gitty/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/glances/README.md b/src/glances/README.md deleted file mode 100644 index d6a17d579..000000000 --- a/src/glances/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Glances (via pipx) (glances) - -Glances is a cross-platform monitoring tool which aims to present a large amount of monitoring information through a curses or Web based interface. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/glances:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/glances/devcontainer-feature.json b/src/glances/devcontainer-feature.json deleted file mode 100644 index bbd4ad3d6..000000000 --- a/src/glances/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "glances", - "version": "2.0.17", - "name": "Glances (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/glances", - "description": "Glances is a cross-platform monitoring tool which aims to present a large amount of monitoring information through a curses or Web based interface.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/glances/install.sh b/src/glances/install.sh deleted file mode 100755 index 9dab538db..000000000 --- a/src/glances/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='glances[action,browser,cloud,cpuinfo,docker,export,folders,gpu,graph,ip,raid,snmp,web,wifi]' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/glances/library_scripts.sh b/src/glances/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/glances/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gleam/README.md b/src/gleam/README.md deleted file mode 100644 index edf1b329f..000000000 --- a/src/gleam/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Gleam (via Github Releases) (gleam) - -Gleam is a friendly language for building type-safe, scalable systems. (Gleam compiles to Erlang code, so Erlang needs to be installed to run Gleam code.) - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gleam:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gleam/devcontainer-feature.json b/src/gleam/devcontainer-feature.json deleted file mode 100644 index 3a228cccf..000000000 --- a/src/gleam/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "gleam", - "version": "1.0.0", - "name": "Gleam (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gleam", - "description": "Gleam is a friendly language for building type-safe, scalable systems. (Gleam compiles to Erlang code, so Erlang needs to be installed to run Gleam code.)", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/gleam/install.sh b/src/gleam/install.sh deleted file mode 100755 index e3595c388..000000000 --- a/src/gleam/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='gleam-lang/gleam' --option binaryNames='gleam' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/gleam/library_scripts.sh b/src/gleam/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gleam/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/go-task/README.md b/src/go-task/README.md deleted file mode 100644 index 5637d0827..000000000 --- a/src/go-task/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Task (via Github Releases) (go-task) - -Task is a task runner / build tool that aims to be simpler and easier to use than, for example, GNU Make. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/go-task:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/go-task/devcontainer-feature.json b/src/go-task/devcontainer-feature.json deleted file mode 100644 index ad59ea4b5..000000000 --- a/src/go-task/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "go-task", - "version": "1.0.5", - "name": "Task (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/go-task", - "description": "Task is a task runner / build tool that aims to be simpler and easier to use than, for example, GNU Make.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/go-task/install.sh b/src/go-task/install.sh deleted file mode 100755 index 37686142b..000000000 --- a/src/go-task/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='go-task/task' --option binaryNames='task' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/go-task/library_scripts.sh b/src/go-task/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/go-task/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/graalvm-asdf/README.md b/src/graalvm-asdf/README.md deleted file mode 100644 index f04c5ad74..000000000 --- a/src/graalvm-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# GraalVM (via asdf) (graalvm-asdf) - -GraalVM is a high-performance JDK designed to accelerate Java application performance while consuming fewer resources. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/graalvm-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/graalvm-asdf/devcontainer-feature.json b/src/graalvm-asdf/devcontainer-feature.json deleted file mode 100644 index e29e08b7f..000000000 --- a/src/graalvm-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "graalvm-asdf", - "version": "2.0.15", - "name": "GraalVM (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/graalvm-asdf", - "description": "GraalVM is a high-performance JDK designed to accelerate Java application performance while consuming fewer resources.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/graalvm-asdf/install.sh b/src/graalvm-asdf/install.sh deleted file mode 100755 index 6db29583b..000000000 --- a/src/graalvm-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='graalvm' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/graalvm-asdf/library_scripts.sh b/src/graalvm-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/graalvm-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/gradle-sdkman/README.md b/src/gradle-sdkman/README.md deleted file mode 100644 index 6be018f1a..000000000 --- a/src/gradle-sdkman/README.md +++ /dev/null @@ -1,30 +0,0 @@ - -# Gradle (via SDKMAN) (gradle-sdkman) - -Gradle is a build automation tool that builds upon the concepts of Apache Ant -and Apache Maven and introduces a Groovy-based domain-specific language (DSL) -instead of the more traditional XML form of declaring the project configuration. -Gradle uses a directed acyclic graph (DAG) to determine the order in which tasks -can be run. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gradle-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gradle-sdkman/devcontainer-feature.json b/src/gradle-sdkman/devcontainer-feature.json deleted file mode 100644 index e389c5a82..000000000 --- a/src/gradle-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "gradle-sdkman", - "version": "2.0.15", - "name": "Gradle (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gradle-sdkman", - "description": "Gradle is a build automation tool that builds upon the concepts of Apache Ant\nand Apache Maven and introduces a Groovy-based domain-specific language (DSL)\ninstead of the more traditional XML form of declaring the project configuration.\nGradle uses a directed acyclic graph (DAG) to determine the order in which tasks\ncan be run.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/gradle-sdkman/install.sh b/src/gradle-sdkman/install.sh deleted file mode 100755 index 36ff22aa4..000000000 --- a/src/gradle-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='gradle' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/gradle-sdkman/library_scripts.sh b/src/gradle-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/gradle-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/gradleprofiler-sdkman/README.md b/src/gradleprofiler-sdkman/README.md deleted file mode 100644 index eaae28ac0..000000000 --- a/src/gradleprofiler-sdkman/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Gradle profiler (via SDKMAN) (gradleprofiler-sdkman) - -A tool for gathering profiling and benchmarking information for Gradle builds - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gradleprofiler-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Gradle profiler to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gradleprofiler-sdkman/devcontainer-feature.json b/src/gradleprofiler-sdkman/devcontainer-feature.json deleted file mode 100644 index 71bdfabff..000000000 --- a/src/gradleprofiler-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "gradleprofiler-sdkman", - "version": "2.0.15", - "name": "Gradle profiler (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gradleprofiler-sdkman", - "description": "A tool for gathering profiling and benchmarking information for Gradle builds", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Gradle profiler to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/gradleprofiler-sdkman/install.sh b/src/gradleprofiler-sdkman/install.sh deleted file mode 100755 index 67b6ed665..000000000 --- a/src/gradleprofiler-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='gradleprofiler' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/gradleprofiler-sdkman/library_scripts.sh b/src/gradleprofiler-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/gradleprofiler-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/grails-sdkman/README.md b/src/grails-sdkman/README.md deleted file mode 100644 index 961e6562c..000000000 --- a/src/grails-sdkman/README.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Grails (via SDKMAN) (grails-sdkman) - -Grails is a powerful web framework, for the Java platform aimed at multiplying -developers productivity thanks to a Convention-over-Configuration, sensible -defaults and opinionated APIs. It integrates smoothly with the JVM, allowing you -to be immediately productive whilst providing powerful features, including -integrated ORM, Domain-Specific Languages, runtime and compile-time -meta-programming and Asynchronous programming. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/grails-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/grails-sdkman/devcontainer-feature.json b/src/grails-sdkman/devcontainer-feature.json deleted file mode 100644 index c4f0832ce..000000000 --- a/src/grails-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "grails-sdkman", - "version": "2.0.15", - "name": "Grails (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/grails-sdkman", - "description": "Grails is a powerful web framework, for the Java platform aimed at multiplying\ndevelopers productivity thanks to a Convention-over-Configuration, sensible\ndefaults and opinionated APIs. It integrates smoothly with the JVM, allowing you\nto be immediately productive whilst providing powerful features, including\nintegrated ORM, Domain-Specific Languages, runtime and compile-time\nmeta-programming and Asynchronous programming.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/grails-sdkman/install.sh b/src/grails-sdkman/install.sh deleted file mode 100755 index fc2519b67..000000000 --- a/src/grails-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='grails' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/grails-sdkman/library_scripts.sh b/src/grails-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/grails-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/graphite-exporter/README.md b/src/graphite-exporter/README.md deleted file mode 100644 index a6ef7dbc9..000000000 --- a/src/graphite-exporter/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus Graphite Exporter (via Github Releases) (graphite-exporter) - -An exporter for metrics exported in the Graphite plaintext protocol. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/graphite-exporter:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/graphite-exporter/devcontainer-feature.json b/src/graphite-exporter/devcontainer-feature.json deleted file mode 100644 index afb45195d..000000000 --- a/src/graphite-exporter/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "graphite-exporter", - "version": "1.0.2", - "name": "Prometheus Graphite Exporter (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/graphite-exporter", - "description": "An exporter for metrics exported in the Graphite plaintext protocol.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/graphite-exporter/install.sh b/src/graphite-exporter/install.sh deleted file mode 100755 index c3e6939ea..000000000 --- a/src/graphite-exporter/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/graphite_exporter' --option binaryNames='graphite_exporter' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/graphite-exporter/library_scripts.sh b/src/graphite-exporter/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/graphite-exporter/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/groovy-sdkman/README.md b/src/groovy-sdkman/README.md deleted file mode 100644 index 10d09d2dc..000000000 --- a/src/groovy-sdkman/README.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Groovy (via SDKMAN) (groovy-sdkman) - -Groovy is a powerful, optionally typed and dynamic language, with static-typing -and static compilation capabilities, for the Java platform aimed at multiplying -developers' productivity thanks to a concise, familiar and easy to learn syntax. -It integrates smoothly with any Java program, and immediately delivers to your -application powerful features, including scripting capabilities, Domain-Specific -Language authoring, runtime and compile-time meta-programming and functional -programming. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/groovy-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/groovy-sdkman/devcontainer-feature.json b/src/groovy-sdkman/devcontainer-feature.json deleted file mode 100644 index fff3980d4..000000000 --- a/src/groovy-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "groovy-sdkman", - "version": "2.0.15", - "name": "Groovy (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/groovy-sdkman", - "description": "Groovy is a powerful, optionally typed and dynamic language, with static-typing\nand static compilation capabilities, for the Java platform aimed at multiplying\ndevelopers' productivity thanks to a concise, familiar and easy to learn syntax.\nIt integrates smoothly with any Java program, and immediately delivers to your\napplication powerful features, including scripting capabilities, Domain-Specific\nLanguage authoring, runtime and compile-time meta-programming and functional\nprogramming.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/groovy-sdkman/install.sh b/src/groovy-sdkman/install.sh deleted file mode 100755 index 6d9e0cfa5..000000000 --- a/src/groovy-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='groovy' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/groovy-sdkman/library_scripts.sh b/src/groovy-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/groovy-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/groovyserv-sdkman/README.md b/src/groovyserv-sdkman/README.md deleted file mode 100644 index 0882304cc..000000000 --- a/src/groovyserv-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# GroovyServ (via SDKMAN) (groovyserv-sdkman) - -GroovyServ reduces startup time of the JVM for runnning Groovy significantly. It -depends on your environments, but in most cases, it’s 10 to 20 times faster than -regular Groovy. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/groovyserv-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/groovyserv-sdkman/devcontainer-feature.json b/src/groovyserv-sdkman/devcontainer-feature.json deleted file mode 100644 index f7224657d..000000000 --- a/src/groovyserv-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "groovyserv-sdkman", - "version": "2.0.15", - "name": "GroovyServ (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/groovyserv-sdkman", - "description": "GroovyServ reduces startup time of the JVM for runnning Groovy significantly. It\ndepends on your environments, but in most cases, it\u2019s 10 to 20 times faster than\nregular Groovy.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/groovyserv-sdkman/install.sh b/src/groovyserv-sdkman/install.sh deleted file mode 100755 index ac9e7e1f4..000000000 --- a/src/groovyserv-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='groovyserv' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/groovyserv-sdkman/library_scripts.sh b/src/groovyserv-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/groovyserv-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/grpcurl-asdf/README.md b/src/grpcurl-asdf/README.md deleted file mode 100644 index 04683896b..000000000 --- a/src/grpcurl-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# gRPCurl (via asdf) (grpcurl-asdf) - -gRPCurl is a command-line tool that lets you interact with gRPC servers. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/grpcurl-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/grpcurl-asdf/devcontainer-feature.json b/src/grpcurl-asdf/devcontainer-feature.json deleted file mode 100644 index e549e593a..000000000 --- a/src/grpcurl-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "grpcurl-asdf", - "version": "2.0.15", - "name": "gRPCurl (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/grpcurl-asdf", - "description": "gRPCurl is a command-line tool that lets you interact with gRPC servers.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/grpcurl-asdf/install.sh b/src/grpcurl-asdf/install.sh deleted file mode 100755 index bc807d196..000000000 --- a/src/grpcurl-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='grpcurl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/grpcurl-asdf/library_scripts.sh b/src/grpcurl-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/grpcurl-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/grype/README.md b/src/grype/README.md deleted file mode 100644 index db955832a..000000000 --- a/src/grype/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Grype (via Github Releases) (grype) - -Grype is a vulnerability scanner for container images and filesystems. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/grype:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/grype/devcontainer-feature.json b/src/grype/devcontainer-feature.json deleted file mode 100644 index 79f6bc4cc..000000000 --- a/src/grype/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "grype", - "version": "1.0.9", - "name": "Grype (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/grype", - "description": "Grype is a vulnerability scanner for container images and filesystems.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/grype/install.sh b/src/grype/install.sh deleted file mode 100755 index 200959f4c..000000000 --- a/src/grype/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='anchore/grype' --option binaryNames='grype' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/grype/library_scripts.sh b/src/grype/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/grype/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/gulp-cli/README.md b/src/gulp-cli/README.md deleted file mode 100644 index 35312fc45..000000000 --- a/src/gulp-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Gulp CLI (via npm) (gulp-cli) - -Gulp CLI is Command Line Utility for Gulp - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/gulp-cli:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Gulp CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/gulp-cli/devcontainer-feature.json b/src/gulp-cli/devcontainer-feature.json deleted file mode 100644 index 7a566acab..000000000 --- a/src/gulp-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "gulp-cli", - "version": "2.0.15", - "name": "Gulp CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/gulp-cli", - "description": "Gulp CLI is Command Line Utility for Gulp", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Gulp CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/gulp-cli/install.sh b/src/gulp-cli/install.sh deleted file mode 100755 index e42d87963..000000000 --- a/src/gulp-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='gulp-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/gulp-cli/library_scripts.sh b/src/gulp-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/gulp-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/hadoop-sdkman/README.md b/src/hadoop-sdkman/README.md deleted file mode 100644 index 3828516c9..000000000 --- a/src/hadoop-sdkman/README.md +++ /dev/null @@ -1,30 +0,0 @@ - -# hadoop (via SDKMAN) (hadoop-sdkman) - -Apache™ Hadoop® project develops open-source software for reliable, scalable, -distributed computing.It's a framework that allows for the distributed -processing of large data sets across clusters of computersusing simple -programming models.It is designed to scale up from single servers to thousands -of machines, each offering local computation and storage. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/hadoop-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/hadoop-sdkman/devcontainer-feature.json b/src/hadoop-sdkman/devcontainer-feature.json deleted file mode 100644 index a642bb0ab..000000000 --- a/src/hadoop-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "hadoop-sdkman", - "version": "2.0.15", - "name": "hadoop (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/hadoop-sdkman", - "description": "Apache\u2122 Hadoop\u00ae project develops open-source software for reliable, scalable,\ndistributed computing.It's a framework that allows for the distributed\nprocessing of large data sets across clusters of computersusing simple\nprogramming models.It is designed to scale up from single servers to thousands\nof machines, each offering local computation and storage.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/hadoop-sdkman/install.sh b/src/hadoop-sdkman/install.sh deleted file mode 100755 index 5c6ca316f..000000000 --- a/src/hadoop-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='hadoop' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/hadoop-sdkman/library_scripts.sh b/src/hadoop-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/hadoop-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/haskell/README.md b/src/haskell/README.md deleted file mode 100644 index aafcd0d09..000000000 --- a/src/haskell/README.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Haskell (via ghcup) (haskell) - -Installs Haskell. An advanced, purely functional programming language - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/haskell:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| ghcVersion | Select the GHC (Glasgow Haskell Compiler) version to install. | string | recommended | -| cabalVersion | Select the Cabal (a system for building and packaging Haskell libraries and programs) version to install. | string | recommended | -| globalPackages | Packages to install via `cabal install`, such as `hlint` for linting. Separate with spaces. This will add significant initial build time. | string | - | -| installHLS | Install HLS, the Haskell Language Server. | boolean | true | -| downgradeGhcToSupportHls | This will downgrade GHC to the closest version supported by HLS. There is often a gap between a GHC release and tooling support. | boolean | true | -| installStack | Install Stack, a build tool for Haskell. | boolean | true | -| installStackGHCupHook | Enabling this means that stack won't install its own GHC versions, but uses GHCup's | boolean | true | -| adjustBash | whether to adjust PATH in bashrc (prepend) | boolean | true | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/haskell/devcontainer-feature.json b/src/haskell/devcontainer-feature.json deleted file mode 100644 index 50c3e3139..000000000 --- a/src/haskell/devcontainer-feature.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "Haskell (via ghcup)", - "id": "haskell", - "version": "2.2.2", - "description": "Installs Haskell. An advanced, purely functional programming language", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/haskell", - "options": { - "ghcVersion": { - "type": "string", - "proposals": [ - "latest", - "recommended", - "8.10.7", - "9.4.2" - ], - "default": "recommended", - "description": "Select the GHC (Glasgow Haskell Compiler) version to install." - }, - "cabalVersion": { - "type": "string", - "proposals": [ - "latest", - "recommended", - "3.8.1.0" - ], - "default": "recommended", - "description": "Select the Cabal (a system for building and packaging Haskell libraries and programs) version to install." - }, - "globalPackages": { - "type": "string", - "proposals": [ - "", - "hlint", - "hlint pandoc-cli" - ], - "default": "", - "description": "Packages to install via `cabal install`, such as `hlint` for linting. Separate with spaces. This will add significant initial build time." - }, - "globalLibraries": { - "type": "string", - "proposals": [ - "", - "hspec hspec-contrib QuickCheck HUnit" - ], - "default": "", - "description": "Libraries to install via `cabal install --lib`, such as `hspec` for testing. Separate with spaces. This will add significant initial build time." - }, - "installHLS": { - "type": "boolean", - "default": true, - "description": "Install HLS, the Haskell Language Server." - }, - "downgradeGhcToSupportHls": { - "type": "boolean", - "default": true, - "description": "This will downgrade GHC to the closest version supported by HLS. There is often a gap between a GHC release and tooling support." - }, - "installStack": { - "type": "boolean", - "default": true, - "description": "Install Stack, a build tool for Haskell." - }, - "installStackGHCupHook": { - "type": "boolean", - "default": true, - "description": "Enabling this means that stack won't install its own GHC versions, but uses GHCup's" - }, - "adjustBash": { - "type": "boolean", - "default": true, - "description": "whether to adjust PATH in bashrc (prepend)" - } - } -} diff --git a/src/haskell/install.sh b/src/haskell/install.sh deleted file mode 100755 index 183aa4761..000000000 --- a/src/haskell/install.sh +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env bash - -GHC_VERSION="${GHCVERSION:-"latest"}" -CABAL_VERSION="${CABALVERSION:-"latest"}" -INCLUDE_STACK="${INSTALLSTACK:-"true"}" -INCLUDE_HLS="${INSTALLHLS:-"true"}" -DOWNGRADE_GHC_TO_SUPPORT_HLS="${DOWNGRADEGHCTOSUPPORTHLS:-"true"}" -ADJUST_BASHRC="${ADJUSTBASH:-"true"}" - -INSTALL_STACK_GHCUP_HOOK="${INSTALLSTACKGHCUPHOOK:-"true"}" -CABAL_INSTALLS=`echo "${GLOBALPACKAGES:-""}" | tr ',' ' '` -CABAL_INSTALLS_LIBS=`echo "${GLOBALLIBRARIES:-""}" | tr ',' ' '` - -# Clean up -rm -rf /var/lib/apt/lists/* - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -check_packages ca-certificates curl build-essential libffi-dev libffi8ubuntu1 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 - -# The installation script is designed to be run by the non-root user -# The files need to be in the remote user's ~/ home directory -# So, how do we switch users? We use 'sudo -iu ' to get a -# login shell of another user! We use $_REMOTE_USER as defined in -# a spec proposal (but still implemented in Codespaces): https://github.com/devcontainers/spec/blob/main/proposals/features-user-env-variables.md -# Here's some more examples using it: https://github.com/search?q=org%3Adevcontainers+_REMOTE_USER&type=code -# We also use /bin/sh as defined in the script hash-bang line instead of $SHELL. -sudo -iu "$_REMOTE_USER" <> ~/.bashrc - - export BOOTSTRAP_HASKELL_NONINTERACTIVE=1 - export BOOTSTRAP_HASKELL_GHC_VERSION='${GHC_VERSION}' - export BOOTSTRAP_HASKELL_CABAL_VERSION='${CABAL_VERSION}' - export BOOTSTRAP_HASKELL_DOWNLOADER='curl' - export BOOTSTRAP_HASKELL_INSTALL_HLS='${INCLUDE_HLS}' - - if [[ "${INCLUDE_STACK}" = "false" ]]; then - export BOOTSTRAP_HASKELL_INSTALL_NO_STACK="true" - fi - if [[ "${ADJUST_BASHRC}" = "true" ]]; then - export BOOTSTRAP_HASKELL_ADJUST_BASHRC="true" - fi - if [[ "${INSTALL_STACK_GHCUP_HOOK}" = "false" ]]; then - export BOOTSTRAP_HASKELL_INSTALL_NO_STACK_HOOK="true" - fi - - # Install instructions from https://www.haskell.org/ghcup/# - curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh - - # Update PATH so that Cabal is accessible, the same as will be done via ~/.bashrc in the future - . "${_REMOTE_USER_HOME}/.local/share/ghcup/env" - - if [[ "${DOWNGRADE_GHC_TO_SUPPORT_HLS}" = "true" ]]; then - if [[ "${INCLUDE_HLS}" = "true" ]]; then - IS_GHC_POWERED_BY_HLS=\`ghcup list -c set -t ghc -r | grep 'hls-powered'\` - if [[ -z "\${IS_GHC_POWERED_BY_HLS}" ]]; then - echo "This GHC is not HLS-powered..." - CLOSEST_POWERED_GHC=\`ghcup list -c available -t ghc -r | grep -m1 "${GHC_VERSION}" -B 10 | tac | grep -m1 'hls-powered'\` - if [[ ! -z "\${CLOSEST_POWERED_GHC}" ]]; then - # Trim down to just the version number - CLOSEST_POWERED_GHC="\${CLOSEST_POWERED_GHC#*ghc }" - CLOSEST_POWERED_GHC="\${CLOSEST_POWERED_GHC%base*}" - CLOSEST_POWERED_GHC="\${CLOSEST_POWERED_GHC% *}" - echo "Downgrading to GHC \${CLOSEST_POWERED_GHC}..." - ghcup install ghc \${CLOSEST_POWERED_GHC} && ghcup set ghc "\${CLOSEST_POWERED_GHC}" - else - echo "No HLS-powered GHC found. Skipping GHC downgrade." - fi - fi - fi - fi - - # Install packages & libraries with Cabal - if [[ -n "${CABAL_INSTALLS}${CABAL_INSTALLS_LIBS}" ]]; then - cabal update - if [[ -n "${CABAL_INSTALLS}" ]]; then - echo "${CABAL_INSTALLS}" | xargs cabal install - fi - if [[ -n "${CABAL_INSTALLS_LIBS}" ]]; then - echo "${CABAL_INSTALLS_LIBS}" | xargs cabal install --lib - fi - fi -EOF - -# without restarting the shell, ghci location would not be resolved from the updated PATH -exec $SHELL - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/hatch/README.md b/src/hatch/README.md deleted file mode 100644 index 6d5af2ca7..000000000 --- a/src/hatch/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Hatch (via pipx) (hatch) - -Hatch is a modern, extensible Python project manager. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/hatch:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/hatch/devcontainer-feature.json b/src/hatch/devcontainer-feature.json deleted file mode 100644 index e17e313bc..000000000 --- a/src/hatch/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "hatch", - "version": "2.0.17", - "name": "Hatch (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/hatch", - "description": "Hatch is a modern, extensible Python project manager.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/hatch/install.sh b/src/hatch/install.sh deleted file mode 100755 index 78299fd2a..000000000 --- a/src/hatch/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='hatch' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/hatch/library_scripts.sh b/src/hatch/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/hatch/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/haxe-asdf/README.md b/src/haxe-asdf/README.md deleted file mode 100644 index d134c5f37..000000000 --- a/src/haxe-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Haxe (via asdf) (haxe-asdf) - -Haxe is an open source high-level cross-platform programming language and compiler. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/haxe-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/haxe-asdf/devcontainer-feature.json b/src/haxe-asdf/devcontainer-feature.json deleted file mode 100644 index 7a2047097..000000000 --- a/src/haxe-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "haxe-asdf", - "version": "2.0.15", - "name": "Haxe (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/haxe-asdf", - "description": "Haxe is an open source high-level cross-platform programming language and compiler.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/haxe-asdf/install.sh b/src/haxe-asdf/install.sh deleted file mode 100755 index 575d2c33d..000000000 --- a/src/haxe-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='haxe' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/haxe-asdf/library_scripts.sh b/src/haxe-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/haxe-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/helmfile/devcontainer-feature.json b/src/helmfile/devcontainer-feature.json deleted file mode 100644 index ff4fdaca6..000000000 --- a/src/helmfile/devcontainer-feature.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "id": "helmfile", - "version": "1.0.0", - "name": "helmfile (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/helmfile", - "description": "Declaratively deploy your Kubernetes manifests, Kustomize configs, and Charts as Helm releases. Generate all-in-one manifests for use with ArgoCD.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest", - "0.169.1" - ], - "type": "string" - } - }, - "installsAfter": [] -} \ No newline at end of file diff --git a/src/helmfile/install.sh b/src/helmfile/install.sh deleted file mode 100755 index 724cd7c51..000000000 --- a/src/helmfile/install.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - -# Example nanolayer installation via devcontainer-feature -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1" \ - --option repo='helmfile/helmfile' --option binaryNames='helmfile' --option version="$VERSION" \ - --option releaseTagRegex='^(?!.*(alpha|beta|rc)).*$' - -echo 'Done!' diff --git a/src/helmfile/library_scripts.sh b/src/helmfile/library_scripts.sh deleted file mode 100644 index f6d0760d7..000000000 --- a/src/helmfile/library_scripts.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ]; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ]; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up() { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - if [ -x "/sbin/apk" ]; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} diff --git a/src/heroku-cli/README.md b/src/heroku-cli/README.md deleted file mode 100644 index 5de88a370..000000000 --- a/src/heroku-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Heroku CLI (via cli-assets.heroku.com) (heroku-cli) - -Heroku CLI allows you to interact with the Heroku API via the command line - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/heroku-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the Heroku CLI version you would like to install | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/heroku-cli/devcontainer-feature.json b/src/heroku-cli/devcontainer-feature.json deleted file mode 100644 index c63257f1a..000000000 --- a/src/heroku-cli/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Heroku CLI (via cli-assets.heroku.com)", - "id": "heroku-cli", - "version": "1.0.3", - "description": "Heroku CLI allows you to interact with the Heroku API via the command line (version 8 and above)", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/heroku-cli", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "9.3.2" - ], - "default": "latest", - "description": "Select the Heroku CLI version you would like to install" - } - } -} \ No newline at end of file diff --git a/src/heroku-cli/install.sh b/src/heroku-cli/install.sh deleted file mode 100755 index 7e715f56f..000000000 --- a/src/heroku-cli/install.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash -# This is a modified version of heroku official script (https://cli-assets.heroku.com/install.sh) -# Differences: -# 1. Allows to choose any version -# 2. Assumes linux os only (dev containers oriented) -# 3. Installs curl if not available - -HEROKU_CLI_VERSION="${VERSION:-"latest"}" - -set -e - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Clean up -rm -rf /var/lib/apt/lists/* - -ARCH="$(uname -m)" -if [ "$ARCH" == "x86_64" ]; then - ARCH=x64 -elif [[ "$ARCH" == aarch* ]]; then - ARCH=arm -elif [[ "$ARCH" == "arm64" ]]; then - ARCH=arm64 -else - echo -e "unsupported arch: $ARCH" - exit 1 -fi - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# make sure we have curl -check_packages ca-certificates curl jq - -# make sure /usr/local/lib exists -mkdir -p /usr/local/lib - -# remove existing instalations -rm -rf /usr/local/lib/heroku -rm -rf ~/.local/share/heroku/client -rm -f $(command -v heroku) || true -rm -f /usr/local/bin/heroku - -# resolve heroku download url with asset JSON: https://github.com/heroku/cli/issues/2477 -# works with version 8 and up -if [ "${HEROKU_CLI_VERSION}" == "latest" ]; then - DOWNLOAD_URL=https://cli-assets.heroku.com/channels/stable/heroku-linux-$ARCH.tar.gz -else - ASSET_PATH_URL=https://cli-assets.heroku.com/versions/heroku-linux-${ARCH}-tar-gz.json - DOWNLOAD_URL=$(curl -sSL $ASSET_PATH_URL | jq -r ".[\"$HEROKU_CLI_VERSION\"] | select(.)") - - if [ -z "$DOWNLOAD_URL" ]; then - echo "Invalid version and arch: $HEROKU_CLI_VERSION, $ARCH" - exit 1 - fi -fi - -# download binary, untar and ln into /usr/local/bin -curl -sSL $DOWNLOAD_URL | tar xz -C /usr/local/lib -chmod +x /usr/local/lib/heroku/bin/heroku -ln -s /usr/local/lib/heroku/bin/heroku /usr/local/bin/heroku - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/homebrew-package/README.md b/src/homebrew-package/README.md deleted file mode 100644 index c3e323165..000000000 --- a/src/homebrew-package/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Homebrew Package (homebrew-package) - -Installs a Homebrew package. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/homebrew-package:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| package | Select the Homebrew package to install. | string | - | -| version | Select the version of the Homebrew package to install. | string | latest | -| installation_flags | Additional installation flags. These would be used as extra arguments to the brew command (`brew install @`) | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/homebrew-package/devcontainer-feature.json b/src/homebrew-package/devcontainer-feature.json deleted file mode 100644 index c44f415da..000000000 --- a/src/homebrew-package/devcontainer-feature.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "Homebrew Package", - "id": "homebrew-package", - "version": "1.0.8", - "description": "Installs a Homebrew package.", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/homebrew-package", - "installsAfter": [ - "ghcr.io/meaningful-ooo/devcontainer-features/homebrew:2" - ], - "options": { - "package": { - "type": "string", - "proposals": [ - "typescript", - "vtop", - "fkill-cli" - ], - "default": "", - "description": "Select the Homebrew package to install." - }, - "version": { - "type": "string", - "proposals": [ - "latest" - ], - "default": "latest", - "description": "Select the version of the Homebrew package to install." - }, - "installation_flags": { - "type": "string", - "proposals": [ - "--ignore-dependencies" - ], - "default": "", - "description": "Additional installation flags. These would be used as extra arguments to the brew command (`brew install @`)" - } - } -} \ No newline at end of file diff --git a/src/homebrew-package/install.sh b/src/homebrew-package/install.sh deleted file mode 100755 index da0df37d7..000000000 --- a/src/homebrew-package/install.sh +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env bash -set -ex - -source ./library_scripts.sh - -PACKAGE=${PACKAGE:-""} -VERSION=${VERSION:-"latest"} -INSTALLATION_FLAGS=${INSTALLATION_FLAGS:-""} - -if [ -z "$PACKAGE" ]; then - echo -e "'package' variable is empty, skipping" - exit 0 -fi - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as - root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -ensure_curl() { - if ! type curl >/dev/null 2>&1; then - apt-get update -y && apt-get -y install --no-install-recommends curl ca-certificates - fi -} - -install_via_homebrew() { - package=$1 - version=$2 - installation_flags=$3 - - # install Homebrew if does not exists - if ! type brew >/dev/null 2>&1; then - echo "Installing Homebrew..." - - # nanolayer is a cli utility which keeps container layers as small as possible - # source code: https://github.com/devcontainers-extra/nanolayer - # `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, - # and if missing - will download a temporary copy that automatically get deleted at the end - # of the script - ensure_nanolayer nanolayer_location "v0.4.29" - - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/meaningful-ooo/devcontainer-features/homebrew:2.0.4" \ - --option shallow_clone='true' --option update="true" - source /etc/profile.d/nanolayer-homebrew.sh - fi - - if [ "$version" = "latest" ]; then - package_full="$package" - else - package_full="${package}@${version}" - fi - # Solves CVE-2022-24767 mitigation in Git >2.35.2 - # For more information: https://github.blog/2022-04-12-git-security-vulnerability-announced/ - git config --system --add safe.directory "$(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core" - - su - "$_REMOTE_USER" </dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/hotel/README.md b/src/hotel/README.md deleted file mode 100644 index ba2e5ebf9..000000000 --- a/src/hotel/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# hotel (via npm) (hotel) - -hotel is a simple process manager for developers. Start apps from your browser and access them using local domains. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/hotel:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/hotel/devcontainer-feature.json b/src/hotel/devcontainer-feature.json deleted file mode 100644 index 8a5475b33..000000000 --- a/src/hotel/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "hotel", - "version": "1.0.3", - "name": "hotel (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/hotel", - "description": "hotel is a simple process manager for developers. Start apps from your browser and access them using local domains.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/hotel/install.sh b/src/hotel/install.sh deleted file mode 100755 index a2037039b..000000000 --- a/src/hotel/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='hotel' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/hotel/library_scripts.sh b/src/hotel/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/hotel/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/how2/README.md b/src/how2/README.md deleted file mode 100644 index c09cb6f2d..000000000 --- a/src/how2/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# how2 (via Github Releases) (how2) - -how2 finds the simplest way to do something in a unix shell. It's like man, but you can query it in natural language. It uses a mix of AI code-completion and StackOverflow search. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/how2:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/how2/devcontainer-feature.json b/src/how2/devcontainer-feature.json deleted file mode 100644 index 33088fb1a..000000000 --- a/src/how2/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "how2", - "version": "1.0.9", - "name": "how2 (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/how2", - "description": "how2 finds the simplest way to do something in a unix shell. It's like man, but you can query it in natural language. It uses a mix of AI code-completion and StackOverflow search.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/how2/install.sh b/src/how2/install.sh deleted file mode 100755 index a3e073b12..000000000 --- a/src/how2/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='santinic/how2' --option binaryNames='how2' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/how2/library_scripts.sh b/src/how2/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/how2/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/http-server/README.md b/src/http-server/README.md deleted file mode 100644 index 4e86ce1cf..000000000 --- a/src/http-server/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# http-server (by http-party) (via npm) (http-server) - -http-server is a simple, zero-configuration command-line static HTTP server. It is powerful enough for production usage, but it's simple and hackable enough to be used for testing, local development and learning. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/http-server:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/http-server/devcontainer-feature.json b/src/http-server/devcontainer-feature.json deleted file mode 100644 index 4e8c34ec2..000000000 --- a/src/http-server/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "http-server", - "version": "1.0.3", - "name": "http-server (by http-party) (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/http-server", - "description": "http-server is a simple, zero-configuration command-line static HTTP server. It is powerful enough for production usage, but it's simple and hackable enough to be used for testing, local development and learning.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/http-server/install.sh b/src/http-server/install.sh deleted file mode 100755 index 55ff2dff6..000000000 --- a/src/http-server/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='http-server' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/http-server/library_scripts.sh b/src/http-server/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/http-server/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/http4k-sdkman/README.md b/src/http4k-sdkman/README.md deleted file mode 100644 index dbcae6c87..000000000 --- a/src/http4k-sdkman/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# http4k (via SDKMAN) (http4k-sdkman) - -http4k is the Functional toolkit for building HTTP applications in Kotlin - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/http4k-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/http4k-sdkman/devcontainer-feature.json b/src/http4k-sdkman/devcontainer-feature.json deleted file mode 100644 index 6a7ba5778..000000000 --- a/src/http4k-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "http4k-sdkman", - "version": "2.0.15", - "name": "http4k (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/http4k-sdkman", - "description": "http4k is the Functional toolkit for building HTTP applications in Kotlin", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/http4k-sdkman/install.sh b/src/http4k-sdkman/install.sh deleted file mode 100755 index 47a3e2efa..000000000 --- a/src/http4k-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='http4k' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/http4k-sdkman/library_scripts.sh b/src/http4k-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/http4k-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/hyperfine/README.md b/src/hyperfine/README.md deleted file mode 100644 index c65b6d23f..000000000 --- a/src/hyperfine/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# hyperfine (via Github Releases) (hyperfine) - -hyperfine is a command-line benchmarking tool. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/hyperfine:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/hyperfine/devcontainer-feature.json b/src/hyperfine/devcontainer-feature.json deleted file mode 100644 index 3dcf374e9..000000000 --- a/src/hyperfine/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "hyperfine", - "version": "1.0.14", - "name": "hyperfine (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/hyperfine", - "description": "hyperfine is a command-line benchmarking tool.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/hyperfine/install.sh b/src/hyperfine/install.sh deleted file mode 100755 index 1a68091ae..000000000 --- a/src/hyperfine/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sharkdp/hyperfine' --option binaryNames='hyperfine' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/hyperfine/library_scripts.sh b/src/hyperfine/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/hyperfine/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/immuadmin-fips/README.md b/src/immuadmin-fips/README.md deleted file mode 100644 index 1dd7dc9d0..000000000 --- a/src/immuadmin-fips/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# immuadmin (FIPS) (via Github Releases) (immuadmin-fips) - -immuadmin is the admin CLI for immudb and immugw. You can install and manage the service installation for both components and get statistics as well as runtime information. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/immuadmin-fips:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/immuadmin-fips/devcontainer-feature.json b/src/immuadmin-fips/devcontainer-feature.json deleted file mode 100644 index 355600160..000000000 --- a/src/immuadmin-fips/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "immuadmin-fips", - "version": "1.0.9", - "name": "immuadmin (FIPS) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/immuadmin-fips", - "description": "immuadmin is the admin CLI for immudb and immugw. You can install and manage the service installation for both components and get statistics as well as runtime information.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/immuadmin-fips/install.sh b/src/immuadmin-fips/install.sh deleted file mode 100755 index bafe3afce..000000000 --- a/src/immuadmin-fips/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='codenotary/immudb' --option binaryNames='immuadmin' --option version="$VERSION" --option assetRegex='.*(fips).*' - - - -echo 'Done!' - diff --git a/src/immuadmin-fips/library_scripts.sh b/src/immuadmin-fips/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/immuadmin-fips/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/immuadmin/README.md b/src/immuadmin/README.md deleted file mode 100644 index f0477db59..000000000 --- a/src/immuadmin/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# immuadmin (via Github Releases) (immuadmin) - -immuadmin is the admin CLI for immudb and immugw. You can install and manage the service installation for both components and get statistics as well as runtime information. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/immuadmin:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/immuadmin/devcontainer-feature.json b/src/immuadmin/devcontainer-feature.json deleted file mode 100644 index 2231df3d8..000000000 --- a/src/immuadmin/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "immuadmin", - "version": "1.0.9", - "name": "immuadmin (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/immuadmin", - "description": "immuadmin is the admin CLI for immudb and immugw. You can install and manage the service installation for both components and get statistics as well as runtime information.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/immuadmin/install.sh b/src/immuadmin/install.sh deleted file mode 100755 index c754dd3c3..000000000 --- a/src/immuadmin/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='codenotary/immudb' --option binaryNames='immuadmin' --option version="$VERSION" --option assetRegex='^(?!.*(fips))' - - - -echo 'Done!' - diff --git a/src/immuadmin/library_scripts.sh b/src/immuadmin/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/immuadmin/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/immuclient-fips/README.md b/src/immuclient-fips/README.md deleted file mode 100644 index 1f9bf102e..000000000 --- a/src/immuclient-fips/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# immuclient (FIPS) (via Github Releases) (immuclient-fips) - -immuclient is a CLI client for immudb - the lightweight, high-speed immutable database for systems and applications. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/immuclient-fips:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/immuclient-fips/devcontainer-feature.json b/src/immuclient-fips/devcontainer-feature.json deleted file mode 100644 index f59afc2ba..000000000 --- a/src/immuclient-fips/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "immuclient-fips", - "version": "1.0.9", - "name": "immuclient (FIPS) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/immuclient-fips", - "description": "immuclient is a CLI client for immudb - the lightweight, high-speed immutable database for systems and applications.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/immuclient-fips/install.sh b/src/immuclient-fips/install.sh deleted file mode 100755 index 13245f731..000000000 --- a/src/immuclient-fips/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='codenotary/immudb' --option binaryNames='immuclient' --option version="$VERSION" --option assetRegex='.*(fips).*' - - - -echo 'Done!' - diff --git a/src/immuclient-fips/library_scripts.sh b/src/immuclient-fips/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/immuclient-fips/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/immuclient/README.md b/src/immuclient/README.md deleted file mode 100644 index a74ba7232..000000000 --- a/src/immuclient/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# immuclient (via Github Releases) (immuclient) - -immuclient is a CLI client for immudb - the lightweight, high-speed immutable database for systems and applications. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/immuclient:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/immuclient/devcontainer-feature.json b/src/immuclient/devcontainer-feature.json deleted file mode 100644 index 9c5023efe..000000000 --- a/src/immuclient/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "immuclient", - "version": "1.0.9", - "name": "immuclient (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/immuclient", - "description": "immuclient is a CLI client for immudb - the lightweight, high-speed immutable database for systems and applications.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/immuclient/install.sh b/src/immuclient/install.sh deleted file mode 100755 index a04c2f30e..000000000 --- a/src/immuclient/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='codenotary/immudb' --option binaryNames='immuclient' --option version="$VERSION" --option assetRegex='^(?!.*(fips))' - - - -echo 'Done!' - diff --git a/src/immuclient/library_scripts.sh b/src/immuclient/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/immuclient/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/immudb-fips/README.md b/src/immudb-fips/README.md deleted file mode 100644 index 81351d271..000000000 --- a/src/immudb-fips/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# immudb (FIPS) (via Github Releases) (immudb-fips) - -immudb is an immutable database based on zero trust, SQL and Key-Value, tamperproof, data change history. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/immudb-fips:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/immudb-fips/devcontainer-feature.json b/src/immudb-fips/devcontainer-feature.json deleted file mode 100644 index 3a09c52a4..000000000 --- a/src/immudb-fips/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "immudb-fips", - "version": "1.0.9", - "name": "immudb (FIPS) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/immudb-fips", - "description": "immudb is an immutable database based on zero trust, SQL and Key-Value, tamperproof, data change history.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/immudb-fips/install.sh b/src/immudb-fips/install.sh deleted file mode 100755 index ebee9cb2c..000000000 --- a/src/immudb-fips/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='codenotary/immudb' --option binaryNames='immudb' --option version="$VERSION" --option assetRegex='.*(fips).*' - - - -echo 'Done!' - diff --git a/src/immudb-fips/library_scripts.sh b/src/immudb-fips/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/immudb-fips/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/immudb/README.md b/src/immudb/README.md deleted file mode 100644 index 4c50f94b7..000000000 --- a/src/immudb/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# immudb (via Github Releases) (immudb) - -immudb is an immutable database based on zero trust, SQL and Key-Value, tamperproof, data change history. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/immudb:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/immudb/devcontainer-feature.json b/src/immudb/devcontainer-feature.json deleted file mode 100644 index 47437c4fc..000000000 --- a/src/immudb/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "immudb", - "version": "1.0.9", - "name": "immudb (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/immudb", - "description": "immudb is an immutable database based on zero trust, SQL and Key-Value, tamperproof, data change history.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/immudb/install.sh b/src/immudb/install.sh deleted file mode 100755 index 03a994fce..000000000 --- a/src/immudb/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='codenotary/immudb' --option binaryNames='immudb' --option version="$VERSION" --option assetRegex='^(?!.*(fips))' - - - -echo 'Done!' - diff --git a/src/immudb/library_scripts.sh b/src/immudb/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/immudb/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/infracost/README.md b/src/infracost/README.md deleted file mode 100644 index 7f5334060..000000000 --- a/src/infracost/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Infracost (via Github Releases) (infracost) - -Infracost shows cloud cost estimates for Terraform. It lets engineers see a cost breakdown and understand costs before making changes, either in the terminal, VS Code or pull requests. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/infracost:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/infracost/devcontainer-feature.json b/src/infracost/devcontainer-feature.json deleted file mode 100644 index d1383fc63..000000000 --- a/src/infracost/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "infracost", - "version": "1.0.5", - "name": "Infracost (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/infracost", - "description": "Infracost shows cloud cost estimates for Terraform. It lets engineers see a cost breakdown and understand costs before making changes, either in the terminal, VS Code or pull requests.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/infracost/install.sh b/src/infracost/install.sh deleted file mode 100755 index e3ae947cd..000000000 --- a/src/infracost/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='infracost/infracost' --option binaryNames='infracost' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/infracost/library_scripts.sh b/src/infracost/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/infracost/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/infrastructor-sdkman/README.md b/src/infrastructor-sdkman/README.md deleted file mode 100644 index 0857ecc3b..000000000 --- a/src/infrastructor-sdkman/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Infrastructor (via SDKMAN) (infrastructor-sdkman) - -Infrastructor is an open source server provisioning tool written in Groovy - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/infrastructor-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/infrastructor-sdkman/devcontainer-feature.json b/src/infrastructor-sdkman/devcontainer-feature.json deleted file mode 100644 index eaf80e2b2..000000000 --- a/src/infrastructor-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "infrastructor-sdkman", - "version": "2.0.15", - "name": "Infrastructor (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/infrastructor-sdkman", - "description": "Infrastructor is an open source server provisioning tool written in Groovy", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/infrastructor-sdkman/install.sh b/src/infrastructor-sdkman/install.sh deleted file mode 100755 index 5f17df99a..000000000 --- a/src/infrastructor-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='infrastructor' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/infrastructor-sdkman/library_scripts.sh b/src/infrastructor-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/infrastructor-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/invoke/README.md b/src/invoke/README.md deleted file mode 100644 index 2e5c30973..000000000 --- a/src/invoke/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Invoke (via pipx) (invoke) - -Invoke is a Python (2.7 and 3.4+) library for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks. It draws inspiration from various sources (make/rake, Fabric 1.x, etc) to arrive at a powerful & clean feature set. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/invoke:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/invoke/devcontainer-feature.json b/src/invoke/devcontainer-feature.json deleted file mode 100644 index 2dcbeb514..000000000 --- a/src/invoke/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "invoke", - "version": "1.0.3", - "name": "Invoke (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/invoke", - "description": "Invoke is a Python (2.7 and 3.4+) library for managing shell-oriented subprocesses and organizing executable Python code into CLI-invokable tasks. It draws inspiration from various sources (make/rake, Fabric 1.x, etc) to arrive at a powerful & clean feature set.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/invoke/install.sh b/src/invoke/install.sh deleted file mode 100755 index 096cfaaef..000000000 --- a/src/invoke/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='invoke' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/invoke/library_scripts.sh b/src/invoke/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/invoke/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ionic-cli/README.md b/src/ionic-cli/README.md deleted file mode 100644 index b26bcc113..000000000 --- a/src/ionic-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ionic CLI (via npm) (ionic-cli) - -The Ionic command-line interface (CLI) is the go-to tool for developing Ionic apps. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ionic-cli:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Ionic CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ionic-cli/devcontainer-feature.json b/src/ionic-cli/devcontainer-feature.json deleted file mode 100644 index 480a06903..000000000 --- a/src/ionic-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "ionic-cli", - "version": "2.0.15", - "name": "Ionic CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ionic-cli", - "description": "The Ionic command-line interface (CLI) is the go-to tool for developing Ionic apps.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Ionic CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/ionic-cli/install.sh b/src/ionic-cli/install.sh deleted file mode 100755 index b8c6f2134..000000000 --- a/src/ionic-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@ionic/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ionic-cli/library_scripts.sh b/src/ionic-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ionic-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/isort/README.md b/src/isort/README.md deleted file mode 100644 index 40781040e..000000000 --- a/src/isort/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# isort (via pipx) (isort) - -isort is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/isort:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/isort/devcontainer-feature.json b/src/isort/devcontainer-feature.json deleted file mode 100644 index 7aac7ad91..000000000 --- a/src/isort/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "isort", - "version": "2.0.17", - "name": "isort (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/isort", - "description": "isort is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/isort/install.sh b/src/isort/install.sh deleted file mode 100755 index 5139147e2..000000000 --- a/src/isort/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='isort' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/isort/library_scripts.sh b/src/isort/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/isort/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/istioctl/README.md b/src/istioctl/README.md deleted file mode 100644 index 4220aae54..000000000 --- a/src/istioctl/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Istio CLI (via Github Releases) (istioctl) - -The istioctl tool is a configuration command line utility that allows service operators to debug and diagnose their Istio service mesh deployments. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/istioctl:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/istioctl/devcontainer-feature.json b/src/istioctl/devcontainer-feature.json deleted file mode 100644 index 1204d9daa..000000000 --- a/src/istioctl/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "istioctl", - "version": "1.0.5", - "name": "Istio CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/istioctl", - "description": "The istioctl tool is a configuration command line utility that allows service operators to debug and diagnose their Istio service mesh deployments.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/istioctl/install.sh b/src/istioctl/install.sh deleted file mode 100755 index 131f413f5..000000000 --- a/src/istioctl/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='istio/istio' --option binaryNames='istioctl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/istioctl/library_scripts.sh b/src/istioctl/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/istioctl/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jake/README.md b/src/jake/README.md deleted file mode 100644 index 0d63dd42c..000000000 --- a/src/jake/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# jake (via pipx) (jake) - -jake is a tool to check your Python environments for vulnerable Open Source packages with OSS Index or Sonatype Nexus Lifecycle. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jake:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jake/devcontainer-feature.json b/src/jake/devcontainer-feature.json deleted file mode 100644 index 7f4aa046c..000000000 --- a/src/jake/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "jake", - "version": "1.0.4", - "name": "jake (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jake", - "description": "jake is a tool to check your Python environments for vulnerable Open Source packages with OSS Index or Sonatype Nexus Lifecycle.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/jake/install.sh b/src/jake/install.sh deleted file mode 100755 index 2fdb49b22..000000000 --- a/src/jake/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='jake' --option version="$VERSION" - - - -echo 'Done' - diff --git a/src/jake/library_scripts.sh b/src/jake/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jake/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jbake-sdkman/README.md b/src/jbake-sdkman/README.md deleted file mode 100644 index 8546346c2..000000000 --- a/src/jbake-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# JBake (via SDKMAN) (jbake-sdkman) - -JBake is a Java based, open source, static site/blog generator for developers -and designers. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jbake-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jbake-sdkman/devcontainer-feature.json b/src/jbake-sdkman/devcontainer-feature.json deleted file mode 100644 index 29d00f9f2..000000000 --- a/src/jbake-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "jbake-sdkman", - "version": "2.0.15", - "name": "JBake (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jbake-sdkman", - "description": "JBake is a Java based, open source, static site/blog generator for developers\nand designers.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/jbake-sdkman/install.sh b/src/jbake-sdkman/install.sh deleted file mode 100755 index 17997402b..000000000 --- a/src/jbake-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='jbake' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/jbake-sdkman/library_scripts.sh b/src/jbake-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/jbake-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/jbang-sdkman/README.md b/src/jbang-sdkman/README.md deleted file mode 100644 index 36af31655..000000000 --- a/src/jbang-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# JBang (via SDKMAN) (jbang-sdkman) - -JBang makes it easy to use Java for scripting. It lets you use a single file for -code and dependency management and allows you to run it directly. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jbang-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jbang-sdkman/devcontainer-feature.json b/src/jbang-sdkman/devcontainer-feature.json deleted file mode 100644 index f8cded77b..000000000 --- a/src/jbang-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "jbang-sdkman", - "version": "2.0.15", - "name": "JBang (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jbang-sdkman", - "description": "JBang makes it easy to use Java for scripting. It lets you use a single file for\ncode and dependency management and allows you to run it directly.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/jbang-sdkman/install.sh b/src/jbang-sdkman/install.sh deleted file mode 100755 index cecabf304..000000000 --- a/src/jbang-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='jbang' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/jbang-sdkman/library_scripts.sh b/src/jbang-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/jbang-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/jenkinsx-cli/README.md b/src/jenkinsx-cli/README.md deleted file mode 100644 index 9d64649f2..000000000 --- a/src/jenkinsx-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Jenkins X CLI (via Github Releases) (jenkinsx-cli) - -Jenkins X CLI is the modular command line CLI for Jenkins X 3.x - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jenkinsx-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jenkinsx-cli/devcontainer-feature.json b/src/jenkinsx-cli/devcontainer-feature.json deleted file mode 100644 index 922920077..000000000 --- a/src/jenkinsx-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "jenkinsx-cli", - "version": "1.0.7", - "name": "Jenkins X CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jenkinsx-cli", - "description": "Jenkins X CLI is the modular command line CLI for Jenkins X 3.x", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/jenkinsx-cli/install.sh b/src/jenkinsx-cli/install.sh deleted file mode 100755 index 7cb174e76..000000000 --- a/src/jenkinsx-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='jenkins-x/jx' --option binaryNames='jx' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jenkinsx-cli/library_scripts.sh b/src/jenkinsx-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jenkinsx-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jest/README.md b/src/jest/README.md deleted file mode 100644 index c4fa33d51..000000000 --- a/src/jest/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Jest (via npm) (jest) - -Jest is a delightful JavaScript Testing Framework with a focus on simplicity - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jest:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jest/devcontainer-feature.json b/src/jest/devcontainer-feature.json deleted file mode 100644 index 8bafcac6b..000000000 --- a/src/jest/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "jest", - "version": "2.0.15", - "name": "Jest (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jest", - "description": "Jest is a delightful JavaScript Testing Framework with a focus on simplicity", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/jest/install.sh b/src/jest/install.sh deleted file mode 100755 index 0825e3178..000000000 --- a/src/jest/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='jest' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jest/library_scripts.sh b/src/jest/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jest/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jfrog-cli-homebrew/README.md b/src/jfrog-cli-homebrew/README.md deleted file mode 100644 index a499d8b34..000000000 --- a/src/jfrog-cli-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# JFrog CLI (via Homebrew) (jfrog-cli-homebrew) - -JFrog CLI is a compact and smart client that provides a simple interface that automates access to JFrog products simplifying your automation scripts making them more readable and easier to maintain. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jfrog-cli-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of JFrog CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jfrog-cli-homebrew/devcontainer-feature.json b/src/jfrog-cli-homebrew/devcontainer-feature.json deleted file mode 100644 index a6c74021f..000000000 --- a/src/jfrog-cli-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "jfrog-cli-homebrew", - "version": "1.0.14", - "name": "JFrog CLI (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jfrog-cli-homebrew", - "description": "JFrog CLI is a compact and smart client that provides a simple interface that automates access to JFrog products simplifying your automation scripts making them more readable and easier to maintain.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of JFrog CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/jfrog-cli-homebrew/install.sh b/src/jfrog-cli-homebrew/install.sh deleted file mode 100755 index 7cc0eada4..000000000 --- a/src/jfrog-cli-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='jfrog-cli' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/jfrog-cli-homebrew/library_scripts.sh b/src/jfrog-cli-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/jfrog-cli-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/jfrog-cli-npm/README.md b/src/jfrog-cli-npm/README.md deleted file mode 100644 index 0eea8653f..000000000 --- a/src/jfrog-cli-npm/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# JFrog CLI (via npm) (jfrog-cli-npm) - -JFrog CLI is a compact and smart client that provides a simple interface that automates access to JFrog products simplifying your automation scripts making them more readable and easier to maintain. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jfrog-cli-npm:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of JFrog CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jfrog-cli-npm/devcontainer-feature.json b/src/jfrog-cli-npm/devcontainer-feature.json deleted file mode 100644 index 2daf2d9c9..000000000 --- a/src/jfrog-cli-npm/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "jfrog-cli-npm", - "version": "1.0.9", - "name": "JFrog CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jfrog-cli-npm", - "description": "JFrog CLI is a compact and smart client that provides a simple interface that automates access to JFrog products simplifying your automation scripts making them more readable and easier to maintain.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of JFrog CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/jfrog-cli-npm/install.sh b/src/jfrog-cli-npm/install.sh deleted file mode 100755 index df5b256a3..000000000 --- a/src/jfrog-cli-npm/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='jfrog-cli-v2-jf' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jfrog-cli-npm/library_scripts.sh b/src/jfrog-cli-npm/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jfrog-cli-npm/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jfrog-cli/README.md b/src/jfrog-cli/README.md deleted file mode 100644 index 30dbf4edb..000000000 --- a/src/jfrog-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# JFrog CLI (via jfrog.io) (jfrog-cli) - -JFrog CLI is a compact and smart client that provides a simple interface that automates access to JFrog products simplifying your automation scripts making them more readable and easier to maintain. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jfrog-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jfrog-cli/devcontainer-feature.json b/src/jfrog-cli/devcontainer-feature.json deleted file mode 100644 index 29ce691e8..000000000 --- a/src/jfrog-cli/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "jfrog-cli", - "version": "1.0.8", - "name": "JFrog CLI (via jfrog.io)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jfrog-cli", - "description": "JFrog CLI is a compact and smart client that provides a simple interface that automates access to JFrog products simplifying your automation scripts making them more readable and easier to maintain.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/curl-apt-get" - ] -} \ No newline at end of file diff --git a/src/jfrog-cli/install.sh b/src/jfrog-cli/install.sh deleted file mode 100755 index af8ebf991..000000000 --- a/src/jfrog-cli/install.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/curl-apt-get:1.0.16" - -curl -fL https://install-cli.jfrog.io | sh && chown $_REMOTE_USER /usr/local/bin/jf && chmod a+x /usr/local/bin/jf diff --git a/src/jfrog-cli/library_scripts.sh b/src/jfrog-cli/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/jfrog-cli/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/jira-cli/README.md b/src/jira-cli/README.md deleted file mode 100644 index 5d534513b..000000000 --- a/src/jira-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Jira CLI (via Github Releases) (jira-cli) - -Jira CLI is an interactive command line tool for Atlassian Jira that will help you avoid Jira UI to some extent. This tool may not be able to do everything, but it has all the essential features required to improve your day-to-day workflow with Jira. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jira-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jira-cli/devcontainer-feature.json b/src/jira-cli/devcontainer-feature.json deleted file mode 100644 index 9ee5d85c0..000000000 --- a/src/jira-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "jira-cli", - "version": "1.0.7", - "name": "Jira CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jira-cli", - "description": "Jira CLI is an interactive command line tool for Atlassian Jira that will help you avoid Jira UI to some extent. This tool may not be able to do everything, but it has all the essential features required to improve your day-to-day workflow with Jira.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/jira-cli/install.sh b/src/jira-cli/install.sh deleted file mode 100755 index 67e478e26..000000000 --- a/src/jira-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ankitpokhrel/jira-cli' --option binaryNames='jira' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jira-cli/library_scripts.sh b/src/jira-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jira-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jmc-sdkman/README.md b/src/jmc-sdkman/README.md deleted file mode 100644 index 7de48edbd..000000000 --- a/src/jmc-sdkman/README.md +++ /dev/null @@ -1,32 +0,0 @@ - -# JDK Mission Control (via SDKMAN) (jmc-sdkman) - -Java Flight Recorder and JDK Mission Control together create a complete tool -chain to continuously collect low level and detailed runtime information -enabling after-the-fact incident analysis. JDK Mission Control is an advanced -set of tools that enables efficient and detailed analysis of the extensive of -data collected by Java Flight Recorder. The tool chain enables developers and -administrators to collect and analyze data from Java applications running -locally or deployed in production environments. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jmc-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of JDK Mission Control to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | oracle | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jmc-sdkman/devcontainer-feature.json b/src/jmc-sdkman/devcontainer-feature.json deleted file mode 100644 index b704c5414..000000000 --- a/src/jmc-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "jmc-sdkman", - "version": "2.0.15", - "name": "JDK Mission Control (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jmc-sdkman", - "description": "Java Flight Recorder and JDK Mission Control together create a complete tool\nchain to continuously collect low level and detailed runtime information\nenabling after-the-fact incident analysis. JDK Mission Control is an advanced\nset of tools that enables efficient and detailed analysis of the extensive of\ndata collected by Java Flight Recorder. The tool chain enables developers and\nadministrators to collect and analyze data from Java applications running\nlocally or deployed in production environments.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of JDK Mission Control to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "oracle", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/jmc-sdkman/install.sh b/src/jmc-sdkman/install.sh deleted file mode 100755 index bf73987b2..000000000 --- a/src/jmc-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='jmc' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/jmc-sdkman/library_scripts.sh b/src/jmc-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/jmc-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/jmeter-sdkman/README.md b/src/jmeter-sdkman/README.md deleted file mode 100644 index 98f7896b0..000000000 --- a/src/jmeter-sdkman/README.md +++ /dev/null @@ -1,29 +0,0 @@ - -# Apache JMeter (via SDKMAN) (jmeter-sdkman) - -The Apache JMeter™ application is open source software, a 100% pure Java -application designed to load test functional behavior and measure performance. -It was originally designed for testing Web Applications but has since expanded -to other test functions. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jmeter-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Apache JMeter to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jmeter-sdkman/devcontainer-feature.json b/src/jmeter-sdkman/devcontainer-feature.json deleted file mode 100644 index b69e51701..000000000 --- a/src/jmeter-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "jmeter-sdkman", - "version": "2.0.15", - "name": "Apache JMeter (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jmeter-sdkman", - "description": "The Apache JMeter\u2122 application is open source software, a 100% pure Java\napplication designed to load test functional behavior and measure performance.\nIt was originally designed for testing Web Applications but has since expanded\nto other test functions.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Apache JMeter to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/jmeter-sdkman/install.sh b/src/jmeter-sdkman/install.sh deleted file mode 100755 index b4764a3c6..000000000 --- a/src/jmeter-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='jmeter' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/jmeter-sdkman/library_scripts.sh b/src/jmeter-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/jmeter-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/joern-sdkman/README.md b/src/joern-sdkman/README.md deleted file mode 100644 index 1e15b08ca..000000000 --- a/src/joern-sdkman/README.md +++ /dev/null @@ -1,32 +0,0 @@ - -# Joern (via SDKMAN) (joern-sdkman) - -Joern is a platform for analyzing source code, bytecode, and binary executables. -It generates code property graphs (CPGs), a graph representation of code for -cross-language code analysis. Code property graphs are stored in a custom graph -database. This allows code to be mined using search queries formulated in a -Scala-based domain-specific query language. Joern is developed with the goal of -providing a useful tool for vulnerability discovery and research in static -program analysis. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/joern-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/joern-sdkman/devcontainer-feature.json b/src/joern-sdkman/devcontainer-feature.json deleted file mode 100644 index 46e282dca..000000000 --- a/src/joern-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "joern-sdkman", - "version": "2.0.15", - "name": "Joern (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/joern-sdkman", - "description": "Joern is a platform for analyzing source code, bytecode, and binary executables.\nIt generates code property graphs (CPGs), a graph representation of code for\ncross-language code analysis. Code property graphs are stored in a custom graph\ndatabase. This allows code to be mined using search queries formulated in a\nScala-based domain-specific query language. Joern is developed with the goal of\nproviding a useful tool for vulnerability discovery and research in static\nprogram analysis.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/joern-sdkman/install.sh b/src/joern-sdkman/install.sh deleted file mode 100755 index 8fa1ac018..000000000 --- a/src/joern-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='joern' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/joern-sdkman/library_scripts.sh b/src/joern-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/joern-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/jreleaser-sdkman/README.md b/src/jreleaser-sdkman/README.md deleted file mode 100644 index 963073ffd..000000000 --- a/src/jreleaser-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# JReleaser (via SDKMAN) (jreleaser-sdkman) - -JReleaser is a release automation tool for Java projects. Its goal is to -simplify creating releases and publishing artifacts to multiple package managers -while providing customizable options. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jreleaser-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jreleaser-sdkman/devcontainer-feature.json b/src/jreleaser-sdkman/devcontainer-feature.json deleted file mode 100644 index 3fdab4cbe..000000000 --- a/src/jreleaser-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "jreleaser-sdkman", - "version": "2.0.15", - "name": "JReleaser (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jreleaser-sdkman", - "description": "JReleaser is a release automation tool for Java projects. Its goal is to\nsimplify creating releases and publishing artifacts to multiple package managers\nwhile providing customizable options.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/jreleaser-sdkman/install.sh b/src/jreleaser-sdkman/install.sh deleted file mode 100755 index ff389f1ef..000000000 --- a/src/jreleaser-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='jreleaser' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/jreleaser-sdkman/library_scripts.sh b/src/jreleaser-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/jreleaser-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/jrnl/README.md b/src/jrnl/README.md deleted file mode 100644 index 0bdec24b1..000000000 --- a/src/jrnl/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# jrnl (via pipx) (jrnl) - -jrnl is a simple journal application for the command line. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jrnl:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jrnl/devcontainer-feature.json b/src/jrnl/devcontainer-feature.json deleted file mode 100644 index 190b5619f..000000000 --- a/src/jrnl/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "jrnl", - "version": "2.0.17", - "name": "jrnl (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jrnl", - "description": "jrnl is a simple journal application for the command line.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/jrnl/install.sh b/src/jrnl/install.sh deleted file mode 100755 index bf5fde90d..000000000 --- a/src/jrnl/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='jrnl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jrnl/library_scripts.sh b/src/jrnl/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jrnl/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jshint/README.md b/src/jshint/README.md deleted file mode 100644 index 5236c99c8..000000000 --- a/src/jshint/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# JSHint (via npm) (jshint) - -JSHint is a tool that helps to detect errors and potential problems in your JavaScript code. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jshint:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jshint/devcontainer-feature.json b/src/jshint/devcontainer-feature.json deleted file mode 100644 index cc86d3722..000000000 --- a/src/jshint/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "jshint", - "version": "2.0.15", - "name": "JSHint (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jshint", - "description": "JSHint is a tool that helps to detect errors and potential problems in your JavaScript code.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/jshint/install.sh b/src/jshint/install.sh deleted file mode 100755 index 58684f891..000000000 --- a/src/jshint/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='jshint' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jshint/library_scripts.sh b/src/jshint/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jshint/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jsii-diff/README.md b/src/jsii-diff/README.md deleted file mode 100644 index 535a4bb87..000000000 --- a/src/jsii-diff/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# jsii-diff (via npm) (jsii-diff) - -jsii-diff compares two jsii assemblies for compatibility. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jsii-diff:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jsii-diff/devcontainer-feature.json b/src/jsii-diff/devcontainer-feature.json deleted file mode 100644 index c3c1af407..000000000 --- a/src/jsii-diff/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "jsii-diff", - "version": "1.0.2", - "name": "jsii-diff (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jsii-diff", - "description": "jsii-diff compares two jsii assemblies for compatibility.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/jsii-diff/install.sh b/src/jsii-diff/install.sh deleted file mode 100755 index fdc941f81..000000000 --- a/src/jsii-diff/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='jsii-diff' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jsii-diff/library_scripts.sh b/src/jsii-diff/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jsii-diff/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jsii-pacmak/README.md b/src/jsii-pacmak/README.md deleted file mode 100644 index 6dda500cc..000000000 --- a/src/jsii-pacmak/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# jsii-pacmak (via npm) (jsii-pacmak) - -jsii-pacmak generates ready-to-publish language-specific packages for jsii modules, part of the jsii project. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jsii-pacmak:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jsii-pacmak/devcontainer-feature.json b/src/jsii-pacmak/devcontainer-feature.json deleted file mode 100644 index af2eace4a..000000000 --- a/src/jsii-pacmak/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "jsii-pacmak", - "version": "1.0.2", - "name": "jsii-pacmak (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jsii-pacmak", - "description": "jsii-pacmak generates ready-to-publish language-specific packages for jsii modules, part of the jsii project.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/jsii-pacmak/install.sh b/src/jsii-pacmak/install.sh deleted file mode 100755 index 0aa782fa4..000000000 --- a/src/jsii-pacmak/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='jsii-pacmak' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jsii-pacmak/library_scripts.sh b/src/jsii-pacmak/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jsii-pacmak/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jsii-rosetta/README.md b/src/jsii-rosetta/README.md deleted file mode 100644 index e483eabbe..000000000 --- a/src/jsii-rosetta/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# jsii-rosetta (via npm) (jsii-rosetta) - -jsii-rosetta is a utility to transcribe example code snippets from TypeScript to other jsii languages. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jsii-rosetta:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jsii-rosetta/devcontainer-feature.json b/src/jsii-rosetta/devcontainer-feature.json deleted file mode 100644 index 907b7448a..000000000 --- a/src/jsii-rosetta/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "jsii-rosetta", - "version": "1.0.2", - "name": "jsii-rosetta (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jsii-rosetta", - "description": "jsii-rosetta is a utility to transcribe example code snippets from TypeScript to other jsii languages.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/jsii-rosetta/install.sh b/src/jsii-rosetta/install.sh deleted file mode 100755 index 6f7d58fed..000000000 --- a/src/jsii-rosetta/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='jsii-rosetta' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jsii-rosetta/library_scripts.sh b/src/jsii-rosetta/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jsii-rosetta/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/jsii/README.md b/src/jsii/README.md deleted file mode 100644 index 1f3907aa0..000000000 --- a/src/jsii/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# jsii compiler (via npm) (jsii) - -jsii allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the AWS Cloud Development Kit to deliver polyglot libraries from a single codebase! - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/jsii:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/jsii/devcontainer-feature.json b/src/jsii/devcontainer-feature.json deleted file mode 100644 index 8e190deed..000000000 --- a/src/jsii/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "jsii", - "version": "1.0.2", - "name": "jsii compiler (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/jsii", - "description": "jsii allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the AWS Cloud Development Kit to deliver polyglot libraries from a single codebase!", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/jsii/install.sh b/src/jsii/install.sh deleted file mode 100755 index 4f01dfb1a..000000000 --- a/src/jsii/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='jsii' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/jsii/library_scripts.sh b/src/jsii/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/jsii/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/json-server/README.md b/src/json-server/README.md deleted file mode 100644 index dba35a017..000000000 --- a/src/json-server/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# JSON Server (via npm) (json-server) - -Get a full fake REST API with zero coding in less than 30 seconds. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/json-server:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/json-server/devcontainer-feature.json b/src/json-server/devcontainer-feature.json deleted file mode 100644 index 445c82f4d..000000000 --- a/src/json-server/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "json-server", - "version": "1.0.3", - "name": "JSON Server (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/json-server", - "description": "Get a full fake REST API with zero coding in less than 30 seconds.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/json-server/install.sh b/src/json-server/install.sh deleted file mode 100755 index 0881c11e6..000000000 --- a/src/json-server/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='json-server' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/json-server/library_scripts.sh b/src/json-server/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/json-server/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/k2tf/README.md b/src/k2tf/README.md deleted file mode 100644 index 318558803..000000000 --- a/src/k2tf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# k2tf (via Github Releases) (k2tf) - -k2tf is a tool for converting Kubernetes API Objects (in YAML format) into HashiCorp's Terraform configuration language. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/k2tf:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/k2tf/devcontainer-feature.json b/src/k2tf/devcontainer-feature.json deleted file mode 100644 index 17046318f..000000000 --- a/src/k2tf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "k2tf", - "version": "1.0.5", - "name": "k2tf (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/k2tf", - "description": "k2tf is a tool for converting Kubernetes API Objects (in YAML format) into HashiCorp's Terraform configuration language.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/k2tf/install.sh b/src/k2tf/install.sh deleted file mode 100755 index 36e619a40..000000000 --- a/src/k2tf/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sl1pm4t/k2tf' --option binaryNames='k2tf' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/k2tf/library_scripts.sh b/src/k2tf/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/k2tf/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/k6/README.md b/src/k6/README.md deleted file mode 100644 index 519b38447..000000000 --- a/src/k6/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# k6 (via Github Releases) (k6) - -k6 is an open-source load testing tool that makes performance testing easy and productive for engineering teams. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/k6:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/k6/devcontainer-feature.json b/src/k6/devcontainer-feature.json deleted file mode 100644 index bc19922c7..000000000 --- a/src/k6/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "k6", - "version": "1.0.2", - "name": "k6 (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/k6", - "description": "k6 is an open-source load testing tool that makes performance testing easy and productive for engineering teams.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/k6/install.sh b/src/k6/install.sh deleted file mode 100755 index c2bd61573..000000000 --- a/src/k6/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='grafana/k6' --option binaryNames='k6' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/k6/library_scripts.sh b/src/k6/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/k6/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/karaf-sdkman/README.md b/src/karaf-sdkman/README.md deleted file mode 100644 index a45cd742d..000000000 --- a/src/karaf-sdkman/README.md +++ /dev/null @@ -1,30 +0,0 @@ - -# Karaf (via SDKMAN) (karaf-sdkman) - -Apache Karaf is a polymorphic, lightweight, powerful, and enterprise ready -applications runtime. It provides all the ecosystem and bootstrapping options -you need for your applications. It runs on premise or on cloud. By polymorphic, -it means that Karaf can host any kind of applications: WAR, OSGi, Spring, and -much more. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/karaf-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. (see jdk version which karaf supports here https://karaf.apache.org/get-started) | string | 11 | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/karaf-sdkman/devcontainer-feature.json b/src/karaf-sdkman/devcontainer-feature.json deleted file mode 100644 index af0619973..000000000 --- a/src/karaf-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "id": "karaf-sdkman", - "version": "2.0.15", - "name": "Karaf (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/karaf-sdkman", - "description": "Apache Karaf is a polymorphic, lightweight, powerful, and enterprise ready\napplications runtime. It provides all the ecosystem and bootstrapping options\nyou need for your applications. It runs on premise or on cloud. By polymorphic,\nit means that Karaf can host any kind of applications: WAR, OSGi, Spring, and\nmuch more.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "11", - "description": "Select or enter a JDK version to install. (see jdk version which karaf supports here https://karaf.apache.org/get-started)", - "proposals": [ - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/karaf-sdkman/install.sh b/src/karaf-sdkman/install.sh deleted file mode 100755 index 78df6726b..000000000 --- a/src/karaf-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='karaf' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/karaf-sdkman/library_scripts.sh b/src/karaf-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/karaf-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/keepercommander/README.md b/src/keepercommander/README.md deleted file mode 100644 index f2ad217c8..000000000 --- a/src/keepercommander/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Keeper Commander (Keeper CLI) (via pipx) (keepercommander) - -Keeper Commander is a command-line and SDK interface to Keeper® Password Manager. Commander can be used to access and control your Keeper vault, perform administrative functions (such as end-user onboarding and data import/export), launch remote sessions, rotate passwords, eliminate hardcoded passwords and more. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/keepercommander:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/keepercommander/devcontainer-feature.json b/src/keepercommander/devcontainer-feature.json deleted file mode 100644 index 19928ac76..000000000 --- a/src/keepercommander/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "keepercommander", - "version": "1.0.4", - "name": "Keeper Commander (Keeper CLI) (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/keepercommander", - "description": "Keeper Commander is a command-line and SDK interface to Keeper\u00ae Password Manager. Commander can be used to access and control your Keeper vault, perform administrative functions (such as end-user onboarding and data import/export), launch remote sessions, rotate passwords, eliminate hardcoded passwords and more.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/keepercommander/install.sh b/src/keepercommander/install.sh deleted file mode 100755 index e2ce3afcc..000000000 --- a/src/keepercommander/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='keepercommander' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/keepercommander/library_scripts.sh b/src/keepercommander/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/keepercommander/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ki-sdkman/README.md b/src/ki-sdkman/README.md deleted file mode 100644 index 2f8144ad0..000000000 --- a/src/ki-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# ki (via SDKMAN) (ki-sdkman) - -An extensible implementation of the Kotlin REPL with a rich set of features -including autocomplete, syntax highlighting, type inference and maven -dependencies. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ki-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ki-sdkman/devcontainer-feature.json b/src/ki-sdkman/devcontainer-feature.json deleted file mode 100644 index d8fe5fa8d..000000000 --- a/src/ki-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "ki-sdkman", - "version": "2.0.15", - "name": "ki (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ki-sdkman", - "description": "An extensible implementation of the Kotlin REPL with a rich set of features\nincluding autocomplete, syntax highlighting, type inference and maven\ndependencies.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/ki-sdkman/install.sh b/src/ki-sdkman/install.sh deleted file mode 100755 index 1eca37652..000000000 --- a/src/ki-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='ki' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/ki-sdkman/library_scripts.sh b/src/ki-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ki-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/kind/README.md b/src/kind/README.md deleted file mode 100644 index 108f19a6e..000000000 --- a/src/kind/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# kind (via Github Releases) (kind) - -kind is a tool for running local Kubernetes clusters using Docker container 'nodes'. kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kind:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kind/devcontainer-feature.json b/src/kind/devcontainer-feature.json deleted file mode 100644 index 1e416869d..000000000 --- a/src/kind/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "kind", - "version": "1.0.14", - "name": "kind (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kind", - "description": "kind is a tool for running local Kubernetes clusters using Docker container 'nodes'. kind was primarily designed for testing Kubernetes itself, but may be used for local development or CI.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/kind/install.sh b/src/kind/install.sh deleted file mode 100755 index 7376e4f08..000000000 --- a/src/kind/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='kubernetes-sigs/kind' --option binaryNames='kind' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/kind/library_scripts.sh b/src/kind/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/kind/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/kobweb-sdkman/README.md b/src/kobweb-sdkman/README.md deleted file mode 100644 index 3fb1c1cf7..000000000 --- a/src/kobweb-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Kobweb (via SDKMAN) (kobweb-sdkman) - -Kobweb is an opinionated Kotlin web framework built on top of Compose for Web. -The CLI provides commands to help setup and manage your project. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kobweb-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kobweb-sdkman/devcontainer-feature.json b/src/kobweb-sdkman/devcontainer-feature.json deleted file mode 100644 index e060ce697..000000000 --- a/src/kobweb-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "kobweb-sdkman", - "version": "2.0.15", - "name": "Kobweb (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kobweb-sdkman", - "description": "Kobweb is an opinionated Kotlin web framework built on top of Compose for Web.\nThe CLI provides commands to help setup and manage your project.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/kobweb-sdkman/install.sh b/src/kobweb-sdkman/install.sh deleted file mode 100755 index 00416b324..000000000 --- a/src/kobweb-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='kobweb' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/kobweb-sdkman/library_scripts.sh b/src/kobweb-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/kobweb-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/kops/README.md b/src/kops/README.md deleted file mode 100644 index ff9989b53..000000000 --- a/src/kops/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# kOps (via Github Releases) (kops) - -Kubernetes Operations (kOps) - Production Grade k8s Installation, Upgrades and Management. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kops:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kops/devcontainer-feature.json b/src/kops/devcontainer-feature.json deleted file mode 100644 index 66a1b0608..000000000 --- a/src/kops/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "kops", - "version": "1.0.2", - "name": "kOps (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kops", - "description": "Kubernetes Operations (kOps) - Production Grade k8s Installation, Upgrades and Management.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/kops/install.sh b/src/kops/install.sh deleted file mode 100755 index bf07851da..000000000 --- a/src/kops/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='kubernetes/kops' --option binaryNames='kops' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/kops/library_scripts.sh b/src/kops/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/kops/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/kotlin-sdkman/README.md b/src/kotlin-sdkman/README.md deleted file mode 100644 index 0bde8487d..000000000 --- a/src/kotlin-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Kotlin (via SDKMAN) (kotlin-sdkman) - -Kotlin is a statically-typed programming language that runs on the Java Virtual -Machine and can also be compiled to JavaScript source code. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kotlin-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kotlin-sdkman/devcontainer-feature.json b/src/kotlin-sdkman/devcontainer-feature.json deleted file mode 100644 index 045a8af6c..000000000 --- a/src/kotlin-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "kotlin-sdkman", - "version": "2.0.15", - "name": "Kotlin (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kotlin-sdkman", - "description": "Kotlin is a statically-typed programming language that runs on the Java Virtual\nMachine and can also be compiled to JavaScript source code.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/kotlin-sdkman/install.sh b/src/kotlin-sdkman/install.sh deleted file mode 100755 index f52060930..000000000 --- a/src/kotlin-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='kotlin' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/kotlin-sdkman/library_scripts.sh b/src/kotlin-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/kotlin-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/kscript-sdkman/README.md b/src/kscript-sdkman/README.md deleted file mode 100644 index bcfb0579f..000000000 --- a/src/kscript-sdkman/README.md +++ /dev/null @@ -1,29 +0,0 @@ - -# kscript (via SDKMAN) (kscript-sdkman) - -Enhanced scripting support for Kotlin on *nix-based systems. kscript provides an -easy-to-use, very flexible, and almost zero-overhead solution to write -self-contained mini-applications with Kotlin. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kscript-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| kotlinVersion | Select or enter a kotlin version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kscript-sdkman/devcontainer-feature.json b/src/kscript-sdkman/devcontainer-feature.json deleted file mode 100644 index 0c8e06e8f..000000000 --- a/src/kscript-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "id": "kscript-sdkman", - "version": "2.0.15", - "name": "kscript (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kscript-sdkman", - "description": "Enhanced scripting support for Kotlin on *nix-based systems. kscript provides an\neasy-to-use, very flexible, and almost zero-overhead solution to write\nself-contained mini-applications with Kotlin.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "kotlinVersion": { - "default": "latest", - "description": "Select or enter a kotlin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/kscript-sdkman/install.sh b/src/kscript-sdkman/install.sh deleted file mode 100755 index 10e526815..000000000 --- a/src/kscript-sdkman/install.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='kotlin' --option version="$KOTLINVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='kscript' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/kscript-sdkman/library_scripts.sh b/src/kscript-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/kscript-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/kubeclarity-cli/README.md b/src/kubeclarity-cli/README.md deleted file mode 100644 index 8c28cc8e9..000000000 --- a/src/kubeclarity-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# KubeClarity CLI (via Github Releases) (kubeclarity-cli) - -KubeClarity is a tool for detection and management of Software Bill Of Materials (SBOM) and vulnerabilities of container images and filesystems. KubeClarity CLI can be run locally and especially useful for CI/CD pipelines. It allows to analyze images and directories to generate SBOM, and scan it for vulnerabilities. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kubeclarity-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kubeclarity-cli/devcontainer-feature.json b/src/kubeclarity-cli/devcontainer-feature.json deleted file mode 100644 index b8bca2608..000000000 --- a/src/kubeclarity-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "kubeclarity-cli", - "version": "1.0.9", - "name": "KubeClarity CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kubeclarity-cli", - "description": "KubeClarity is a tool for detection and management of Software Bill Of Materials (SBOM) and vulnerabilities of container images and filesystems. KubeClarity CLI can be run locally and especially useful for CI/CD pipelines. It allows to analyze images and directories to generate SBOM, and scan it for vulnerabilities.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/kubeclarity-cli/install.sh b/src/kubeclarity-cli/install.sh deleted file mode 100755 index f0ed105f3..000000000 --- a/src/kubeclarity-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='openclarity/kubeclarity' --option binaryNames='kubeclarity-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/kubeclarity-cli/library_scripts.sh b/src/kubeclarity-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/kubeclarity-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/kubectl-asdf/README.md b/src/kubectl-asdf/README.md deleted file mode 100644 index c5d6244e2..000000000 --- a/src/kubectl-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Kubectl (via asdf) (kubectl-asdf) - -Installs Kubectl - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kubectl-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kubectl-asdf/devcontainer-feature.json b/src/kubectl-asdf/devcontainer-feature.json deleted file mode 100644 index f14415ef7..000000000 --- a/src/kubectl-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "kubectl-asdf", - "version": "2.0.15", - "name": "Kubectl (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kubectl-asdf", - "description": "Installs Kubectl", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/kubectl-asdf/install.sh b/src/kubectl-asdf/install.sh deleted file mode 100755 index 14131129f..000000000 --- a/src/kubectl-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='kubectl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/kubectl-asdf/library_scripts.sh b/src/kubectl-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/kubectl-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/kubectx-kubens/README.md b/src/kubectx-kubens/README.md deleted file mode 100644 index c47cb792a..000000000 --- a/src/kubectx-kubens/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Kubectx and Kubens (via Github Releases) (kubectx-kubens) - -kubectx is a tool to switch between contexts (clusters) on kubectl faster. kubens is a tool to switch between Kubernetes namespaces (and configure them for kubectl) easily. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kubectx-kubens:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version you would like to install (will apply for for both kubectx and kubens.) | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kubectx-kubens/devcontainer-feature.json b/src/kubectx-kubens/devcontainer-feature.json deleted file mode 100644 index b886962c1..000000000 --- a/src/kubectx-kubens/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "kubectx-kubens", - "version": "1.0.5", - "name": "Kubectx and Kubens (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kubectx-kubens", - "description": "kubectx is a tool to switch between contexts (clusters) on kubectl faster. kubens is a tool to switch between Kubernetes namespaces (and configure them for kubectl) easily.", - "options": { - "version": { - "default": "latest", - "description": "Select the version you would like to install (will apply for for both kubectx and kubens.)", - "proposals": [ - "latest", - "0.9.4" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/kubectx-kubens/install.sh b/src/kubectx-kubens/install.sh deleted file mode 100755 index 01487b88d..000000000 --- a/src/kubectx-kubens/install.sh +++ /dev/null @@ -1,31 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ahmetb/kubectx' --option binaryNames='kubectx' --option assetRegex='kubectx.*' --option version="$VERSION" - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ahmetb/kubectx' --option binaryNames='kubens' --option assetRegex='kubens.*' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/kubectx-kubens/library_scripts.sh b/src/kubectx-kubens/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/kubectx-kubens/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/kubie/README.md b/src/kubie/README.md deleted file mode 100644 index a9d4166a8..000000000 --- a/src/kubie/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Kubie (via Github Releases) (kubie) - -Kubie offers kubernetes context switching, namespace switching and prompt modification in a way that makes each shell independent from others - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kubie:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the Kubie version you would like to install | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kubie/devcontainer-feature.json b/src/kubie/devcontainer-feature.json deleted file mode 100644 index db5036714..000000000 --- a/src/kubie/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Kubie (via Github Releases)", - "id": "kubie", - "version": "1.0.3", - "description": "Kubie offers kubernetes context switching, namespace switching and prompt modification in a way that makes each shell independent from others", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/kubie", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "0.19.0" - ], - "default": "latest", - "description": "Select the Kubie version you would like to install" - } - } -} \ No newline at end of file diff --git a/src/kubie/install.sh b/src/kubie/install.sh deleted file mode 100755 index a4b577fff..000000000 --- a/src/kubie/install.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env bash - -KUBIE_VERSION="${VERSION:-"latest"}" - -set -e - -# Clean up -rm -rf /var/lib/apt/lists/* - -architecture="$(uname -m)" -case ${architecture} in -x86_64) architecture="amd64" ;; -aarch64 | armv8*) architecture="arm64" ;; -aarch32 | armv7* | armvhf*) architecture="arm" ;; -i?86) architecture="386" ;; -*) - echo "(!) Architecture ${architecture} unsupported" - exit 1 - ;; -esac - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# Figure out correct version of a three part version number is not passed -find_version_from_git_tags() { - local variable_name=$1 - local requested_version=${!variable_name} - if [ "${requested_version}" = "none" ]; then return; fi - local repository=$2 - local prefix=${3:-"tags/v"} - local separator=${4:-"."} - local last_part_optional=${5:-"false"} - if [ "$(echo "${requested_version}" | grep -o "." | wc -l)" != "2" ]; then - local escaped_separator=${separator//./\\.} - local last_part - if [ "${last_part_optional}" = "true" ]; then - last_part="(${escaped_separator}[0-9]+)?" - else - last_part="${escaped_separator}[0-9]+" - fi - local regex="${prefix}\\K[0-9]+${escaped_separator}[0-9]+${last_part}$" - local version_list="$(git ls-remote --tags ${repository} | grep -oP "${regex}" | tr -d ' ' | tr "${separator}" "." | sort -rV)" - if [ "${requested_version}" = "latest" ] || [ "${requested_version}" = "current" ] || [ "${requested_version}" = "lts" ]; then - declare -g ${variable_name}="$(echo "${version_list}" | head -n 1)" - else - set +e - declare -g ${variable_name}="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|$)")" - set -e - fi - fi - if [ -z "${!variable_name}" ] || ! echo "${version_list}" | grep "^${!variable_name//./\\.}$" >/dev/null 2>&1; then - echo -e "Invalid ${variable_name} value: ${requested_version}\nValid values:\n${version_list}" >&2 - exit 1 - fi - echo "${variable_name}=${!variable_name}" -} - -find_version_from_git_tags KUBIE_VERSION 'https://github.com/sbstp/kubie' - -check_packages ca-certificates curl - -KUBIE_FILENAME=kubie-linux-${architecture} -curl -sSL https://github.com/sbstp/kubie/releases/download/v${KUBIE_VERSION}/${KUBIE_FILENAME} -o /usr/local/bin/kubie -chmod +x /usr/local/bin/kubie - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/kyverno-cli/README.md b/src/kyverno-cli/README.md deleted file mode 100644 index 6659eb026..000000000 --- a/src/kyverno-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Kyverno CLI (via Github Releases) (kyverno-cli) - -Kyverno is a policy engine designed for Kubernetes. The Kyverno Command Line Interface (CLI) is designed to validate and test policy behavior to resources prior to adding them to a cluster. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kyverno-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/kyverno-cli/devcontainer-feature.json b/src/kyverno-cli/devcontainer-feature.json deleted file mode 100644 index 383682562..000000000 --- a/src/kyverno-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "kyverno-cli", - "version": "1.0.9", - "name": "Kyverno CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kyverno-cli", - "description": "Kyverno is a policy engine designed for Kubernetes. The Kyverno Command Line Interface (CLI) is designed to validate and test policy behavior to resources prior to adding them to a cluster.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/kyverno-cli/install.sh b/src/kyverno-cli/install.sh deleted file mode 100755 index 362170de2..000000000 --- a/src/kyverno-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='kyverno/kyverno' --option binaryNames='kyverno' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/kyverno-cli/library_scripts.sh b/src/kyverno-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/kyverno-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/lastpass-cli-homebrew/README.md b/src/lastpass-cli-homebrew/README.md deleted file mode 100644 index b2d911802..000000000 --- a/src/lastpass-cli-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# LastPass CLI (via Homebrew) (lastpass-cli-homebrew) - -The LastPass command line application is an open source project that allows you to create, edit, and retrieve passwords in your online LastPass vault. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/lastpass-cli-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/lastpass-cli-homebrew/devcontainer-feature.json b/src/lastpass-cli-homebrew/devcontainer-feature.json deleted file mode 100644 index 42bc8428a..000000000 --- a/src/lastpass-cli-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "lastpass-cli-homebrew", - "version": "1.0.7", - "name": "LastPass CLI (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/lastpass-cli-homebrew", - "description": "The LastPass command line application is an open source project that allows you to create, edit, and retrieve passwords in your online LastPass vault.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/lastpass-cli-homebrew/install.sh b/src/lastpass-cli-homebrew/install.sh deleted file mode 100755 index cf064ce59..000000000 --- a/src/lastpass-cli-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='lastpass-cli' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/lastpass-cli-homebrew/library_scripts.sh b/src/lastpass-cli-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/lastpass-cli-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/layrry-sdkman/README.md b/src/layrry-sdkman/README.md deleted file mode 100644 index 8739d0136..000000000 --- a/src/layrry-sdkman/README.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Layrry (via SDKMAN) (layrry-sdkman) - -Layrry - A Launcher and API for Modularized Java Applications. It allows to -assemble modularized applications based on Maven artifact coordinates of the -(modular) JARs to include. Layrry utilizes the Java Module System's notion of -module layers, allowing multiple versions of one module to be used within an -application at the same time, as well as dynamically adding and removing modules -at application runtime. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/layrry-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/layrry-sdkman/devcontainer-feature.json b/src/layrry-sdkman/devcontainer-feature.json deleted file mode 100644 index a6b7a2c22..000000000 --- a/src/layrry-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "layrry-sdkman", - "version": "2.0.15", - "name": "Layrry (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/layrry-sdkman", - "description": "Layrry - A Launcher and API for Modularized Java Applications. It allows to\nassemble modularized applications based on Maven artifact coordinates of the\n(modular) JARs to include. Layrry utilizes the Java Module System's notion of\nmodule layers, allowing multiple versions of one module to be used within an\napplication at the same time, as well as dynamically adding and removing modules\nat application runtime.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/layrry-sdkman/install.sh b/src/layrry-sdkman/install.sh deleted file mode 100755 index a9d431ef1..000000000 --- a/src/layrry-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='layrry' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/layrry-sdkman/library_scripts.sh b/src/layrry-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/layrry-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/lean-asdf/README.md b/src/lean-asdf/README.md deleted file mode 100644 index e5b5ec777..000000000 --- a/src/lean-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Lean (via asdf) (lean-asdf) - -Lean is a functional programming language that makes it easy to write correct and maintainable code. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/lean-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/lean-asdf/devcontainer-feature.json b/src/lean-asdf/devcontainer-feature.json deleted file mode 100644 index 51c6f7ca6..000000000 --- a/src/lean-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "lean-asdf", - "version": "2.0.15", - "name": "Lean (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/lean-asdf", - "description": "Lean is a functional programming language that makes it easy to write correct and maintainable code.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/lean-asdf/install.sh b/src/lean-asdf/install.sh deleted file mode 100755 index f8e93b118..000000000 --- a/src/lean-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='lean' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/lean-asdf/library_scripts.sh b/src/lean-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/lean-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/lefthook-asdf/README.md b/src/lefthook-asdf/README.md deleted file mode 100644 index 948caf082..000000000 --- a/src/lefthook-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Lefthook (via asdf) (lefthook-asdf) - -Lefthook is the fastest polyglot Git hooks manager out there. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/lefthook-asdf:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/lefthook-asdf/devcontainer-feature.json b/src/lefthook-asdf/devcontainer-feature.json deleted file mode 100644 index cfea9616d..000000000 --- a/src/lefthook-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "lefthook-asdf", - "version": "1.0.2", - "name": "Lefthook (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/lefthook-asdf", - "description": "Lefthook is the fastest polyglot Git hooks manager out there.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/lefthook-asdf/install.sh b/src/lefthook-asdf/install.sh deleted file mode 100755 index 10979cae4..000000000 --- a/src/lefthook-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='lefthook' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/lefthook-asdf/library_scripts.sh b/src/lefthook-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/lefthook-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/leiningen-sdkman/README.md b/src/leiningen-sdkman/README.md deleted file mode 100644 index c330268e8..000000000 --- a/src/leiningen-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Leiningen (via SDKMAN) (leiningen-sdkman) - -Leiningen is the easiest way to use Clojure. With a focus on project automation -and declarative configuration, it gets out of your way and lets you focus on -your code. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/leiningen-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/leiningen-sdkman/devcontainer-feature.json b/src/leiningen-sdkman/devcontainer-feature.json deleted file mode 100644 index b0b8608ce..000000000 --- a/src/leiningen-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "leiningen-sdkman", - "version": "2.0.15", - "name": "Leiningen (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/leiningen-sdkman", - "description": "Leiningen is the easiest way to use Clojure. With a focus on project automation\nand declarative configuration, it gets out of your way and lets you focus on\nyour code.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/leiningen-sdkman/install.sh b/src/leiningen-sdkman/install.sh deleted file mode 100755 index 2a38d9363..000000000 --- a/src/leiningen-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='leiningen' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/leiningen-sdkman/library_scripts.sh b/src/leiningen-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/leiningen-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/lektor/README.md b/src/lektor/README.md deleted file mode 100644 index 8378c0f16..000000000 --- a/src/lektor/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Lektor (via npm) (lektor) - -Lektor is a static website generator. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/lektor:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/lektor/devcontainer-feature.json b/src/lektor/devcontainer-feature.json deleted file mode 100644 index 31f78d2ff..000000000 --- a/src/lektor/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "lektor", - "version": "2.0.17", - "name": "Lektor (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/lektor", - "description": "Lektor is a static website generator.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/lektor/install.sh b/src/lektor/install.sh deleted file mode 100755 index c0668d0ab..000000000 --- a/src/lektor/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='lektor' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/lektor/library_scripts.sh b/src/lektor/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/lektor/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/lerna-npm/README.md b/src/lerna-npm/README.md deleted file mode 100644 index 11ff5df32..000000000 --- a/src/lerna-npm/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Lerna (via npm) (lerna-npm) - -Lerna is a fast modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/lerna-npm:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/lerna-npm/devcontainer-feature.json b/src/lerna-npm/devcontainer-feature.json deleted file mode 100644 index ddffd63a7..000000000 --- a/src/lerna-npm/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "lerna-npm", - "version": "1.0.10", - "name": "Lerna (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/lerna-npm", - "description": "Lerna is a fast modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/lerna-npm/install.sh b/src/lerna-npm/install.sh deleted file mode 100755 index 1d9859a6a..000000000 --- a/src/lerna-npm/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='lerna' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/lerna-npm/library_scripts.sh b/src/lerna-npm/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/lerna-npm/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/less/README.md b/src/less/README.md deleted file mode 100644 index 3500a6321..000000000 --- a/src/less/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Less (via npm) (less) - -Less is a backwards-compatible language extension for CSS - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/less:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/less/devcontainer-feature.json b/src/less/devcontainer-feature.json deleted file mode 100644 index 4e9a03c6f..000000000 --- a/src/less/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "less", - "version": "2.0.15", - "name": "Less (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/less", - "description": "Less is a backwards-compatible language extension for CSS", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/less/install.sh b/src/less/install.sh deleted file mode 100755 index ce12b3660..000000000 --- a/src/less/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='less' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/less/library_scripts.sh b/src/less/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/less/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/levant-asdf/README.md b/src/levant-asdf/README.md deleted file mode 100644 index 7f440784c..000000000 --- a/src/levant-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# levant (via asdf) (levant-asdf) - -Levant is an open source templating and deployment tool for HashiCorp Nomad jobs - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/levant-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/levant-asdf/devcontainer-feature.json b/src/levant-asdf/devcontainer-feature.json deleted file mode 100644 index 91d04b8fd..000000000 --- a/src/levant-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "levant-asdf", - "version": "2.0.15", - "name": "levant (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/levant-asdf", - "description": "Levant is an open source templating and deployment tool for HashiCorp Nomad jobs", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/levant-asdf/install.sh b/src/levant-asdf/install.sh deleted file mode 100755 index dacd07d46..000000000 --- a/src/levant-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='levant' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/levant-asdf/library_scripts.sh b/src/levant-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/levant-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/lighthouse-cli/README.md b/src/lighthouse-cli/README.md deleted file mode 100644 index 3a815c588..000000000 --- a/src/lighthouse-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Lighthouse CLI (via npm) (lighthouse-cli) - -Lighthouse CLI provides the most flexibility in how Lighthouse runs can be configured and reported. Users who want more advanced usage, or want to run Lighthouse in an automated fashion should use the Node CLI. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/lighthouse-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/lighthouse-cli/devcontainer-feature.json b/src/lighthouse-cli/devcontainer-feature.json deleted file mode 100644 index d93dd1412..000000000 --- a/src/lighthouse-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "lighthouse-cli", - "version": "1.0.3", - "name": "Lighthouse CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/lighthouse-cli", - "description": "Lighthouse CLI provides the most flexibility in how Lighthouse runs can be configured and reported. Users who want more advanced usage, or want to run Lighthouse in an automated fashion should use the Node CLI.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/lighthouse-cli/install.sh b/src/lighthouse-cli/install.sh deleted file mode 100755 index 47577c408..000000000 --- a/src/lighthouse-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='lighthouse' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/lighthouse-cli/library_scripts.sh b/src/lighthouse-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/lighthouse-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/linkerd2-cli-edge/README.md b/src/linkerd2-cli-edge/README.md deleted file mode 100644 index 2143e280c..000000000 --- a/src/linkerd2-cli-edge/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Linkerd CLI (Edge) (via Github Releases) (linkerd2-cli-edge) - -The Linkerd CLI is the primary way to interact with Linkerd. It can install the control plane to your cluster, add the proxy to your service and provide detailed metrics for how your service is performing. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/linkerd2-cli-edge:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/linkerd2-cli-edge/devcontainer-feature.json b/src/linkerd2-cli-edge/devcontainer-feature.json deleted file mode 100644 index 423138692..000000000 --- a/src/linkerd2-cli-edge/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "linkerd2-cli-edge", - "version": "1.0.2", - "name": "Linkerd CLI (Edge) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/linkerd2-cli-edge", - "description": "The Linkerd CLI is the primary way to interact with Linkerd. It can install the control plane to your cluster, add the proxy to your service and provide detailed metrics for how your service is performing.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/linkerd2-cli-edge/install.sh b/src/linkerd2-cli-edge/install.sh deleted file mode 100755 index 3326fa74f..000000000 --- a/src/linkerd2-cli-edge/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='linkerd/linkerd2' --option binaryNames='linkerd' --option releaseTagRegex='.*edge.*' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/linkerd2-cli-edge/library_scripts.sh b/src/linkerd2-cli-edge/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/linkerd2-cli-edge/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/linkerd2-cli-stable/README.md b/src/linkerd2-cli-stable/README.md deleted file mode 100644 index e2acc227f..000000000 --- a/src/linkerd2-cli-stable/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Linkerd CLI (Stable) (via Github Releases) (linkerd2-cli-stable) - -The Linkerd CLI is the primary way to interact with Linkerd. It can install the control plane to your cluster, add the proxy to your service and provide detailed metrics for how your service is performing. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/linkerd2-cli-stable:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/linkerd2-cli-stable/devcontainer-feature.json b/src/linkerd2-cli-stable/devcontainer-feature.json deleted file mode 100644 index 6e2eef86c..000000000 --- a/src/linkerd2-cli-stable/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "linkerd2-cli-stable", - "version": "1.0.2", - "name": "Linkerd CLI (Stable) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/linkerd2-cli-stable", - "description": "The Linkerd CLI is the primary way to interact with Linkerd. It can install the control plane to your cluster, add the proxy to your service and provide detailed metrics for how your service is performing.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/linkerd2-cli-stable/install.sh b/src/linkerd2-cli-stable/install.sh deleted file mode 100755 index f1ee8c997..000000000 --- a/src/linkerd2-cli-stable/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='linkerd/linkerd2' --option binaryNames='linkerd' --option releaseTagRegex='.*stable.*' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/linkerd2-cli-stable/library_scripts.sh b/src/linkerd2-cli-stable/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/linkerd2-cli-stable/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/linode-cli/README.md b/src/linode-cli/README.md deleted file mode 100644 index bb5daf8a6..000000000 --- a/src/linode-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Linode CLI (via pipx) (linode-cli) - -Access the entire Linode platform from the command line, easily adding, removing, or modifing services. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/linode-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/linode-cli/devcontainer-feature.json b/src/linode-cli/devcontainer-feature.json deleted file mode 100644 index ba13df904..000000000 --- a/src/linode-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "linode-cli", - "version": "1.0.2", - "name": "Linode CLI (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/linode-cli", - "description": "Access the entire Linode platform from the command line, easily adding, removing, or modifing services.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/linode-cli/install.sh b/src/linode-cli/install.sh deleted file mode 100755 index f0a2c0f5d..000000000 --- a/src/linode-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='linode-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/linode-cli/library_scripts.sh b/src/linode-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/linode-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/lite-server/README.md b/src/lite-server/README.md deleted file mode 100644 index 259c3d278..000000000 --- a/src/lite-server/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# lite-server (via npm) (lite-server) - -lite-server is a lightweight development only node server that serves a web app, opens it in the browser, refreshes when html or javascript change, injects CSS changes using sockets, and has a fallback page when a route is not found. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/lite-server:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/lite-server/devcontainer-feature.json b/src/lite-server/devcontainer-feature.json deleted file mode 100644 index 545df036d..000000000 --- a/src/lite-server/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "lite-server", - "version": "1.0.3", - "name": "lite-server (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/lite-server", - "description": "lite-server is a lightweight development only node server that serves a web app, opens it in the browser, refreshes when html or javascript change, injects CSS changes using sockets, and has a fallback page when a route is not found.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/lite-server/install.sh b/src/lite-server/install.sh deleted file mode 100755 index faa500e5a..000000000 --- a/src/lite-server/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='lite-server' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/lite-server/library_scripts.sh b/src/lite-server/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/lite-server/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/live-server/README.md b/src/live-server/README.md deleted file mode 100644 index 6be503458..000000000 --- a/src/live-server/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Live Server (via npm) (live-server) - -Live Server is a little development server with live reload capability. Use it for hacking your HTML/JavaScript/CSS files, but not for deploying the final site. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/live-server:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/live-server/devcontainer-feature.json b/src/live-server/devcontainer-feature.json deleted file mode 100644 index 0408100da..000000000 --- a/src/live-server/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "live-server", - "version": "1.0.3", - "name": "Live Server (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/live-server", - "description": "Live Server is a little development server with live reload capability. Use it for hacking your HTML/JavaScript/CSS files, but not for deploying the final site.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/live-server/install.sh b/src/live-server/install.sh deleted file mode 100755 index 7dd6e4a46..000000000 --- a/src/live-server/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='live-server' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/live-server/library_scripts.sh b/src/live-server/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/live-server/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/localstack/README.md b/src/localstack/README.md deleted file mode 100644 index c2e324131..000000000 --- a/src/localstack/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Localstack (via pipx) (localstack) - -Localstack is a fully functional local AWS cloud stack. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/localstack:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/localstack/devcontainer-feature.json b/src/localstack/devcontainer-feature.json deleted file mode 100644 index 9e18a2921..000000000 --- a/src/localstack/devcontainer-feature.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "id": "localstack", - "version": "2.0.22", - "name": "Localstack (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/localstack", - "description": "Localstack is a fully functional local AWS cloud stack.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages", - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ], - "entrypoint": "/usr/local/share/docker-init.sh", - "mounts": [ - { - "source": "dind-var-lib-docker-${devcontainerId}", - "target": "/var/lib/docker", - "type": "volume" - } - ], - "privileged": true -} \ No newline at end of file diff --git a/src/localstack/install.sh b/src/localstack/install.sh deleted file mode 100755 index 413b3f778..000000000 --- a/src/localstack/install.sh +++ /dev/null @@ -1,42 +0,0 @@ -set -xe - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='build-essential,libsasl2-dev,g++,qemu-system,libvirt-daemon-system,libvirt-dev' - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/docker-in-docker:2.1.0" \ - --option installDockerBuildx='false' - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/python:1.1.0" \ - --option installTools='false' --option OVERRIDEDEFAULTVERSION='false' --option version='3.10.8' - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='localstack[runtime]' --option version="$VERSION" --option includeDeps='true' --option interpreter='/usr/local/python/3.10.8/bin/python3' - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='mkdir -p /var/lib/localstack && chown -R $_REMOTE_USER /var/lib/localstack && chgrp -R docker /var/lib/localstack && chmod -R 775 /var/lib/localstack' - -echo 'Done!' diff --git a/src/localstack/library_scripts.sh b/src/localstack/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/localstack/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/localtunnel-npm/README.md b/src/localtunnel-npm/README.md deleted file mode 100644 index 14f348993..000000000 --- a/src/localtunnel-npm/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Localtunnel (via npm) (localtunnel-npm) - -Localtunnel allows you to easily share a web service on your local development machine without messing with DNS and firewall settings. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/localtunnel-npm:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/localtunnel-npm/devcontainer-feature.json b/src/localtunnel-npm/devcontainer-feature.json deleted file mode 100644 index 4bef49b71..000000000 --- a/src/localtunnel-npm/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "localtunnel-npm", - "version": "1.0.10", - "name": "Localtunnel (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/localtunnel-npm", - "description": "Localtunnel allows you to easily share a web service on your local development machine without messing with DNS and firewall settings.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/localtunnel-npm/install.sh b/src/localtunnel-npm/install.sh deleted file mode 100755 index 8108dc1ed..000000000 --- a/src/localtunnel-npm/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='localtunnel' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/localtunnel-npm/library_scripts.sh b/src/localtunnel-npm/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/localtunnel-npm/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/mackup/README.md b/src/mackup/README.md deleted file mode 100644 index d6377aec2..000000000 --- a/src/mackup/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Mackup (via pipx) (mackup) - -Mackup keeps your application settings in sync (OS X/Linux). - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mackup:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mackup/devcontainer-feature.json b/src/mackup/devcontainer-feature.json deleted file mode 100644 index 51ba2cc31..000000000 --- a/src/mackup/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "mackup", - "version": "1.0.4", - "name": "Mackup (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mackup", - "description": "Mackup keeps your application settings in sync (OS X/Linux).", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/mackup/install.sh b/src/mackup/install.sh deleted file mode 100755 index 4850e227c..000000000 --- a/src/mackup/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='mackup' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/mackup/library_scripts.sh b/src/mackup/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/mackup/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/markdownlint-cli/README.md b/src/markdownlint-cli/README.md deleted file mode 100644 index 494b8e9d3..000000000 --- a/src/markdownlint-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# markdownlint-cli (via npm) (markdownlint-cli) - -Command Line interface for MarkdownLint - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/markdownlint-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/markdownlint-cli/devcontainer-feature.json b/src/markdownlint-cli/devcontainer-feature.json deleted file mode 100644 index 46b9a1cf6..000000000 --- a/src/markdownlint-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "markdownlint-cli", - "version": "1.0.1", - "name": "markdownlint-cli (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/markdownlint-cli", - "description": "Command Line interface for MarkdownLint", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/markdownlint-cli/install.sh b/src/markdownlint-cli/install.sh deleted file mode 100755 index 0a8dd2317..000000000 --- a/src/markdownlint-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='markdownlint-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/markdownlint-cli/library_scripts.sh b/src/markdownlint-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/markdownlint-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/markdownlint-cli2/README.md b/src/markdownlint-cli2/README.md deleted file mode 100644 index 41dc531a4..000000000 --- a/src/markdownlint-cli2/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# markdownlint-cli2 (via npm) (markdownlint-cli2) - -A fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the markdownlint library. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/markdownlint-cli2:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/markdownlint-cli2/devcontainer-feature.json b/src/markdownlint-cli2/devcontainer-feature.json deleted file mode 100644 index 350817a24..000000000 --- a/src/markdownlint-cli2/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "markdownlint-cli2", - "version": "1.0.1", - "name": "markdownlint-cli2 (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/markdownlint-cli2", - "description": "A fast, flexible, configuration-based command-line interface for linting Markdown/CommonMark files with the markdownlint library.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/markdownlint-cli2/install.sh b/src/markdownlint-cli2/install.sh deleted file mode 100755 index 1aa132dc4..000000000 --- a/src/markdownlint-cli2/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='markdownlint-cli2' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/markdownlint-cli2/library_scripts.sh b/src/markdownlint-cli2/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/markdownlint-cli2/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/maven-sdkman/README.md b/src/maven-sdkman/README.md deleted file mode 100644 index d18a6b1ca..000000000 --- a/src/maven-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Maven (via SDKMAN) (maven-sdkman) - -Apache Maven is a software project management and comprehension tool. Based on -the concept of a project object model (POM), Maven can manage a project's build, -reporting and documentation from a central piece of information. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/maven-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/maven-sdkman/devcontainer-feature.json b/src/maven-sdkman/devcontainer-feature.json deleted file mode 100644 index fb9e84606..000000000 --- a/src/maven-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "maven-sdkman", - "version": "2.0.15", - "name": "Maven (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/maven-sdkman", - "description": "Apache Maven is a software project management and comprehension tool. Based on\nthe concept of a project object model (POM), Maven can manage a project's build,\nreporting and documentation from a central piece of information.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/maven-sdkman/install.sh b/src/maven-sdkman/install.sh deleted file mode 100755 index 046ff3094..000000000 --- a/src/maven-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='maven' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/maven-sdkman/library_scripts.sh b/src/maven-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/maven-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/meltano/README.md b/src/meltano/README.md deleted file mode 100644 index 77db33664..000000000 --- a/src/meltano/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Meltano ELT (via pipx) (meltano) - -Meltano lets you extract and load data with a software development-inspired approach that that delivers flexibility and limitless collaboration. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/meltano:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Meltano ELT to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/meltano/devcontainer-feature.json b/src/meltano/devcontainer-feature.json deleted file mode 100644 index 33a752970..000000000 --- a/src/meltano/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "meltano", - "version": "2.0.17", - "name": "Meltano ELT (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/meltano", - "description": "Meltano lets you extract and load data with a software development-inspired approach that that delivers flexibility and limitless collaboration.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Meltano ELT to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/meltano/install.sh b/src/meltano/install.sh deleted file mode 100755 index 47d3a7d59..000000000 --- a/src/meltano/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='meltano' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/meltano/library_scripts.sh b/src/meltano/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/meltano/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/memcached-exporter/README.md b/src/memcached-exporter/README.md deleted file mode 100644 index 00962f57a..000000000 --- a/src/memcached-exporter/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus Memcached Exporter (via Github Releases) (memcached-exporter) - -The memcached exporter exports metrics from a memcached server for consumption by Prometheus. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/memcached-exporter:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/memcached-exporter/devcontainer-feature.json b/src/memcached-exporter/devcontainer-feature.json deleted file mode 100644 index 5788b64f2..000000000 --- a/src/memcached-exporter/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "memcached-exporter", - "version": "1.0.2", - "name": "Prometheus Memcached Exporter (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/memcached-exporter", - "description": "The memcached exporter exports metrics from a memcached server for consumption by Prometheus.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/memcached-exporter/install.sh b/src/memcached-exporter/install.sh deleted file mode 100755 index 77b6b4550..000000000 --- a/src/memcached-exporter/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/memcached_exporter' --option binaryNames='memcached_exporter' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/memcached-exporter/library_scripts.sh b/src/memcached-exporter/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/memcached-exporter/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/micro/README.md b/src/micro/README.md deleted file mode 100644 index 8a410fc7a..000000000 --- a/src/micro/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# micro (via apt-get) (micro) - -micro is a terminal-based text editor that aims to be easy to use and intuitive, while also taking advantage of the capabilities of modern terminals. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/micro:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/micro/devcontainer-feature.json b/src/micro/devcontainer-feature.json deleted file mode 100644 index 7fb9870c4..000000000 --- a/src/micro/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "micro", - "version": "1.0.6", - "name": "micro (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/micro", - "description": "micro is a terminal-based text editor that aims to be easy to use and intuitive, while also taking advantage of the capabilities of modern terminals.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/micro/install.sh b/src/micro/install.sh deleted file mode 100755 index db236ed61..000000000 --- a/src/micro/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='micro' - - -echo 'Done!' - diff --git a/src/micro/library_scripts.sh b/src/micro/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/micro/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/micronaut-sdkman/README.md b/src/micronaut-sdkman/README.md deleted file mode 100644 index 5f561b92f..000000000 --- a/src/micronaut-sdkman/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Micronaut (via SDKMAN) (micronaut-sdkman) - -Micronaut is an open source microservice framework for the JVM - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/micronaut-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/micronaut-sdkman/devcontainer-feature.json b/src/micronaut-sdkman/devcontainer-feature.json deleted file mode 100644 index 691329e46..000000000 --- a/src/micronaut-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "id": "micronaut-sdkman", - "version": "2.0.16", - "name": "Micronaut (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/micronaut-sdkman", - "description": "Micronaut is an open source microservice framework for the JVM", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java", - "ghcr.io/devcontainers-extra/features/bash-command" - ] -} \ No newline at end of file diff --git a/src/micronaut-sdkman/install.sh b/src/micronaut-sdkman/install.sh deleted file mode 100755 index e75d38ee4..000000000 --- a/src/micronaut-sdkman/install.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='[[ "$(ldd --version | grep -Eoh '2\.[0-9]+$' | sed 's/2.//')" > "33" ]] && echo "gclib version is compatible" && exit 0 || echo "glibc version is lower than the minimum required (2.34). exiting" && exit 1' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='micronaut' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/micronaut-sdkman/library_scripts.sh b/src/micronaut-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/micronaut-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mise/README.md b/src/mise/README.md deleted file mode 100644 index 8adc34b3f..000000000 --- a/src/mise/README.md +++ /dev/null @@ -1,22 +0,0 @@ - -# Mise (mise) - -[Mise](https://mise.jdx.dev/) is a dev tools, env vars, task runner. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mise:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -| ---------- | ------------------------------ | ------ | ------------- | -| version | Select the version to install. | string | latest | - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ \ No newline at end of file diff --git a/src/mise/devcontainer-feature.json b/src/mise/devcontainer-feature.json deleted file mode 100644 index c9b534ac4..000000000 --- a/src/mise/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Mise", - "id": "mise", - "version": "1.0.0", - "description": "The front-end to your dev env", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/mise", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] - } \ No newline at end of file diff --git a/src/mise/install.sh b/src/mise/install.sh deleted file mode 100755 index 9c29088eb..000000000 --- a/src/mise/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo="jdx/mise" \ - --option binaryNames="mise" \ - --option version="$VERSION" \ - --option assetRegex='.tar.gz$' - -echo 'Done!' \ No newline at end of file diff --git a/src/mise/library_scripts.sh b/src/mise/library_scripts.sh deleted file mode 100755 index a65948075..000000000 --- a/src/mise/library_scripts.sh +++ /dev/null @@ -1,170 +0,0 @@ -#!/usr/bin/env bash - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} diff --git a/src/mitmproxy/README.md b/src/mitmproxy/README.md deleted file mode 100644 index db265c9a8..000000000 --- a/src/mitmproxy/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# mitmproxy (via pipx) (mitmproxy) - -mitmproxy is an interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mitmproxy:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mitmproxy/devcontainer-feature.json b/src/mitmproxy/devcontainer-feature.json deleted file mode 100644 index 1dbea0b16..000000000 --- a/src/mitmproxy/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "mitmproxy", - "version": "2.0.17", - "name": "mitmproxy (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mitmproxy", - "description": "mitmproxy is an interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/mitmproxy/install.sh b/src/mitmproxy/install.sh deleted file mode 100755 index c97fb1305..000000000 --- a/src/mitmproxy/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='mitmproxy' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/mitmproxy/library_scripts.sh b/src/mitmproxy/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/mitmproxy/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/mkcert/README.md b/src/mkcert/README.md deleted file mode 100644 index 86f8d93c1..000000000 --- a/src/mkcert/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# mkcert (via Github Releases) (mkcert) - -mkcert is a simple tool for making locally-trusted development certificates. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mkcert:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mkcert/devcontainer-feature.json b/src/mkcert/devcontainer-feature.json deleted file mode 100644 index f865be3db..000000000 --- a/src/mkcert/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "mkcert", - "version": "1.0.14", - "name": "mkcert (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mkcert", - "description": "mkcert is a simple tool for making locally-trusted development certificates.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/mkcert/install.sh b/src/mkcert/install.sh deleted file mode 100755 index 74ab03961..000000000 --- a/src/mkcert/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='FiloSottile/mkcert' --option binaryNames='mkcert' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/mkcert/library_scripts.sh b/src/mkcert/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/mkcert/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/mkdocs/README.md b/src/mkdocs/README.md deleted file mode 100644 index 9ee794113..000000000 --- a/src/mkdocs/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# MkDocs (via pipx) (mkdocs) - -MkDocs is a fast, simple and downright gorgeous static site generator that's geared towards building project documentation. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mkdocs:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| plugins | A space delimitered list of mkdocs plugins (will be injected into the mkdocs pipx env). see proposals for example | string | mkdocs-material | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mkdocs/devcontainer-feature.json b/src/mkdocs/devcontainer-feature.json deleted file mode 100644 index 2802ec5a0..000000000 --- a/src/mkdocs/devcontainer-feature.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "id": "mkdocs", - "version": "2.0.18", - "name": "MkDocs (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mkdocs", - "description": "MkDocs is a fast, simple and downright gorgeous static site generator that's geared towards building project documentation.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "plugins": { - "default": "mkdocs-material", - "description": "A space delimitered list of mkdocs plugins (will be injected into the mkdocs pipx env). see proposals for example", - "proposals": [ - "mkdocs-material pymdown-extensions mkdocstrings[crystal,python] mkdocs-monorepo-plugin mkdocs-pdf-export-plugin mkdocs-awesome-pages-plugin" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ], - "containerEnv" : {"TZ": "UTC"} -} \ No newline at end of file diff --git a/src/mkdocs/install.sh b/src/mkdocs/install.sh deleted file mode 100755 index 148ab073b..000000000 --- a/src/mkdocs/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='mkdocs' --option injections="$PLUGINS" --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/mkdocs/library_scripts.sh b/src/mkdocs/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/mkdocs/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/mlocate-apt-get/README.md b/src/mlocate-apt-get/README.md deleted file mode 100644 index e5165325d..000000000 --- a/src/mlocate-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# mlocate (via apt-get) (mlocate-apt-get) - -mlocate is a locate/updatedb implementation used for quick lookup of file names. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mlocate-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mlocate-apt-get/devcontainer-feature.json b/src/mlocate-apt-get/devcontainer-feature.json deleted file mode 100644 index 4d393e0b5..000000000 --- a/src/mlocate-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "mlocate-apt-get", - "version": "1.0.16", - "name": "mlocate (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mlocate-apt-get", - "description": "mlocate is a locate/updatedb implementation used for quick lookup of file names.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/mlocate-apt-get/install.sh b/src/mlocate-apt-get/install.sh deleted file mode 100755 index c1a4be2c8..000000000 --- a/src/mlocate-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='mlocate' - - -echo 'Done!' - diff --git a/src/mlocate-apt-get/library_scripts.sh b/src/mlocate-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/mlocate-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mocha/README.md b/src/mocha/README.md deleted file mode 100644 index ab4fb9a3f..000000000 --- a/src/mocha/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Mocha (via npm) (mocha) - -Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mocha:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mocha/devcontainer-feature.json b/src/mocha/devcontainer-feature.json deleted file mode 100644 index c7399ac1f..000000000 --- a/src/mocha/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "mocha", - "version": "2.0.15", - "name": "Mocha (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mocha", - "description": "Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/mocha/install.sh b/src/mocha/install.sh deleted file mode 100755 index 49fde0405..000000000 --- a/src/mocha/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='mocha' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/mocha/library_scripts.sh b/src/mocha/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/mocha/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/mongodb-atlas-cli-homebrew/README.md b/src/mongodb-atlas-cli-homebrew/README.md deleted file mode 100644 index b3565d2b8..000000000 --- a/src/mongodb-atlas-cli-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# MongoDB Atlas CLI (via Homebrew) (mongodb-atlas-cli-homebrew) - -The Atlas CLI is a command line interface built specifically for MongoDB Atlas. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mongodb-atlas-cli-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of MongoDB Atlas CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mongodb-atlas-cli-homebrew/devcontainer-feature.json b/src/mongodb-atlas-cli-homebrew/devcontainer-feature.json deleted file mode 100644 index 28cdb9fde..000000000 --- a/src/mongodb-atlas-cli-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "mongodb-atlas-cli-homebrew", - "version": "1.0.14", - "name": "MongoDB Atlas CLI (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mongodb-atlas-cli-homebrew", - "description": "The Atlas CLI is a command line interface built specifically for MongoDB Atlas.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of MongoDB Atlas CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/mongodb-atlas-cli-homebrew/install.sh b/src/mongodb-atlas-cli-homebrew/install.sh deleted file mode 100755 index 0b5688945..000000000 --- a/src/mongodb-atlas-cli-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='mongodb-atlas' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/mongodb-atlas-cli-homebrew/library_scripts.sh b/src/mongodb-atlas-cli-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/mongodb-atlas-cli-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mongosh-homebrew/README.md b/src/mongosh-homebrew/README.md deleted file mode 100644 index 6fc412c74..000000000 --- a/src/mongosh-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# MongoDB Shell (via Homebrew) (mongosh-homebrew) - -MongoDB Shell to connect, configure, query, and work with your MongoDB database. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mongosh-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of MongoDB Shell to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mongosh-homebrew/devcontainer-feature.json b/src/mongosh-homebrew/devcontainer-feature.json deleted file mode 100644 index 241689914..000000000 --- a/src/mongosh-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "mongosh-homebrew", - "version": "1.0.20", - "name": "MongoDB Shell (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mongosh-homebrew", - "description": "MongoDB Shell to connect, configure, query, and work with your MongoDB database.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of MongoDB Shell to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/mongosh-homebrew/install.sh b/src/mongosh-homebrew/install.sh deleted file mode 100755 index 3f500613b..000000000 --- a/src/mongosh-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='mongosh' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/mongosh-homebrew/library_scripts.sh b/src/mongosh-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/mongosh-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mosh-apt-get/README.md b/src/mosh-apt-get/README.md deleted file mode 100644 index 77de40128..000000000 --- a/src/mosh-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Mosh (via apt-get) (mosh-apt-get) - -Mosh is a remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mosh-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mosh-apt-get/devcontainer-feature.json b/src/mosh-apt-get/devcontainer-feature.json deleted file mode 100644 index 623126672..000000000 --- a/src/mosh-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "mosh-apt-get", - "version": "1.0.16", - "name": "Mosh (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mosh-apt-get", - "description": "Mosh is a remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/mosh-apt-get/install.sh b/src/mosh-apt-get/install.sh deleted file mode 100755 index 84e599203..000000000 --- a/src/mosh-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='mosh' - - -echo 'Done!' - diff --git a/src/mosh-apt-get/library_scripts.sh b/src/mosh-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/mosh-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mosh-homebrew/README.md b/src/mosh-homebrew/README.md deleted file mode 100644 index 486ffc6e0..000000000 --- a/src/mosh-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Mosh (via Homebrew) (mosh-homebrew) - -Mosh is a remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mosh-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mosh-homebrew/devcontainer-feature.json b/src/mosh-homebrew/devcontainer-feature.json deleted file mode 100644 index df89e5b28..000000000 --- a/src/mosh-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "mosh-homebrew", - "version": "1.0.20", - "name": "Mosh (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mosh-homebrew", - "description": "Mosh is a remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/mosh-homebrew/install.sh b/src/mosh-homebrew/install.sh deleted file mode 100755 index e5e86b322..000000000 --- a/src/mosh-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='mosh' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/mosh-homebrew/library_scripts.sh b/src/mosh-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/mosh-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mulefd-sdkman/README.md b/src/mulefd-sdkman/README.md deleted file mode 100644 index c21bcb70d..000000000 --- a/src/mulefd-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Mule Flow Diagrams (via SDKMAN) (mulefd-sdkman) - -Mule Flow Diagrams is an open source tool that lets you generate flow dependency -graph and diagrams for your Mule configurations. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mulefd-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Mule Flow Diagrams to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mulefd-sdkman/devcontainer-feature.json b/src/mulefd-sdkman/devcontainer-feature.json deleted file mode 100644 index ddc0726f3..000000000 --- a/src/mulefd-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "mulefd-sdkman", - "version": "2.0.16", - "name": "Mule Flow Diagrams (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mulefd-sdkman", - "description": "Mule Flow Diagrams is an open source tool that lets you generate flow dependency\ngraph and diagrams for your Mule configurations.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Mule Flow Diagrams to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/mulefd-sdkman/install.sh b/src/mulefd-sdkman/install.sh deleted file mode 100755 index e832a8156..000000000 --- a/src/mulefd-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='mulefd' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/mulefd-sdkman/library_scripts.sh b/src/mulefd-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/mulefd-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mvnd-sdkman/README.md b/src/mvnd-sdkman/README.md deleted file mode 100644 index 5b36fe4cd..000000000 --- a/src/mvnd-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Maven Daemon (via SDKMAN) (mvnd-sdkman) - -The mvnd project aims to provide a daemon infrastructure for maven based builds. -It borrows techniques from Gradle and Takari to provide a simple and efficient -system. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mvnd-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Maven Daemon to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mvnd-sdkman/devcontainer-feature.json b/src/mvnd-sdkman/devcontainer-feature.json deleted file mode 100644 index e307eb9c0..000000000 --- a/src/mvnd-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "mvnd-sdkman", - "version": "2.0.16", - "name": "Maven Daemon (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mvnd-sdkman", - "description": "The mvnd project aims to provide a daemon infrastructure for maven based builds.\nIt borrows techniques from Gradle and Takari to provide a simple and efficient\nsystem.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Maven Daemon to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/mvnd-sdkman/install.sh b/src/mvnd-sdkman/install.sh deleted file mode 100755 index 1b586208c..000000000 --- a/src/mvnd-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='mvnd' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/mvnd-sdkman/library_scripts.sh b/src/mvnd-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/mvnd-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mybatis-sdkman/README.md b/src/mybatis-sdkman/README.md deleted file mode 100644 index 8f4a60613..000000000 --- a/src/mybatis-sdkman/README.md +++ /dev/null @@ -1,29 +0,0 @@ - -# MyBatis Migrations (via SDKMAN) (mybatis-sdkman) - -The MyBatis Schema Migration System (or MyBatis Migrations for short) seeks to -provide database migrations for any database (new or existing) and make the -current status of the database easily accessible and comprehensible. Installing -this candidate provides the migrate command for managing database migrations - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mybatis-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of MyBatis Migrations to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mybatis-sdkman/devcontainer-feature.json b/src/mybatis-sdkman/devcontainer-feature.json deleted file mode 100644 index 343e0863d..000000000 --- a/src/mybatis-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "mybatis-sdkman", - "version": "2.0.16", - "name": "MyBatis Migrations (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mybatis-sdkman", - "description": "The MyBatis Schema Migration System (or MyBatis Migrations for short) seeks to\nprovide database migrations for any database (new or existing) and make the\ncurrent status of the database easily accessible and comprehensible. Installing\nthis candidate provides the migrate command for managing database migrations", - "options": { - "version": { - "default": "latest", - "description": "Select the version of MyBatis Migrations to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/mybatis-sdkman/install.sh b/src/mybatis-sdkman/install.sh deleted file mode 100755 index 20f91a761..000000000 --- a/src/mybatis-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='mybatis' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/mybatis-sdkman/library_scripts.sh b/src/mybatis-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/mybatis-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mypy/README.md b/src/mypy/README.md deleted file mode 100644 index 15bc5b198..000000000 --- a/src/mypy/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Mypy (via pipx) (mypy) - -Mypy is a static type checker for Python. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mypy:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mypy/devcontainer-feature.json b/src/mypy/devcontainer-feature.json deleted file mode 100644 index 27959e707..000000000 --- a/src/mypy/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "mypy", - "version": "2.0.17", - "name": "Mypy (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mypy", - "description": "Mypy is a static type checker for Python.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/mypy/install.sh b/src/mypy/install.sh deleted file mode 100755 index 464513a6b..000000000 --- a/src/mypy/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='mypy' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/mypy/library_scripts.sh b/src/mypy/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/mypy/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/mysql-homebrew/README.md b/src/mysql-homebrew/README.md deleted file mode 100644 index 2a6e553f8..000000000 --- a/src/mysql-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# MySQL (via Homebrew) (mysql-homebrew) - -MySQL is an open-source relational database management system (RDBMS) - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mysql-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mysql-homebrew/devcontainer-feature.json b/src/mysql-homebrew/devcontainer-feature.json deleted file mode 100644 index e9ab0375d..000000000 --- a/src/mysql-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "mysql-homebrew", - "version": "1.0.20", - "name": "MySQL (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mysql-homebrew", - "description": "MySQL is an open-source relational database management system (RDBMS)", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/mysql-homebrew/install.sh b/src/mysql-homebrew/install.sh deleted file mode 100755 index e8fea7fc3..000000000 --- a/src/mysql-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='mysql' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/mysql-homebrew/library_scripts.sh b/src/mysql-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/mysql-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/mysqld-exporter/README.md b/src/mysqld-exporter/README.md deleted file mode 100644 index b01bd3c57..000000000 --- a/src/mysqld-exporter/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus MySQL Exporter (via Github Releases) (mysqld-exporter) - -Prometheus exporter for MySQL server metrics. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mysqld-exporter:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/mysqld-exporter/devcontainer-feature.json b/src/mysqld-exporter/devcontainer-feature.json deleted file mode 100644 index c90031cc6..000000000 --- a/src/mysqld-exporter/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "mysqld-exporter", - "version": "1.0.2", - "name": "Prometheus MySQL Exporter (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mysqld-exporter", - "description": "Prometheus exporter for MySQL server metrics.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/mysqld-exporter/install.sh b/src/mysqld-exporter/install.sh deleted file mode 100755 index 5853b1895..000000000 --- a/src/mysqld-exporter/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/mysqld_exporter' --option binaryNames='mysqld_exporter' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/mysqld-exporter/library_scripts.sh b/src/mysqld-exporter/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/mysqld-exporter/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/n8n/README.md b/src/n8n/README.md deleted file mode 100644 index 2ab5d46e5..000000000 --- a/src/n8n/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# n8n (via npm) (n8n) - -n8n is a free and source-available fair-code licensed workflow automation tool. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/n8n:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/n8n/devcontainer-feature.json b/src/n8n/devcontainer-feature.json deleted file mode 100644 index 49fab17c1..000000000 --- a/src/n8n/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "n8n", - "version": "1.0.2", - "name": "n8n (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/n8n", - "description": "n8n is a free and source-available fair-code licensed workflow automation tool.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/n8n/install.sh b/src/n8n/install.sh deleted file mode 100755 index f4c265cc1..000000000 --- a/src/n8n/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='n8n' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/n8n/library_scripts.sh b/src/n8n/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/n8n/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/namespace-cli/README.md b/src/namespace-cli/README.md deleted file mode 100644 index 7c31f030b..000000000 --- a/src/namespace-cli/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Namespace CLI (via Github Releases) - -The CLI for [Namespace](https://namespace.so). - -## Example DevContainer Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/namespace-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | diff --git a/src/namespace-cli/devcontainer-feature.json b/src/namespace-cli/devcontainer-feature.json deleted file mode 100644 index 09cec1df8..000000000 --- a/src/namespace-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "namespace-cli", - "version": "1.0.0", - "name": "Namespace CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/namespace-cli", - "description": "The CLI for https://namespace.so", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/namespace-cli/install.sh b/src/namespace-cli/install.sh deleted file mode 100644 index 3e504597c..000000000 --- a/src/namespace-cli/install.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - -# Example nanolayer installation via devcontainer-feature -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1" \ - --option repo='namespacelabs/foundation' --option binaryNames='nsc,docker-credential-nsc' --option version="$VERSION" --option libName='docker-credential-nsc' - -echo 'Done!' diff --git a/src/namespace-cli/library_scripts.sh b/src/namespace-cli/library_scripts.sh deleted file mode 100644 index f6d0760d7..000000000 --- a/src/namespace-cli/library_scripts.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ]; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ]; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up() { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - if [ -x "/sbin/apk" ]; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} diff --git a/src/nancy/README.md b/src/nancy/README.md deleted file mode 100644 index 85da948b4..000000000 --- a/src/nancy/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Nancy (via Github Releases) (nancy) - -Nancy is a tool to check for vulnerabilities in your Golang dependencies, powered by Sonatype OSS Index. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nancy:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nancy/devcontainer-feature.json b/src/nancy/devcontainer-feature.json deleted file mode 100644 index 0fe6caf60..000000000 --- a/src/nancy/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "nancy", - "version": "1.0.9", - "name": "Nancy (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nancy", - "description": "Nancy is a tool to check for vulnerabilities in your Golang dependencies, powered by Sonatype OSS Index.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/nancy/install.sh b/src/nancy/install.sh deleted file mode 100755 index fcc222566..000000000 --- a/src/nancy/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sonatype-nexus-community/nancy' --option binaryNames='nancy' --option version="$VERSION" --option assetRegex='.*(.tar.gz)$' - - - -echo 'Done!' - diff --git a/src/nancy/library_scripts.sh b/src/nancy/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/nancy/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/navi/README.md b/src/navi/README.md deleted file mode 100644 index 0a88764d0..000000000 --- a/src/navi/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# navi (via Github Releases) (navi) - -navi is an interactive cheatsheet tool for the command-line. navi allows you to browse through cheatsheets (that you may write yourself or download from maintainers) and execute commands. Suggested values for arguments are dynamically displayed in a list. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/navi:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/navi/devcontainer-feature.json b/src/navi/devcontainer-feature.json deleted file mode 100644 index b0606a099..000000000 --- a/src/navi/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "navi", - "version": "1.0.9", - "name": "navi (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/navi", - "description": "navi is an interactive cheatsheet tool for the command-line. navi allows you to browse through cheatsheets (that you may write yourself or download from maintainers) and execute commands. Suggested values for arguments are dynamically displayed in a list.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/navi/install.sh b/src/navi/install.sh deleted file mode 100755 index 3777d3a9d..000000000 --- a/src/navi/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='denisidoro/navi' --option binaryNames='navi' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/navi/library_scripts.sh b/src/navi/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/navi/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ncdu/README.md b/src/ncdu/README.md deleted file mode 100644 index 5dac6b013..000000000 --- a/src/ncdu/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ncdu (via apt-get) (ncdu) - -ncdu (NCurses Disk Usage) is a disk utility for Unix systems. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ncdu:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ncdu/devcontainer-feature.json b/src/ncdu/devcontainer-feature.json deleted file mode 100644 index a6fdd7b95..000000000 --- a/src/ncdu/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "ncdu", - "version": "1.0.6", - "name": "ncdu (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ncdu", - "description": "ncdu (NCurses Disk Usage) is a disk utility for Unix systems.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/ncdu/install.sh b/src/ncdu/install.sh deleted file mode 100755 index 3d667b25a..000000000 --- a/src/ncdu/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='ncdu' - - -echo 'Done!' - diff --git a/src/ncdu/library_scripts.sh b/src/ncdu/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ncdu/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/neko-asdf/README.md b/src/neko-asdf/README.md deleted file mode 100644 index a5602efb7..000000000 --- a/src/neko-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Neko Virtual Machine (via asdf) (neko-asdf) - -Installs Neko Virtual Machine - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/neko-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Neko Virtual Machine to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/neko-asdf/devcontainer-feature.json b/src/neko-asdf/devcontainer-feature.json deleted file mode 100644 index dc3948e14..000000000 --- a/src/neko-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "neko-asdf", - "version": "2.0.15", - "name": "Neko Virtual Machine (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/neko-asdf", - "description": "Installs Neko Virtual Machine", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Neko Virtual Machine to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/neko-asdf/install.sh b/src/neko-asdf/install.sh deleted file mode 100755 index ebfd6f31a..000000000 --- a/src/neko-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='neko' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/neko-asdf/library_scripts.sh b/src/neko-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/neko-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/neo4jmigrations-sdkman/README.md b/src/neo4jmigrations-sdkman/README.md deleted file mode 100644 index bacda5710..000000000 --- a/src/neo4jmigrations-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Neo4j-Migrations (via SDKMAN) (neo4jmigrations-sdkman) - -Neo4j-Migrations is a database migration and refactoring tool that allows -running Cypher scripts and programmatic refactorings in a controlled and -repeatable fashion against one or more Neo4j database. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/neo4jmigrations-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Neo4j-Migrations to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/neo4jmigrations-sdkman/devcontainer-feature.json b/src/neo4jmigrations-sdkman/devcontainer-feature.json deleted file mode 100644 index c85effa5a..000000000 --- a/src/neo4jmigrations-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "id": "neo4jmigrations-sdkman", - "version": "2.0.16", - "name": "Neo4j-Migrations (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/neo4jmigrations-sdkman", - "description": "Neo4j-Migrations is a database migration and refactoring tool that allows\nrunning Cypher scripts and programmatic refactorings in a controlled and\nrepeatable fashion against one or more Neo4j database.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Neo4j-Migrations to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/bash-command", - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/neo4jmigrations-sdkman/install.sh b/src/neo4jmigrations-sdkman/install.sh deleted file mode 100755 index 00e271719..000000000 --- a/src/neo4jmigrations-sdkman/install.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='[[ "$(ldd --version | grep -Eoh '2\.[0-9]+$' | sed 's/2.//')" > "33" ]] && echo "gclib version is compatible" && exit 0 || echo "glibc version is lower than the minimum required (2.34). exiting" && exit 1' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='neo4jmigrations' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/neo4jmigrations-sdkman/library_scripts.sh b/src/neo4jmigrations-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/neo4jmigrations-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/neofetch/README.md b/src/neofetch/README.md deleted file mode 100644 index b9cfb66a4..000000000 --- a/src/neofetch/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Neofetch (via apt-get) (neofetch) - -Neofetch displays information about your operating system, software and hardware in an aesthetic and visually pleasing way. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/neofetch:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/neofetch/devcontainer-feature.json b/src/neofetch/devcontainer-feature.json deleted file mode 100644 index e3316f875..000000000 --- a/src/neofetch/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "neofetch", - "version": "1.0.6", - "name": "Neofetch (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/neofetch", - "description": "Neofetch displays information about your operating system, software and hardware in an aesthetic and visually pleasing way.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/neofetch/install.sh b/src/neofetch/install.sh deleted file mode 100755 index 225c01805..000000000 --- a/src/neofetch/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='neofetch' - - -echo 'Done!' - diff --git a/src/neofetch/library_scripts.sh b/src/neofetch/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/neofetch/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/neovim-apt-get/README.md b/src/neovim-apt-get/README.md deleted file mode 100644 index 45914583e..000000000 --- a/src/neovim-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Neovim (via apt-get) (neovim-apt-get) - -Neovim is a fork of Vim focused on modern code and features, rather than running in legacy environments. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/neovim-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/neovim-apt-get/devcontainer-feature.json b/src/neovim-apt-get/devcontainer-feature.json deleted file mode 100644 index 01197f997..000000000 --- a/src/neovim-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "neovim-apt-get", - "version": "1.0.19", - "name": "Neovim (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/neovim-apt-get", - "description": "Neovim is a fork of Vim focused on modern code and features, rather than running in legacy environments.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/neovim-apt-get/install.sh b/src/neovim-apt-get/install.sh deleted file mode 100755 index f93658759..000000000 --- a/src/neovim-apt-get/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.46" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='neovim' --option ppas='ppa:neovim-ppa/stable' - - - -echo 'Done!' - diff --git a/src/neovim-apt-get/library_scripts.sh b/src/neovim-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/neovim-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/neovim-homebrew/README.md b/src/neovim-homebrew/README.md deleted file mode 100644 index 1eb1b6a32..000000000 --- a/src/neovim-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Neovim (via Homebrew) (neovim-homebrew) - -Neovim is a fork of Vim focused on modern code and features, rather than running in legacy environments. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/neovim-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/neovim-homebrew/devcontainer-feature.json b/src/neovim-homebrew/devcontainer-feature.json deleted file mode 100644 index 7b8bfc4e6..000000000 --- a/src/neovim-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "neovim-homebrew", - "version": "1.0.20", - "name": "Neovim (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/neovim-homebrew", - "description": "Neovim is a fork of Vim focused on modern code and features, rather than running in legacy environments.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/neovim-homebrew/install.sh b/src/neovim-homebrew/install.sh deleted file mode 100755 index 15d7222b7..000000000 --- a/src/neovim-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='neovim' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/neovim-homebrew/library_scripts.sh b/src/neovim-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/neovim-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/nestjs-cli/README.md b/src/nestjs-cli/README.md deleted file mode 100644 index 3f17d3b17..000000000 --- a/src/nestjs-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# NestJS CLI (via npm) (nestjs-cli) - -Nestjs is a progressive Node.js framework for building efficient, reliable and scalable server-side applications. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nestjs-cli:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of NestJS CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nestjs-cli/devcontainer-feature.json b/src/nestjs-cli/devcontainer-feature.json deleted file mode 100644 index 0a810d0a9..000000000 --- a/src/nestjs-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "nestjs-cli", - "version": "2.0.15", - "name": "NestJS CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nestjs-cli", - "description": "Nestjs is a progressive Node.js framework for building efficient, reliable and scalable server-side applications.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of NestJS CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/nestjs-cli/install.sh b/src/nestjs-cli/install.sh deleted file mode 100755 index ae2a80cfc..000000000 --- a/src/nestjs-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@nestjs/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/nestjs-cli/library_scripts.sh b/src/nestjs-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/nestjs-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/netdata/README.md b/src/netdata/README.md deleted file mode 100644 index 39b8cf18c..000000000 --- a/src/netdata/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Netdata (via my-netdata.io) (netdata) - -Netdata is a distributed, real-time, performance and health monitoring platform for systems, hardware, containers and applications, collecting thousands of useful metrics with zero configuration needed. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/netdata:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/netdata/devcontainer-feature.json b/src/netdata/devcontainer-feature.json deleted file mode 100644 index 0d97a0adc..000000000 --- a/src/netdata/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "netdata", - "version": "1.0.10", - "name": "Netdata (via my-netdata.io)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/netdata", - "description": "Netdata is a distributed, real-time, performance and health monitoring platform for systems, hardware, containers and applications, collecting thousands of useful metrics with zero configuration needed.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/curl-apt-get" - ] -} \ No newline at end of file diff --git a/src/netdata/install.sh b/src/netdata/install.sh deleted file mode 100755 index bef669bb8..000000000 --- a/src/netdata/install.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/curl-apt-get:1.0.16" - -curl https://get.netdata.cloud/kickstart.sh >/tmp/netdata-kickstart.sh && - sh /tmp/netdata-kickstart.sh --no-updates --stable-channel --disable-telemetry && - rm /tmp/netdata-kickstart.sh diff --git a/src/netdata/library_scripts.sh b/src/netdata/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/netdata/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/netlify-cli/README.md b/src/netlify-cli/README.md deleted file mode 100644 index 720ecfa3f..000000000 --- a/src/netlify-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Netlify CLI (via npm) (netlify-cli) - -Netlify CLI lets you configure continuous deployment straight from the command line. You can use Netlify CLI to run a local development server that you can share with others, run a local build and plugins, and deploy your site. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/netlify-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/netlify-cli/devcontainer-feature.json b/src/netlify-cli/devcontainer-feature.json deleted file mode 100644 index 659fa33e5..000000000 --- a/src/netlify-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "netlify-cli", - "version": "1.0.3", - "name": "Netlify CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/netlify-cli", - "description": "Netlify CLI lets you configure continuous deployment straight from the command line. You can use Netlify CLI to run a local development server that you can share with others, run a local build and plugins, and deploy your site.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/netlify-cli/install.sh b/src/netlify-cli/install.sh deleted file mode 100755 index 7f59ac825..000000000 --- a/src/netlify-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='netlify-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/netlify-cli/library_scripts.sh b/src/netlify-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/netlify-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/nim-asdf/README.md b/src/nim-asdf/README.md deleted file mode 100644 index 0c826b575..000000000 --- a/src/nim-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Nim (via asdf) (nim-asdf) - -Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nim-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nim-asdf/devcontainer-feature.json b/src/nim-asdf/devcontainer-feature.json deleted file mode 100644 index 5d72e27d9..000000000 --- a/src/nim-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "nim-asdf", - "version": "2.0.15", - "name": "Nim (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nim-asdf", - "description": "Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/nim-asdf/install.sh b/src/nim-asdf/install.sh deleted file mode 100755 index 995dcf6f3..000000000 --- a/src/nim-asdf/install.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='nim' --option version="$VERSION" - -echo 'Done!' diff --git a/src/nim-asdf/library_scripts.sh b/src/nim-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/nim-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/ninja-asdf/README.md b/src/ninja-asdf/README.md deleted file mode 100644 index ca4e9050f..000000000 --- a/src/ninja-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ninja (via asdf) (ninja-asdf) - -Ninja is a small build system with a focus on speed. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ninja-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ninja-asdf/devcontainer-feature.json b/src/ninja-asdf/devcontainer-feature.json deleted file mode 100644 index b51f6eef6..000000000 --- a/src/ninja-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ninja-asdf", - "version": "2.0.15", - "name": "Ninja (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ninja-asdf", - "description": "Ninja is a small build system with a focus on speed.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/ninja-asdf/install.sh b/src/ninja-asdf/install.sh deleted file mode 100755 index 6d0f09e8a..000000000 --- a/src/ninja-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='ninja' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ninja-asdf/library_scripts.sh b/src/ninja-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ninja-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/nmap-apt-get/README.md b/src/nmap-apt-get/README.md deleted file mode 100644 index ebf57c535..000000000 --- a/src/nmap-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Nmap (via apt-get) (nmap-apt-get) - -Nmap (Network Mapper) is a free and open source utility for network discovery and security auditing. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nmap-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nmap-apt-get/devcontainer-feature.json b/src/nmap-apt-get/devcontainer-feature.json deleted file mode 100644 index 96460bf39..000000000 --- a/src/nmap-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "nmap-apt-get", - "version": "1.0.16", - "name": "Nmap (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nmap-apt-get", - "description": "Nmap (Network Mapper) is a free and open source utility for network discovery and security auditing.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/nmap-apt-get/install.sh b/src/nmap-apt-get/install.sh deleted file mode 100755 index 764f421d5..000000000 --- a/src/nmap-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='nmap' - - -echo 'Done!' - diff --git a/src/nmap-apt-get/library_scripts.sh b/src/nmap-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/nmap-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/nmap-homebrew/README.md b/src/nmap-homebrew/README.md deleted file mode 100644 index 94cd389a3..000000000 --- a/src/nmap-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Nmap (via Homebrew) (nmap-homebrew) - -Nmap (Network Mapper) is a free and open source utility for network discovery and security auditing. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nmap-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nmap-homebrew/devcontainer-feature.json b/src/nmap-homebrew/devcontainer-feature.json deleted file mode 100644 index 1dfd05531..000000000 --- a/src/nmap-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "nmap-homebrew", - "version": "1.0.20", - "name": "Nmap (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nmap-homebrew", - "description": "Nmap (Network Mapper) is a free and open source utility for network discovery and security auditing.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/nmap-homebrew/install.sh b/src/nmap-homebrew/install.sh deleted file mode 100755 index 1baad9b6c..000000000 --- a/src/nmap-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='nmap' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/nmap-homebrew/library_scripts.sh b/src/nmap-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/nmap-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/nnn-apt-get/README.md b/src/nnn-apt-get/README.md deleted file mode 100644 index 7f35dfc91..000000000 --- a/src/nnn-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# nnn (n³) (via apt-get) (nnn-apt-get) - -nnn is a free and open-source file manager which provides a text-based user interface to provide file managing functionalities for Unix-like systems. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nnn-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nnn-apt-get/devcontainer-feature.json b/src/nnn-apt-get/devcontainer-feature.json deleted file mode 100644 index 04571ce30..000000000 --- a/src/nnn-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "nnn-apt-get", - "version": "1.0.16", - "name": "nnn (n\u00b3) (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nnn-apt-get", - "description": "nnn is a free and open-source file manager which provides a text-based user interface to provide file managing functionalities for Unix-like systems.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/nnn-apt-get/install.sh b/src/nnn-apt-get/install.sh deleted file mode 100755 index eb90f82da..000000000 --- a/src/nnn-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='nnn' - - -echo 'Done!' - diff --git a/src/nnn-apt-get/library_scripts.sh b/src/nnn-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/nnn-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/nnn-homebrew/README.md b/src/nnn-homebrew/README.md deleted file mode 100644 index 7ad706ada..000000000 --- a/src/nnn-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# nnn (n³) (via Homebrew) (nnn-homebrew) - -nnn is a free and open-source file manager which provides a text-based user interface to provide file managing functionalities for Unix-like systems. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nnn-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of nnn (n³) to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nnn-homebrew/devcontainer-feature.json b/src/nnn-homebrew/devcontainer-feature.json deleted file mode 100644 index 31b862a1a..000000000 --- a/src/nnn-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "nnn-homebrew", - "version": "1.0.20", - "name": "nnn (n\u00b3) (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nnn-homebrew", - "description": "nnn is a free and open-source file manager which provides a text-based user interface to provide file managing functionalities for Unix-like systems.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of nnn (n\u00b3) to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/nnn-homebrew/install.sh b/src/nnn-homebrew/install.sh deleted file mode 100755 index 3dd70c037..000000000 --- a/src/nnn-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='nnn' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/nnn-homebrew/library_scripts.sh b/src/nnn-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/nnn-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/node-asdf/README.md b/src/node-asdf/README.md deleted file mode 100644 index c84e4185f..000000000 --- a/src/node-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Node.js (via asdf) (node-asdf) - -Installs Node.js via asdf. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/node-asdf:0": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/node-asdf/devcontainer-feature.json b/src/node-asdf/devcontainer-feature.json deleted file mode 100644 index 8f2e41f86..000000000 --- a/src/node-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "node-asdf", - "version": "0.0.1", - "name": "Node.js (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/node-asdf", - "description": "Installs Node.js via asdf.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/node-asdf/install.sh b/src/node-asdf/install.sh deleted file mode 100755 index f64f92dbd..000000000 --- a/src/node-asdf/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='nodejs' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/node-asdf/library_scripts.sh b/src/node-asdf/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/node-asdf/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/node-exporter/README.md b/src/node-exporter/README.md deleted file mode 100644 index 3a8dfa5b7..000000000 --- a/src/node-exporter/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus Node Exporter (via Github Releases) (node-exporter) - -Prometheus exporter for hardware and OS metrics exposed by *NIX kernels, written in Go with pluggable metric collectors. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/node-exporter:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/node-exporter/devcontainer-feature.json b/src/node-exporter/devcontainer-feature.json deleted file mode 100644 index 56f660c9a..000000000 --- a/src/node-exporter/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "node-exporter", - "version": "1.0.2", - "name": "Prometheus Node Exporter (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/node-exporter", - "description": "Prometheus exporter for hardware and OS metrics exposed by *NIX kernels, written in Go with pluggable metric collectors.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/node-exporter/install.sh b/src/node-exporter/install.sh deleted file mode 100755 index 2057f1980..000000000 --- a/src/node-exporter/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/node_exporter' --option binaryNames='node_exporter' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/node-exporter/library_scripts.sh b/src/node-exporter/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/node-exporter/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/nomad-asdf/README.md b/src/nomad-asdf/README.md deleted file mode 100644 index 72178cbd0..000000000 --- a/src/nomad-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Nomad (via asdf) (nomad-asdf) - -Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nomad-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nomad-asdf/devcontainer-feature.json b/src/nomad-asdf/devcontainer-feature.json deleted file mode 100644 index 11ff329ae..000000000 --- a/src/nomad-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "nomad-asdf", - "version": "2.0.15", - "name": "Nomad (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nomad-asdf", - "description": "Nomad is an easy-to-use, flexible, and performant workload orchestrator that can deploy a mix of microservice, batch, containerized, and non-containerized applications.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/nomad-asdf/install.sh b/src/nomad-asdf/install.sh deleted file mode 100755 index 897f5e178..000000000 --- a/src/nomad-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='nomad' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/nomad-asdf/library_scripts.sh b/src/nomad-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/nomad-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/nox/README.md b/src/nox/README.md deleted file mode 100644 index 54d16b9f9..000000000 --- a/src/nox/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# nox (via pipx) (nox) - -nox is a command-line tool that automates testing in multiple Python environments. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nox:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nox/devcontainer-feature.json b/src/nox/devcontainer-feature.json deleted file mode 100644 index cc2029afc..000000000 --- a/src/nox/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "nox", - "version": "2.0.17", - "name": "nox (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nox", - "description": "nox is a command-line tool that automates testing in multiple Python environments.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/nox/install.sh b/src/nox/install.sh deleted file mode 100755 index f112226df..000000000 --- a/src/nox/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='nox' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/nox/library_scripts.sh b/src/nox/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/nox/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/npm-package/README.md b/src/npm-package/README.md deleted file mode 100644 index 8bf3850ae..000000000 --- a/src/npm-package/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# NPM package (npm-package) - -Installs an npm package globally. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/npm-package:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| package | Select the npm package to install. | string | - | -| version | Select the version of the npm package to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/npm-package/devcontainer-feature.json b/src/npm-package/devcontainer-feature.json deleted file mode 100644 index c00f57ff9..000000000 --- a/src/npm-package/devcontainer-feature.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "NPM package", - "id": "npm-package", - "version": "1.0.3", - "description": "Installs an npm package globally.", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/npm-package", - "installsAfter": [ - "ghcr.io/devcontainers/features/node" - ], - "options": { - "package": { - "type": "string", - "proposals": [ - "typescript", - "vtop", - "fkill-cli" - ], - "default": "", - "description": "Select the npm package to install." - }, - "version": { - "type": "string", - "proposals": [ - "latest" - ], - "default": "latest", - "description": "Select the version of the npm package to install." - } - } -} \ No newline at end of file diff --git a/src/npm-package/install.sh b/src/npm-package/install.sh deleted file mode 100755 index ebe15db61..000000000 --- a/src/npm-package/install.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/usr/bin/env bash -set -e - -PACKAGE=${PACKAGE:-""} -VERSION=${VERSION:-"latest"} - -# Clean up -rm -rf /var/lib/apt/lists/* - -if [ -z "$PACKAGE" ]; then - echo -e "'package' variable is empty, skipping" - exit 0 -fi - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as - root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -check_packages() { - # This is part of devcontainers-extra script library - # source: https://github.com/devcontainers-extra/features/tree/v1.1.8/script-library - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -install_via_npm() { - # This is part of devcontainers-extra script library - # source: https://github.com/devcontainers-extra/features/tree/v1.1.8/script-library - PACKAGE=$1 - - # install node+npm if does not exists - if ! type npm >/dev/null 2>&1; then - echo "Installing node and npm..." - check_packages curl ca-certificates - curl -fsSL https://raw.githubusercontent.com/devcontainers/features/main/src/node/install.sh | VERSION="lts" bash - export NVM_DIR=/usr/local/share/nvm - [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" - [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" - fi - - if [ "$VERSION" = "latest" ]; then - npm_installation="$PACKAGE" - else - npm_installation="${PACKAGE}@${VERSION}" - fi - - if [ "$(npm list --global --depth 0 --omit dev | grep "$npm_installation")" != "" ]; then - echo "$PACKAGE already exists - skipping installation" - exit 0 - fi - - - - npm install -g --omit=dev "$npm_installation" -} - -install_via_npm "$PACKAGE" "$VERSION" diff --git a/src/npm-packages/README.md b/src/npm-packages/README.md deleted file mode 100644 index 0247ff9b8..000000000 --- a/src/npm-packages/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# npm-packages (npm-packages) - - - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/npm-packages:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| packages | Comma separated list of packages with optional version (@). | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/npm-packages/devcontainer-feature.json b/src/npm-packages/devcontainer-feature.json deleted file mode 100644 index 7c38a762f..000000000 --- a/src/npm-packages/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "id": "npm-packages", - "version": "1.0.0", - "name": "npm-packages", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/npm-packages", - "description": "", - "options": { - "packages": { - "default": "", - "description": "Comma separated list of packages with optional version (@).", - "proposals": [ - "eslint@9.20.1,nodemon,prettier@3.5.2" - ], - "type": "string" - } - }, - "installsAfter": [] -} \ No newline at end of file diff --git a/src/npm-packages/install.sh b/src/npm-packages/install.sh deleted file mode 100755 index 6600bad1d..000000000 --- a/src/npm-packages/install.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - -# Split packages by comma -IFS=',' read -ra PACKAGE_ARRAY <<<"$PACKAGES" - -# Iterate through each package -for package in "${PACKAGE_ARRAY[@]}"; do - # Check if package contains version - if [[ $package == *@* ]]; then - # Split package into name and version - name=${package%@*} - version=${package#*@} - else - # Package without version - name=$package - version="" - fi - - # Install package via npm-package feature - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package="$name" --option version="$version" - -done - -echo 'Done!' diff --git a/src/npm-packages/library_scripts.sh b/src/npm-packages/library_scripts.sh deleted file mode 100644 index f6d0760d7..000000000 --- a/src/npm-packages/library_scripts.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ]; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ]; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up() { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - if [ -x "/sbin/apk" ]; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} diff --git a/src/nx-npm/README.md b/src/nx-npm/README.md deleted file mode 100644 index 9c7839176..000000000 --- a/src/nx-npm/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# nx (via npm) (nx-npm) - -Nx is a smart, fast and extensible build system with first class monorepo support and powerful integrations. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nx-npm:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/nx-npm/devcontainer-feature.json b/src/nx-npm/devcontainer-feature.json deleted file mode 100644 index cb2d47bbe..000000000 --- a/src/nx-npm/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "nx-npm", - "version": "1.0.10", - "name": "nx (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nx-npm", - "description": "Nx is a smart, fast and extensible build system with first class monorepo support and powerful integrations.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/nx-npm/install.sh b/src/nx-npm/install.sh deleted file mode 100755 index 93e499b55..000000000 --- a/src/nx-npm/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='nx' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/nx-npm/library_scripts.sh b/src/nx-npm/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/nx-npm/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ocaml-asdf/README.md b/src/ocaml-asdf/README.md deleted file mode 100644 index 1733f4faf..000000000 --- a/src/ocaml-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# OCaml (via asdf) (ocaml-asdf) - -OCaml is a general-purpose, industrial-strength programming language with an emphasis on expressiveness and safety. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ocaml-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ocaml-asdf/devcontainer-feature.json b/src/ocaml-asdf/devcontainer-feature.json deleted file mode 100644 index dc893f735..000000000 --- a/src/ocaml-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ocaml-asdf", - "version": "2.0.15", - "name": "OCaml (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ocaml-asdf", - "description": "OCaml is a general-purpose, industrial-strength programming language with an emphasis on expressiveness and safety.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/ocaml-asdf/install.sh b/src/ocaml-asdf/install.sh deleted file mode 100755 index 2307b2f9d..000000000 --- a/src/ocaml-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='ocaml' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ocaml-asdf/library_scripts.sh b/src/ocaml-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ocaml-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/ocaml-opam/devcontainer-feature.json b/src/ocaml-opam/devcontainer-feature.json deleted file mode 100644 index 4dd526936..000000000 --- a/src/ocaml-opam/devcontainer-feature.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "id": "ocaml-opam", - "version": "1.0.0", - "name": "OCaml (via opam)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ocaml-opam", - "description": "Installation of OCaml that includes a package manager and the compiler itself. Also install some platform tools like a build system, support for your editor, and a few other important ones.", - "options": { - "version": { - "default": "latest", - "description": "Select the OCaml version to install.", - "proposals": [ - "latest", - "5.3.0", - "4.14.2" - ], - "type": "string" - }, - "installPlatformTools": { - "default": true, - "description": "Install some of the OCaml Platform tools? (UTop, Dune, OCaml-LSP, odoc, OCamlFormat)", - "type": "boolean" - } - }, - "customizations": { - "vscode": { - "extensions": [ - "ocamllabs.ocaml-platform" - ] - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} diff --git a/src/ocaml-opam/install.sh b/src/ocaml-opam/install.sh deleted file mode 100755 index 632682f60..000000000 --- a/src/ocaml-opam/install.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - -# Example nanolayer installation via devcontainer-feature -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ocaml/opam' --option binaryNames='opam' --option version="latest" --option releaseTagRegex='^(?!.*(alpha|beta|rc)).*$' - - -# Initialise opam -flags=() -if [ "$VERSION" != "latest" ]; then - flags+=(--compiler="$VERSION") -fi -su "$_REMOTE_USER" -c "opam init --disable-sandboxing --shell-setup -y ${flags[*]}" - -# Install Platform Tools -if [ "$INSTALLPLATFORMTOOLS" = "true" ]; then - su "$_REMOTE_USER" -c "opam install ocaml-lsp-server odoc ocamlformat utop -y" -fi - - -echo 'Done!' diff --git a/src/ocaml-opam/library_scripts.sh b/src/ocaml-opam/library_scripts.sh deleted file mode 100644 index f6d0760d7..000000000 --- a/src/ocaml-opam/library_scripts.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ]; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ]; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up() { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - if [ -x "/sbin/apk" ]; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} diff --git a/src/oclif/README.md b/src/oclif/README.md deleted file mode 100644 index c0d3a88ec..000000000 --- a/src/oclif/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# oclif generator (via npm) (oclif) - -The oclif generator creates a CLI project in TypeScript to get you started quickly. It requires very few runtime dependencies and has extremely minimal overhead. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/oclif:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/oclif/devcontainer-feature.json b/src/oclif/devcontainer-feature.json deleted file mode 100644 index ad4c02607..000000000 --- a/src/oclif/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "oclif", - "version": "1.0.2", - "name": "oclif generator (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/oclif", - "description": "The oclif generator creates a CLI project in TypeScript to get you started quickly. It requires very few runtime dependencies and has extremely minimal overhead.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/oclif/install.sh b/src/oclif/install.sh deleted file mode 100755 index d0d6b4034..000000000 --- a/src/oclif/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='oclif' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/oclif/library_scripts.sh b/src/oclif/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/oclif/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/opa/README.md b/src/opa/README.md deleted file mode 100644 index c5a2f4a2f..000000000 --- a/src/opa/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Open Policy Agent (via Github Releases) (opa) - -Open Policy Agent (OPA) is an open source, general-purpose policy engine that enables unified, context-aware policy enforcement across the entire stack. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/opa:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/opa/devcontainer-feature.json b/src/opa/devcontainer-feature.json deleted file mode 100644 index fa965aef9..000000000 --- a/src/opa/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "opa", - "version": "1.0.5", - "name": "Open Policy Agent (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/opa", - "description": "Open Policy Agent (OPA) is an open source, general-purpose policy engine that enables unified, context-aware policy enforcement across the entire stack.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/opa/install.sh b/src/opa/install.sh deleted file mode 100755 index 93044e7aa..000000000 --- a/src/opa/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='open-policy-agent/opa' --option binaryNames='opa' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/opa/library_scripts.sh b/src/opa/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/opa/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/opam-asdf/README.md b/src/opam-asdf/README.md deleted file mode 100644 index 73031b51e..000000000 --- a/src/opam-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Opam (via asdf) (opam-asdf) - -opam is a source-based package manager for OCaml. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/opam-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/opam-asdf/devcontainer-feature.json b/src/opam-asdf/devcontainer-feature.json deleted file mode 100644 index f23da3898..000000000 --- a/src/opam-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "opam-asdf", - "version": "2.0.15", - "name": "Opam (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/opam-asdf", - "description": "opam is a source-based package manager for OCaml.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/opam-asdf/install.sh b/src/opam-asdf/install.sh deleted file mode 100755 index c9ca92818..000000000 --- a/src/opam-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='opam' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/opam-asdf/library_scripts.sh b/src/opam-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/opam-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/ory-cli/README.md b/src/ory-cli/README.md deleted file mode 100644 index 63208579f..000000000 --- a/src/ory-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ory CLI (via Github Releases) (ory-cli) - -Ory CLI is a convenient and easy-to-use tool that helps you manage and configure The Ory Network. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ory-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ory-cli/devcontainer-feature.json b/src/ory-cli/devcontainer-feature.json deleted file mode 100644 index 24d76b10a..000000000 --- a/src/ory-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ory-cli", - "version": "1.0.5", - "name": "Ory CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ory-cli", - "description": "Ory CLI is a convenient and easy-to-use tool that helps you manage and configure The Ory Network.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/ory-cli/install.sh b/src/ory-cli/install.sh deleted file mode 100755 index 2dbb2a421..000000000 --- a/src/ory-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ory/cli' --option binaryNames='ory' --option version="$VERSION" --option assetRegex='.*(sqlite).*' - - - -echo 'Done!' - diff --git a/src/ory-cli/library_scripts.sh b/src/ory-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ory-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ory-hydra/README.md b/src/ory-hydra/README.md deleted file mode 100644 index 94bb7bc90..000000000 --- a/src/ory-hydra/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ory Hydra (via Github Releases) (ory-hydra) - -Ory Hydra is a hardened, OpenID Certified OAuth 2.0 Server and OpenID Connect Provider optimized for low-latency, high throughput, and low resource consumption. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ory-hydra:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ory-hydra/devcontainer-feature.json b/src/ory-hydra/devcontainer-feature.json deleted file mode 100644 index c257bf9d8..000000000 --- a/src/ory-hydra/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ory-hydra", - "version": "1.0.5", - "name": "Ory Hydra (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ory-hydra", - "description": "Ory Hydra is a hardened, OpenID Certified OAuth 2.0 Server and OpenID Connect Provider optimized for low-latency, high throughput, and low resource consumption.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/ory-hydra/install.sh b/src/ory-hydra/install.sh deleted file mode 100755 index bdcc1c940..000000000 --- a/src/ory-hydra/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ory/hydra' --option binaryNames='hydra' --option version="$VERSION" --option assetRegex='.*(sqlite).*' - - - -echo 'Done!' - diff --git a/src/ory-hydra/library_scripts.sh b/src/ory-hydra/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ory-hydra/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ory-kratos/README.md b/src/ory-kratos/README.md deleted file mode 100644 index c03f3329a..000000000 --- a/src/ory-kratos/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ory Kratos (via Github Releases) (ory-kratos) - -Ory Kratos is the developer-friendly, security-hardened and battle-test Identity, User Management and Authentication system for the Cloud. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ory-kratos:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ory-kratos/devcontainer-feature.json b/src/ory-kratos/devcontainer-feature.json deleted file mode 100644 index 78f47acef..000000000 --- a/src/ory-kratos/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ory-kratos", - "version": "1.0.5", - "name": "Ory Kratos (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ory-kratos", - "description": "Ory Kratos is the developer-friendly, security-hardened and battle-test Identity, User Management and Authentication system for the Cloud.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/ory-kratos/install.sh b/src/ory-kratos/install.sh deleted file mode 100755 index 00031e511..000000000 --- a/src/ory-kratos/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ory/kratos' --option binaryNames='kratos' --option version="$VERSION" --option assetRegex='.*(sqlite).*' - - - -echo 'Done!' - diff --git a/src/ory-kratos/library_scripts.sh b/src/ory-kratos/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ory-kratos/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ory-oathkeeper/README.md b/src/ory-oathkeeper/README.md deleted file mode 100644 index 50b9b0f23..000000000 --- a/src/ory-oathkeeper/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ory Oathkeeper (via Github Releases) (ory-oathkeeper) - -ORY Oathkeeper is an Identity & Access Proxy (IAP) and Access Control Decision API that authorizes HTTP requests based on sets of Access Rules. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ory-oathkeeper:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ory-oathkeeper/devcontainer-feature.json b/src/ory-oathkeeper/devcontainer-feature.json deleted file mode 100644 index fb8a029e2..000000000 --- a/src/ory-oathkeeper/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ory-oathkeeper", - "version": "1.0.5", - "name": "Ory Oathkeeper (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ory-oathkeeper", - "description": "ORY Oathkeeper is an Identity & Access Proxy (IAP) and Access Control Decision API that authorizes HTTP requests based on sets of Access Rules.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/ory-oathkeeper/install.sh b/src/ory-oathkeeper/install.sh deleted file mode 100755 index 8f9cadef5..000000000 --- a/src/ory-oathkeeper/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ory/oathkeeper' --option binaryNames='oathkeeper' --option version="$VERSION" --option assetRegex='.*(sqlite).*' - - - -echo 'Done!' - diff --git a/src/ory-oathkeeper/library_scripts.sh b/src/ory-oathkeeper/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ory-oathkeeper/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/packer-asdf/README.md b/src/packer-asdf/README.md deleted file mode 100644 index 63c803400..000000000 --- a/src/packer-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Packer (via asdf) (packer-asdf) - -Packer is a free and open source tool for creating golden images for multiple platforms from a single source configuration. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/packer-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/packer-asdf/devcontainer-feature.json b/src/packer-asdf/devcontainer-feature.json deleted file mode 100644 index 3150e319d..000000000 --- a/src/packer-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "packer-asdf", - "version": "2.0.15", - "name": "Packer (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/packer-asdf", - "description": "Packer is a free and open source tool for creating golden images for multiple platforms from a single source configuration.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/packer-asdf/install.sh b/src/packer-asdf/install.sh deleted file mode 100755 index 5fc0a8255..000000000 --- a/src/packer-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='packer' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/packer-asdf/library_scripts.sh b/src/packer-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/packer-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/pandoc/README.md b/src/pandoc/README.md deleted file mode 100644 index f6339d371..000000000 --- a/src/pandoc/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Pandoc (via Github Releases) (pandoc) - -Pandoc is a Haskell library for converting from one markup format to another, and a command-line tool that uses this library. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pandoc:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pandoc/devcontainer-feature.json b/src/pandoc/devcontainer-feature.json deleted file mode 100644 index a0e66b138..000000000 --- a/src/pandoc/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "pandoc", - "version": "1.0.14", - "name": "Pandoc (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pandoc", - "description": "Pandoc is a Haskell library for converting from one markup format to another, and a command-line tool that uses this library.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/pandoc/install.sh b/src/pandoc/install.sh deleted file mode 100755 index 6c95c59b0..000000000 --- a/src/pandoc/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='jgm/pandoc' --option binaryNames='pandoc' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pandoc/library_scripts.sh b/src/pandoc/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pandoc/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/pass-apt-get/README.md b/src/pass-apt-get/README.md deleted file mode 100644 index ec5b120f2..000000000 --- a/src/pass-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# pass (password-store) (via apt-get) (pass-apt-get) - -pass is a very simple password store that encrypts passwords using gpg and places the encrypted password in a directory. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pass-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pass-apt-get/devcontainer-feature.json b/src/pass-apt-get/devcontainer-feature.json deleted file mode 100644 index e1d96b332..000000000 --- a/src/pass-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "pass-apt-get", - "version": "1.0.4", - "name": "pass (password-store) (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pass-apt-get", - "description": "pass is a very simple password store that encrypts passwords using gpg and places the encrypted password in a directory.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/pass-apt-get/install.sh b/src/pass-apt-get/install.sh deleted file mode 100755 index f0efa6b53..000000000 --- a/src/pass-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='pass' - - -echo 'Done!' - diff --git a/src/pass-apt-get/library_scripts.sh b/src/pass-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/pass-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/pdm/README.md b/src/pdm/README.md deleted file mode 100644 index 74cd997e6..000000000 --- a/src/pdm/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# PDM (via pipx) (pdm) - -PDM is a modern Python package and dependency manager supporting the latest PEP standards. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pdm:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pdm/devcontainer-feature.json b/src/pdm/devcontainer-feature.json deleted file mode 100644 index 9445f7639..000000000 --- a/src/pdm/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "pdm", - "version": "2.0.17", - "name": "PDM (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pdm", - "description": "PDM is a modern Python package and dependency manager supporting the latest PEP standards.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/pdm/install.sh b/src/pdm/install.sh deleted file mode 100755 index de2ddf94d..000000000 --- a/src/pdm/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='pdm' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pdm/library_scripts.sh b/src/pdm/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pdm/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/peco-asdf/README.md b/src/peco-asdf/README.md deleted file mode 100644 index f77b034cd..000000000 --- a/src/peco-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# peco (via asdf) (peco-asdf) - -peco is simplistic interactive filtering tool. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/peco-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/peco-asdf/devcontainer-feature.json b/src/peco-asdf/devcontainer-feature.json deleted file mode 100644 index a8f964805..000000000 --- a/src/peco-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "peco-asdf", - "version": "2.0.15", - "name": "peco (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/peco-asdf", - "description": "peco is simplistic interactive filtering tool.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/peco-asdf/install.sh b/src/peco-asdf/install.sh deleted file mode 100755 index 83d4410ab..000000000 --- a/src/peco-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='peco' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/peco-asdf/library_scripts.sh b/src/peco-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/peco-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/perl-asdf/README.md b/src/perl-asdf/README.md deleted file mode 100644 index 6912e05ca..000000000 --- a/src/perl-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Perl (via asdf) (perl-asdf) - -Perl is a general-purpose, interpreted, dynamic programming language. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/perl-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/perl-asdf/devcontainer-feature.json b/src/perl-asdf/devcontainer-feature.json deleted file mode 100644 index 9007fe472..000000000 --- a/src/perl-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "perl-asdf", - "version": "2.0.15", - "name": "Perl (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/perl-asdf", - "description": "Perl is a general-purpose, interpreted, dynamic programming language.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/perl-asdf/install.sh b/src/perl-asdf/install.sh deleted file mode 100755 index 1f3183fda..000000000 --- a/src/perl-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='perl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/perl-asdf/library_scripts.sh b/src/perl-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/perl-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/pierrot-sdkman/README.md b/src/pierrot-sdkman/README.md deleted file mode 100644 index 5a432cdb7..000000000 --- a/src/pierrot-sdkman/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Pierrot (via SDKMAN) (pierrot-sdkman) - -Pierrot helps you to manage many GitHub repositories with a single command. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pierrot-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pierrot-sdkman/devcontainer-feature.json b/src/pierrot-sdkman/devcontainer-feature.json deleted file mode 100644 index a764a7a7d..000000000 --- a/src/pierrot-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "pierrot-sdkman", - "version": "2.0.16", - "name": "Pierrot (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pierrot-sdkman", - "description": "Pierrot helps you to manage many GitHub repositories with a single command.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/pierrot-sdkman/install.sh b/src/pierrot-sdkman/install.sh deleted file mode 100755 index 145970cd1..000000000 --- a/src/pierrot-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='pierrot' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/pierrot-sdkman/library_scripts.sh b/src/pierrot-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/pierrot-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/pipenv/README.md b/src/pipenv/README.md deleted file mode 100644 index e975184fc..000000000 --- a/src/pipenv/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Pipenv (via pipx) (pipenv) - -Pipenv automatically creates and manages a virtualenv for your projects. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pipenv:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pipenv/devcontainer-feature.json b/src/pipenv/devcontainer-feature.json deleted file mode 100644 index b04cc7469..000000000 --- a/src/pipenv/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "pipenv", - "version": "2.0.17", - "name": "Pipenv (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pipenv", - "description": "Pipenv automatically creates and manages a virtualenv for your projects.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/pipenv/install.sh b/src/pipenv/install.sh deleted file mode 100755 index af58bd1e5..000000000 --- a/src/pipenv/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='pipenv' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pipenv/library_scripts.sh b/src/pipenv/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pipenv/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/pipx-package/README.md b/src/pipx-package/README.md deleted file mode 100644 index 043f5ab1d..000000000 --- a/src/pipx-package/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Pipx package (pipx-package) - -Installs a pipx package. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pipx-package:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| package | Select the pipx package to install. | string | - | -| version | Select the version of the pipx package to install. | string | latest | -| injections | Space delimitered list of python packages to inject into the main package env | string | - | -| includeDeps | Include apps of dependent packages | boolean | false | -| interpreter | Force python interpreter to be use (must already exists on the container). If none selected (the default) then python3 will be used (and will be installed in case it does not exists) | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pipx-package/devcontainer-feature.json b/src/pipx-package/devcontainer-feature.json deleted file mode 100644 index 5094b1c3b..000000000 --- a/src/pipx-package/devcontainer-feature.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "Pipx package", - "id": "pipx-package", - "version": "1.1.9", - "description": "Installs a pipx package.", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pipx-package", - "installsAfter": [ - "ghcr.io/devcontainers/features/python" - ], - "options": { - "package": { - "type": "string", - "proposals": [ - "black" - ], - "default": "", - "description": "Select the pipx package to install." - }, - "version": { - "type": "string", - "proposals": [ - "latest" - ], - "default": "latest", - "description": "Select the version of the pipx package to install." - }, - "injections": { - "type": "string", - "proposals": [ - "pylint pytest" - ], - "default": "", - "description": "Space delimitered list of python packages to inject into the main package env" - }, - "includeDeps": { - "default": false, - "description": "Include apps of dependent packages", - "type": "boolean" - }, - "interpreter": { - "type": "string", - "proposals": [ - "python3" - ], - "default": "", - "description": "Force python interpreter to be use (must already exists on the container). If none selected (the default) then python3 will be used (and will be installed in case it does not exists)" - } - } -} \ No newline at end of file diff --git a/src/pipx-package/install.sh b/src/pipx-package/install.sh deleted file mode 100755 index 74b92fa12..000000000 --- a/src/pipx-package/install.sh +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env bash -set -e - -PACKAGE=${PACKAGE:-""} -VERSION=${VERSION:-"latest"} -INJECTIONS=${INJECTIONS:-""} -INCLUDEDEPS=${INCLUDEDEPS:-"false"} -INTERPRETER=${INTERPRETER:-""} - -# PEP 668 compatibility -# PEP 668 compatibility -export PIP_BREAK_SYSTEM_PACKAGES=1 - -# Clean up -rm -rf /var/lib/apt/lists/* - -if [ -z "$PACKAGE" ]; then - echo -e "'package' variable is empty, skipping" - exit 0 -fi - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as - root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -updaterc() { - if cat /etc/os-release | grep "ID_LIKE=.*alpine.*\|ID=.*alpine.*"; then - echo "Updating /etc/profile" - echo -e "$1" >>/etc/profile - fi - if [[ "$(cat /etc/bash.bashrc)" != *"$1"* ]]; then - echo "Updating /etc/bash.bashrc" - echo -e "$1" >>/etc/bash.bashrc - fi - if [ -f "/etc/zsh/zshrc" ] && [[ "$(cat /etc/zsh/zshrc)" != *"$1"* ]]; then - echo "Updating /etc/zsh/zshrc" - echo -e "$1" >>/etc/zsh/zshrc - fi -} - -install_via_pipx() { - local INTERPRETER=$1 - local PACKAGE=$2 - local VERSION=$3 - local INJECTIONS=$4 - local INCLUDEDEPS=$5 - - if [ -n "$INTERPRETER" ]; then - if ! type $INTERPRETER >/dev/null 2>&1; then - echo "interpreter given is invalid: $INTERPRETER" - exit 1 - fi - local _interpreter=$INTERPRETER - else - local _interpreter="python3" - fi - - if [ -z "$INTERPRETER" ]; then # if interpreter selected manually - it should exists (validated above) - - if [ "$_interpreter" = "python3" ]; then - - # if no python - install it - if ! type python3 >/dev/null 2>&1; then - echo "installing python3-minimal libffi-dev" - apt-get update -y - apt-get -y install python3-minimal - fi - - # if no pip - install it - if ! type pip3 >/dev/null 2>&1; then - echo "installing python3-pip" - apt-get update -y - apt-get -y install libffi-dev python3-pip - fi - - if ! python3 -Im ensurepip --version >/dev/null 2>&1; then - echo "installing python3-venv" - apt-get update -y - apt-get -y install python3-venv - fi - fi - fi - - export PYTHONUSERBASE=/tmp/pip-tmp - export PIP_CACHE_DIR=/tmp/pip-tmp/cache - - export PIPX_HOME=${PIPX_HOME:-"/usr/local/py-utils"} - export PIPX_BIN_DIR="${PIPX_HOME}/bin" - mkdir -p "${PIPX_HOME}" - - _install_pipx() { - PATH="${PATH}:${PIPX_BIN_DIR}" - - # Create pipx group, dir, and set sticky bit - if ! cat /etc/group | grep -e "^pipx:" >/dev/null 2>&1; then - groupadd -r pipx - fi - usermod -a -G pipx "${_REMOTE_USER}" - umask 0002 - mkdir -p "${PIPX_BIN_DIR}" - chown -R "${_REMOTE_USER}:pipx" "${PIPX_HOME}" - chmod -R g+r+w "${PIPX_HOME}" - find "${PIPX_HOME}" -type d -print0 | xargs -0 -n 1 chmod g+s - - $_interpreter -m pip install --disable-pip-version-check --no-cache-dir --user pipx 2>&1 - $PYTHONUSERBASE/bin/pipx install --pip-args=--no-cache-dir --force pipx - pipx_bin=$PYTHONUSERBASE/bin/pipx - - updaterc "export PIPX_HOME=\"${PIPX_HOME}\"" - updaterc "export PIPX_BIN_DIR=\"${PIPX_BIN_DIR}\"" - updaterc "if [[ \"\${PATH}\" != *\"\${PIPX_BIN_DIR}\"* ]]; then export PATH=\"\${PATH}:\${PIPX_BIN_DIR}\"; fi" - } - - if $_interpreter -m pip list | grep pipx >/dev/null 2>&1; then - # if pipx exists in the selected interpreter - use it - pipx_bin="$_interpreter -m pipx" - elif [ -n "$INTERPRETER" ]; then - # if interpreter was *explicitely* selected, - # and pipx is not installed with it - install it - _install_pipx - pipx_bin="$_interpreter -m pipx" - elif type pipx >/dev/null 2>&1; then - # if a global pipx is install - use it - pipx_bin="pipx" - else - # if no pipx installed what so ever - install it - _install_pipx - pipx_bin=$PYTHONUSERBASE/bin/pipx - fi - - if [ "$(${pipx_bin} list --short | grep "$PACKAGE")" != "" ]; then - echo "$PACKAGE already exists - skipping installation" - else - if [ "$VERSION" = "latest" ]; then - pipx_installation="$PACKAGE" - else - pipx_installation="$PACKAGE==$VERSION" - fi - - include_deps_cmd=$(if [[ $INCLUDEDEPS == "true" ]]; then echo --include-deps; fi) - # install main package - ${pipx_bin} install --pip-args '--no-cache-dir --force-reinstall' -f "$pipx_installation" $include_deps_cmd - - # install injections (if provided) - injections_array=($INJECTIONS) - injections_array_length="${#injections_array[@]}" - - # Save the main package info (with version) to a temporary requirements file - # Used in inject command to prevent altering the main package version - tmp_requirements_file="/tmp/requirements.txt" - echo "$pipx_installation" >$tmp_requirements_file - - for ((i = 0; i < ${injections_array_length}; i++)); do - ${pipx_bin} inject --pip-args "--no-cache-dir --force-reinstall -r ${tmp_requirements_file}" -f "$PACKAGE" "${injections_array[$i]}" - done - - # cleaning pipx to save disk space - rm -rf $PYTHONUSERBASE - fi -} - -install_via_pipx "$INTERPRETER" "$PACKAGE" "$VERSION" "$INJECTIONS" "$INCLUDEDEPS" diff --git a/src/pnpm/README.md b/src/pnpm/README.md deleted file mode 100644 index 91e5967c0..000000000 --- a/src/pnpm/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Pnpm (via npm) (pnpm) - -Pnpm is a fast and disk space efficient package manager. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pnpm:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pnpm/devcontainer-feature.json b/src/pnpm/devcontainer-feature.json deleted file mode 100644 index 21033922a..000000000 --- a/src/pnpm/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "pnpm", - "version": "2.0.4", - "name": "Pnpm (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pnpm", - "description": "Pnpm is a fast and disk space efficient package manager.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/pnpm/install.sh b/src/pnpm/install.sh deleted file mode 100755 index f5afb8472..000000000 --- a/src/pnpm/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='pnpm' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pnpm/library_scripts.sh b/src/pnpm/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pnpm/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/podman-homebrew/README.md b/src/podman-homebrew/README.md deleted file mode 100644 index ade7d0811..000000000 --- a/src/podman-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Podman (via Homebrew) (podman-homebrew) - -Podman is a tool for managing containers and images, volumes mounted into those containers, and pods made from groups of containers. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/podman-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/podman-homebrew/devcontainer-feature.json b/src/podman-homebrew/devcontainer-feature.json deleted file mode 100644 index 2ca15951f..000000000 --- a/src/podman-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "podman-homebrew", - "version": "1.0.20", - "name": "Podman (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/podman-homebrew", - "description": "Podman is a tool for managing containers and images, volumes mounted into those containers, and pods made from groups of containers.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/podman-homebrew/install.sh b/src/podman-homebrew/install.sh deleted file mode 100755 index b2e17f725..000000000 --- a/src/podman-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='podman' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/podman-homebrew/library_scripts.sh b/src/podman-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/podman-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/poetry/README.md b/src/poetry/README.md deleted file mode 100644 index 75df7669b..000000000 --- a/src/poetry/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Poetry (via pipx) (poetry) - -Poetry is a tool for dependency management and packaging in Python. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/poetry:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/poetry/devcontainer-feature.json b/src/poetry/devcontainer-feature.json deleted file mode 100644 index 04e176393..000000000 --- a/src/poetry/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "poetry", - "version": "2.0.17", - "name": "Poetry (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/poetry", - "description": "Poetry is a tool for dependency management and packaging in Python.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/poetry/install.sh b/src/poetry/install.sh deleted file mode 100755 index ef0421d73..000000000 --- a/src/poetry/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='poetry' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/poetry/library_scripts.sh b/src/poetry/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/poetry/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/pomchecker-sdkman/README.md b/src/pomchecker-sdkman/README.md deleted file mode 100644 index 90e1e3c06..000000000 --- a/src/pomchecker-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Pomchecker (via SDKMAN) (pomchecker-sdkman) - -Pomchecker - Checks that POM files comply with the minimum rules required for -publication to Maven Central. It can also check if a POM is a valid BOM file. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pomchecker-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pomchecker-sdkman/devcontainer-feature.json b/src/pomchecker-sdkman/devcontainer-feature.json deleted file mode 100644 index da4acdd55..000000000 --- a/src/pomchecker-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "pomchecker-sdkman", - "version": "2.0.16", - "name": "Pomchecker (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pomchecker-sdkman", - "description": "Pomchecker - Checks that POM files comply with the minimum rules required for\npublication to Maven Central. It can also check if a POM is a valid BOM file.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/pomchecker-sdkman/install.sh b/src/pomchecker-sdkman/install.sh deleted file mode 100755 index cd5831a9e..000000000 --- a/src/pomchecker-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='pomchecker' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/pomchecker-sdkman/library_scripts.sh b/src/pomchecker-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/pomchecker-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/poppler-utils-apt-get/README.md b/src/poppler-utils-apt-get/README.md deleted file mode 100644 index e27bf1e9a..000000000 --- a/src/poppler-utils-apt-get/README.md +++ /dev/null @@ -1,36 +0,0 @@ - -# poppler-utils (pdftotext, pdftoppm, pdftops, pdfattach, pdfdetach, pdffonts, pdfimages, pdfinfo, pdfseparate, pdftocairo, pdftohtml, pdfunite) (via apt-get) (poppler-utils-apt-get) - -poppler-utils is a collection of command-line utilities built on Poppler's library API, to manage PDF and extract contents: -pdfattach - add a new embedded file (attachment) to an existing PDF -pdfdetach - extract embedded documents from a PDF -pdffonts - lists the fonts used in a PDF -pdfimages - extract all embedded images at native resolution from a PDF -pdfinfo - list all information of a PDF -pdfseparate - extract single pages from a PDF -pdftocairo - convert single pages from a PDF to vector or bitmap formats using cairo -pdftohtml - convert PDF to HTML format retaining formatting -pdftoppm - convert a PDF page to a bitmap -pdftops - convert PDF to printable PS format -pdftotext - extract all text from PDF -pdfunite - merges several PDFs. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/poppler-utils-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/poppler-utils-apt-get/devcontainer-feature.json b/src/poppler-utils-apt-get/devcontainer-feature.json deleted file mode 100644 index 0be4ad7c9..000000000 --- a/src/poppler-utils-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "poppler-utils-apt-get", - "version": "1.0.0", - "name": "poppler-utils (pdftotext, pdftoppm, pdftops, pdfattach, pdfdetach, pdffonts, pdfimages, pdfinfo, pdfseparate, pdftocairo, pdftohtml, pdfunite) (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/curl-apt-get", - "description": "poppler-utils is a collection of command-line utilities built on Poppler's library API, to manage PDF and extract contents: \npdfattach - add a new embedded file (attachment) to an existing PDF \npdfdetach - extract embedded documents from a PDF \npdffonts - lists the fonts used in a PDF \npdfimages - extract all embedded images at native resolution from a PDF \npdfinfo - list all information of a PDF \npdfseparate - extract single pages from a PDF \npdftocairo - convert single pages from a PDF to vector or bitmap formats using cairo \npdftohtml - convert PDF to HTML format retaining formatting \npdftoppm - convert a PDF page to a bitmap \npdftops - convert PDF to printable PS format \npdftotext - extract all text from PDF \npdfunite - merges several PDFs.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/poppler-utils-apt-get/install.sh b/src/poppler-utils-apt-get/install.sh deleted file mode 100755 index ae9c53762..000000000 --- a/src/poppler-utils-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='poppler-utils' - - - -echo 'Done!' - diff --git a/src/poppler-utils-apt-get/library_scripts.sh b/src/poppler-utils-apt-get/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/poppler-utils-apt-get/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/powerbi-visuals-tools/README.md b/src/powerbi-visuals-tools/README.md deleted file mode 100644 index 706a74fa6..000000000 --- a/src/powerbi-visuals-tools/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# PowerBI Visual Tools (pbiviz) (via npm) (powerbi-visuals-tools) - -PowerBI Visual Tools Contains tools for building/packaging Power BI visuals - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/powerbi-visuals-tools:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of PowerBI Visual Tools (pbiviz) to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/powerbi-visuals-tools/devcontainer-feature.json b/src/powerbi-visuals-tools/devcontainer-feature.json deleted file mode 100644 index 21a7e205e..000000000 --- a/src/powerbi-visuals-tools/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "powerbi-visuals-tools", - "version": "2.0.15", - "name": "PowerBI Visual Tools (pbiviz) (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/powerbi-visuals-tools", - "description": "PowerBI Visual Tools Contains tools for building/packaging Power BI visuals", - "options": { - "version": { - "default": "latest", - "description": "Select the version of PowerBI Visual Tools (pbiviz) to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/powerbi-visuals-tools/install.sh b/src/powerbi-visuals-tools/install.sh deleted file mode 100755 index 2dfff79ac..000000000 --- a/src/powerbi-visuals-tools/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='powerbi-visuals-tools' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/powerbi-visuals-tools/library_scripts.sh b/src/powerbi-visuals-tools/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/powerbi-visuals-tools/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/powershell/README.md b/src/powershell/README.md deleted file mode 100644 index a1a35568b..000000000 --- a/src/powershell/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# PowerShell (via Github Releases) (powershell) - -PowerShell is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. It includes a command-line shell, an associated scripting language and a framework for processing cmdlets. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/powershell:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/powershell/devcontainer-feature.json b/src/powershell/devcontainer-feature.json deleted file mode 100644 index a37ee1fe3..000000000 --- a/src/powershell/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "powershell", - "version": "1.0.13", - "name": "PowerShell (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/powershell", - "description": "PowerShell is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. It includes a command-line shell, an associated scripting language and a framework for processing cmdlets.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/powershell/install.sh b/src/powershell/install.sh deleted file mode 100755 index 9ca2afc77..000000000 --- a/src/powershell/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='powershell/powershell' --option binaryNames='pwsh' --option version="$VERSION" --option assetRegex='^(?!.*(fxdependent))' - - - -echo 'Done!' - diff --git a/src/powershell/library_scripts.sh b/src/powershell/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/powershell/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/pre-commit/README.md b/src/pre-commit/README.md deleted file mode 100644 index 117e408e3..000000000 --- a/src/pre-commit/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Pre-Commit (via pipx) (pre-commit) - -Pre-Commit is a framework for managing and maintaining multi-language pre-commit hooks. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pre-commit:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Pre-Commit to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pre-commit/devcontainer-feature.json b/src/pre-commit/devcontainer-feature.json deleted file mode 100644 index 49d01b70c..000000000 --- a/src/pre-commit/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "pre-commit", - "version": "2.0.17", - "name": "Pre-Commit (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pre-commit", - "description": "Pre-Commit is a framework for managing and maintaining multi-language pre-commit hooks.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Pre-Commit to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/pre-commit/install.sh b/src/pre-commit/install.sh deleted file mode 100755 index 5853bb142..000000000 --- a/src/pre-commit/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='pre-commit' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pre-commit/library_scripts.sh b/src/pre-commit/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pre-commit/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/prettier/README.md b/src/prettier/README.md deleted file mode 100644 index a0f458547..000000000 --- a/src/prettier/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prettier (via npm) (prettier) - -Prettier is an opinionated code formatter. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/prettier:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/prettier/devcontainer-feature.json b/src/prettier/devcontainer-feature.json deleted file mode 100644 index b97ed1b63..000000000 --- a/src/prettier/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "prettier", - "version": "1.0.1", - "name": "Prettier (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/prettier", - "description": "Prettier is an opinionated code formatter.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/prettier/install.sh b/src/prettier/install.sh deleted file mode 100755 index 40d2bff4b..000000000 --- a/src/prettier/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='prettier' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/prettier/library_scripts.sh b/src/prettier/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/prettier/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/prisma/README.md b/src/prisma/README.md deleted file mode 100644 index 2dc598bcb..000000000 --- a/src/prisma/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prisma CLI (via npm) (prisma) - -Prisma is a next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/prisma:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Prisma CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/prisma/devcontainer-feature.json b/src/prisma/devcontainer-feature.json deleted file mode 100644 index f6baa7a92..000000000 --- a/src/prisma/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "prisma", - "version": "2.0.15", - "name": "Prisma CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/prisma", - "description": "Prisma is a next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Prisma CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/prisma/install.sh b/src/prisma/install.sh deleted file mode 100755 index 5ea858efd..000000000 --- a/src/prisma/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='prisma' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/prisma/library_scripts.sh b/src/prisma/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/prisma/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/projen/README.md b/src/projen/README.md deleted file mode 100644 index 524437838..000000000 --- a/src/projen/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# projen (via npm) (projen) - -projen synthesizes project configuration files such as package.json, tsconfig.json, .gitignore, GitHub Workflows, eslint, jest, etc from a well-typed definition written in JavaScript. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/projen:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/projen/devcontainer-feature.json b/src/projen/devcontainer-feature.json deleted file mode 100644 index c923ac7f3..000000000 --- a/src/projen/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "projen", - "version": "1.0.2", - "name": "projen (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/projen", - "description": "projen synthesizes project configuration files such as package.json, tsconfig.json, .gitignore, GitHub Workflows, eslint, jest, etc from a well-typed definition written in JavaScript.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/projen/install.sh b/src/projen/install.sh deleted file mode 100755 index bfa899ae3..000000000 --- a/src/projen/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='projen' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/projen/library_scripts.sh b/src/projen/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/projen/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/prometheus/README.md b/src/prometheus/README.md deleted file mode 100644 index d6ea0d9a0..000000000 --- a/src/prometheus/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus (via Github Releases) (prometheus) - -Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts when specified conditions are observed. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/prometheus:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/prometheus/devcontainer-feature.json b/src/prometheus/devcontainer-feature.json deleted file mode 100644 index ef739bfff..000000000 --- a/src/prometheus/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "prometheus", - "version": "1.0.2", - "name": "Prometheus (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/prometheus", - "description": "Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts when specified conditions are observed.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/prometheus/install.sh b/src/prometheus/install.sh deleted file mode 100755 index 38dfa02c7..000000000 --- a/src/prometheus/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/prometheus' --option binaryNames='prometheus' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/prometheus/library_scripts.sh b/src/prometheus/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/prometheus/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/promlens/README.md b/src/promlens/README.md deleted file mode 100644 index 4ca49baee..000000000 --- a/src/promlens/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# PromLens (via Github Releases) (promlens) - -PromLens is a web-based PromQL query builder, analyzer, and visualizer. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/promlens:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/promlens/devcontainer-feature.json b/src/promlens/devcontainer-feature.json deleted file mode 100644 index b3abe021a..000000000 --- a/src/promlens/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "promlens", - "version": "1.0.2", - "name": "PromLens (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/promlens", - "description": "PromLens is a web-based PromQL query builder, analyzer, and visualizer.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/promlens/install.sh b/src/promlens/install.sh deleted file mode 100755 index 7335c3ea4..000000000 --- a/src/promlens/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/promlens' --option binaryNames='promlens' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/promlens/library_scripts.sh b/src/promlens/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/promlens/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/protoc-asdf/README.md b/src/protoc-asdf/README.md deleted file mode 100644 index 2fd3dd599..000000000 --- a/src/protoc-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# protoc (via asdf) (protoc-asdf) - -protoc is the protocol buffer compiler - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/protoc-asdf:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/protoc-asdf/devcontainer-feature.json b/src/protoc-asdf/devcontainer-feature.json deleted file mode 100644 index 0a1c0686f..000000000 --- a/src/protoc-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "protoc-asdf", - "version": "1.0.6", - "name": "protoc (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/protoc-asdf", - "description": "protoc is the protocol buffer compiler", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/protoc-asdf/install.sh b/src/protoc-asdf/install.sh deleted file mode 100755 index 7d090b0c3..000000000 --- a/src/protoc-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='protoc' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/protoc-asdf/library_scripts.sh b/src/protoc-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/protoc-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/protoc/README.md b/src/protoc/README.md deleted file mode 100644 index 469b29f47..000000000 --- a/src/protoc/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Protocol Buffer (Protobuf) Compiler (via Github Releases) (protoc) - -A compiler for protocol buffer definition files. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/protoc:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/protoc/devcontainer-feature.json b/src/protoc/devcontainer-feature.json deleted file mode 100644 index 1c22a46ce..000000000 --- a/src/protoc/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "protoc", - "version": "1.0.2", - "name": "Protocol Buffer (Protobuf) Compiler (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/protoc", - "description": "A compiler for protocol buffer definition files.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/protoc/install.sh b/src/protoc/install.sh deleted file mode 100755 index 607407619..000000000 --- a/src/protoc/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='protocolbuffers/protobuf' --option binaryNames='protoc' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/protoc/library_scripts.sh b/src/protoc/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/protoc/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/pulumi/README.md b/src/pulumi/README.md deleted file mode 100644 index 46d91dafd..000000000 --- a/src/pulumi/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Pulumi (via get.pulumi.com) (pulumi) - -Pulumi is a modern infrastructure as code platform - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pulumi:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the Pulumi version you would like to install | string | latest | -| bashCompletion | Add pulumi command-line completion to bash | boolean | true | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pulumi/devcontainer-feature.json b/src/pulumi/devcontainer-feature.json deleted file mode 100644 index 9e9d6ec3e..000000000 --- a/src/pulumi/devcontainer-feature.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "Pulumi (via get.pulumi.com)", - "id": "pulumi", - "version": "1.2.3", - "description": "Pulumi is a modern infrastructure as code platform", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/pulumi", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "3.43.0" - ], - "default": "latest", - "description": "Select the Pulumi version you would like to install" - }, - "bashCompletion": { - "type": "boolean", - "default": true, - "description": "Add pulumi command-line completion to bash" - } - } -} \ No newline at end of file diff --git a/src/pulumi/install.sh b/src/pulumi/install.sh deleted file mode 100755 index b8e6f25bf..000000000 --- a/src/pulumi/install.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/env bash - -PULUMI_VERSION="${VERSION:-"latest"}" -BASH_COMPLETION="${BASHCOMPLETION:-"true"}" - -set -e - -# Clean up -rm -rf /var/lib/apt/lists/* - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# making sure curl is there, you never know -check_packages ca-certificates curl - -# We run as the non-root user so to fix https://github.com/devcontainers-extra/features/issues/80 -# Note that we substitute SOME variables before evaluation, and some are -# substituted inside the $_REMOTE_USER shell. Particularily $HOME which needs to -# be from the $_REMOTE_USER, and $VERSION which needs to come from this script. -sudo -iu "$_REMOTE_USER" < /dev/null - fi -EOF - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/pushgateway/README.md b/src/pushgateway/README.md deleted file mode 100644 index cfeb22534..000000000 --- a/src/pushgateway/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus Pushgateway (via Github Releases) (pushgateway) - -The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. Since these kinds of jobs may not exist long enough to be scraped, they can instead push their metrics to a Pushgateway. The Pushgateway then exposes these metrics to Prometheus. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pushgateway:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pushgateway/devcontainer-feature.json b/src/pushgateway/devcontainer-feature.json deleted file mode 100644 index 7d5c3cb69..000000000 --- a/src/pushgateway/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "pushgateway", - "version": "1.0.2", - "name": "Prometheus Pushgateway (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pushgateway", - "description": "The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. Since these kinds of jobs may not exist long enough to be scraped, they can instead push their metrics to a Pushgateway. The Pushgateway then exposes these metrics to Prometheus.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/pushgateway/install.sh b/src/pushgateway/install.sh deleted file mode 100755 index a815ba9de..000000000 --- a/src/pushgateway/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/pushgateway' --option binaryNames='pushgateway' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pushgateway/library_scripts.sh b/src/pushgateway/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pushgateway/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/pyinfra/README.md b/src/pyinfra/README.md deleted file mode 100644 index 582736fb1..000000000 --- a/src/pyinfra/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# pyinfra (via pipx) (pyinfra) - -pyinfra is a Python alternative to Ansible where you don't write your deployment in YAML file, but in Python. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pyinfra:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pyinfra/devcontainer-feature.json b/src/pyinfra/devcontainer-feature.json deleted file mode 100644 index ac1ce60ae..000000000 --- a/src/pyinfra/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "pyinfra", - "version": "2.0.17", - "name": "pyinfra (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pyinfra", - "description": "pyinfra is a Python alternative to Ansible where you don't write your deployment in YAML file, but in Python.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/pyinfra/install.sh b/src/pyinfra/install.sh deleted file mode 100755 index 804d9a7e6..000000000 --- a/src/pyinfra/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='pyinfra' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pyinfra/library_scripts.sh b/src/pyinfra/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pyinfra/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/pylint/README.md b/src/pylint/README.md deleted file mode 100644 index 568739170..000000000 --- a/src/pylint/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Pylint (via pipx) (pylint) - -Pylint is a static code analyser for Python 2 or 3. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pylint:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pylint/devcontainer-feature.json b/src/pylint/devcontainer-feature.json deleted file mode 100644 index 1c8fe4f51..000000000 --- a/src/pylint/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "pylint", - "version": "2.0.17", - "name": "Pylint (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pylint", - "description": "Pylint is a static code analyser for Python 2 or 3.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/pylint/install.sh b/src/pylint/install.sh deleted file mode 100755 index 80d6c1fc3..000000000 --- a/src/pylint/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='pylint' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pylint/library_scripts.sh b/src/pylint/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pylint/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/pyoxidizer/README.md b/src/pyoxidizer/README.md deleted file mode 100644 index 433cae6b6..000000000 --- a/src/pyoxidizer/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# PyOxidizer (via pipx) (pyoxidizer) - -PyOxidizer is a modern Python application packaging and distribution tool. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pyoxidizer:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pyoxidizer/devcontainer-feature.json b/src/pyoxidizer/devcontainer-feature.json deleted file mode 100644 index e1f38dc8d..000000000 --- a/src/pyoxidizer/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "pyoxidizer", - "version": "1.0.5", - "name": "PyOxidizer (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pyoxidizer", - "description": "PyOxidizer is a modern Python application packaging and distribution tool.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/pyoxidizer/install.sh b/src/pyoxidizer/install.sh deleted file mode 100755 index bbf74ef9c..000000000 --- a/src/pyoxidizer/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='pyoxidizer' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pyoxidizer/library_scripts.sh b/src/pyoxidizer/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pyoxidizer/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/pyscaffold/README.md b/src/pyscaffold/README.md deleted file mode 100644 index 0ade376eb..000000000 --- a/src/pyscaffold/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# PyScaffold (via pipx) (pyscaffold) - -PyScaffold is a python project template generator with batteries included. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pyscaffold:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/pyscaffold/devcontainer-feature.json b/src/pyscaffold/devcontainer-feature.json deleted file mode 100644 index d4b3d3b35..000000000 --- a/src/pyscaffold/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "pyscaffold", - "version": "2.0.17", - "name": "PyScaffold (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pyscaffold", - "description": "PyScaffold is a python project template generator with batteries included.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/pyscaffold/install.sh b/src/pyscaffold/install.sh deleted file mode 100755 index b4a7197a9..000000000 --- a/src/pyscaffold/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='pyscaffold[all]' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/pyscaffold/library_scripts.sh b/src/pyscaffold/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/pyscaffold/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/qrcode/README.md b/src/qrcode/README.md deleted file mode 100644 index 8779344cd..000000000 --- a/src/qrcode/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# qrcode (via pipx) (qrcode) - -qrcode is a command line QR-Code generator. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/qrcode:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/qrcode/devcontainer-feature.json b/src/qrcode/devcontainer-feature.json deleted file mode 100644 index ed1aee942..000000000 --- a/src/qrcode/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "qrcode", - "version": "2.0.17", - "name": "qrcode (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/qrcode", - "description": "qrcode is a command line QR-Code generator.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/qrcode/install.sh b/src/qrcode/install.sh deleted file mode 100755 index f519b95d0..000000000 --- a/src/qrcode/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='qrcode[pil]' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/qrcode/library_scripts.sh b/src/qrcode/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/qrcode/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/quarkus-sdkman/README.md b/src/quarkus-sdkman/README.md deleted file mode 100644 index 4c4f6f3ff..000000000 --- a/src/quarkus-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Quarkus CLI (via SDKMAN) (quarkus-sdkman) - -Quarkus is a Kubernetes Native Java framework tailored for OpenJDK HotSpot and -GraalVM, crafted from best-of-breed Java libraries and standards. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/quarkus-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Quarkus CLI to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/quarkus-sdkman/devcontainer-feature.json b/src/quarkus-sdkman/devcontainer-feature.json deleted file mode 100644 index 6c8eb9ad6..000000000 --- a/src/quarkus-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "quarkus-sdkman", - "version": "2.0.16", - "name": "Quarkus CLI (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/quarkus-sdkman", - "description": "Quarkus is a Kubernetes Native Java framework tailored for OpenJDK HotSpot and\nGraalVM, crafted from best-of-breed Java libraries and standards.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Quarkus CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/quarkus-sdkman/install.sh b/src/quarkus-sdkman/install.sh deleted file mode 100755 index 7d4bd60ba..000000000 --- a/src/quarkus-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='quarkus' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/quarkus-sdkman/library_scripts.sh b/src/quarkus-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/quarkus-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/quasar-cli/README.md b/src/quasar-cli/README.md deleted file mode 100644 index d80dec8f4..000000000 --- a/src/quasar-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Quasar CLI (via npm) (quasar-cli) - -Quasar is an MIT licensed open-source Vue.js based framework, which allows you as a web developer to quickly create responsive websites/apps in many flavours. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/quasar-cli:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Quasar CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/quasar-cli/devcontainer-feature.json b/src/quasar-cli/devcontainer-feature.json deleted file mode 100644 index a5dde9256..000000000 --- a/src/quasar-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "quasar-cli", - "version": "2.0.15", - "name": "Quasar CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/quasar-cli", - "description": "Quasar is an MIT licensed open-source Vue.js based framework, which allows you as a web developer to quickly create responsive websites/apps in many flavours.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Quasar CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/quasar-cli/install.sh b/src/quasar-cli/install.sh deleted file mode 100755 index 6d67b865a..000000000 --- a/src/quasar-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@quasar/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/quasar-cli/library_scripts.sh b/src/quasar-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/quasar-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/raku-asdf/README.md b/src/raku-asdf/README.md deleted file mode 100644 index 64d93869c..000000000 --- a/src/raku-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Raku (via asdf) (raku-asdf) - -Raku is a general-purpose, interpreted, dynamic programming language. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/raku-asdf:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/raku-asdf/devcontainer-feature.json b/src/raku-asdf/devcontainer-feature.json deleted file mode 100644 index ffe147874..000000000 --- a/src/raku-asdf/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "raku-asdf", - "version": "1.0.17", - "name": "Raku (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/raku-asdf", - "description": "Raku is a general-purpose, interpreted, dynamic programming language.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages", - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/raku-asdf/install.sh b/src/raku-asdf/install.sh deleted file mode 100755 index 28a948357..000000000 --- a/src/raku-asdf/install.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='ca-certificates' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='raku' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/raku-asdf/library_scripts.sh b/src/raku-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/raku-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/rclone/README.md b/src/rclone/README.md deleted file mode 100644 index 6b0893924..000000000 --- a/src/rclone/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Rclone (via Github Releases) (rclone) - -Rclone ('rsync for cloud storage') is a command-line program to sync files and directories to and from different cloud storage providers. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/rclone:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/rclone/devcontainer-feature.json b/src/rclone/devcontainer-feature.json deleted file mode 100644 index fcb9fcd32..000000000 --- a/src/rclone/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "rclone", - "version": "1.0.14", - "name": "Rclone (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/rclone", - "description": "Rclone ('rsync for cloud storage') is a command-line program to sync files and directories to and from different cloud storage providers.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/rclone/install.sh b/src/rclone/install.sh deleted file mode 100755 index 53c050b6f..000000000 --- a/src/rclone/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='rclone/rclone' --option binaryNames='rclone' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/rclone/library_scripts.sh b/src/rclone/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/rclone/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/redis-homebrew/README.md b/src/redis-homebrew/README.md deleted file mode 100644 index 2a60306b6..000000000 --- a/src/redis-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Redis (via Homebrew) (redis-homebrew) - -Redis is an in-memory data structure store, used as a distributed, in-memory key-value database, cache and message broker, with optional durability. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/redis-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/redis-homebrew/devcontainer-feature.json b/src/redis-homebrew/devcontainer-feature.json deleted file mode 100644 index 3ab873e55..000000000 --- a/src/redis-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "redis-homebrew", - "version": "1.0.20", - "name": "Redis (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/redis-homebrew", - "description": "Redis is an in-memory data structure store, used as a distributed, in-memory key-value database, cache and message broker, with optional durability.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/redis-homebrew/install.sh b/src/redis-homebrew/install.sh deleted file mode 100755 index c1b7670ed..000000000 --- a/src/redis-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='redis' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/redis-homebrew/library_scripts.sh b/src/redis-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/redis-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/rekor-cli/README.md b/src/rekor-cli/README.md deleted file mode 100644 index 780e0b9d5..000000000 --- a/src/rekor-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Rekor CLI (via Github Releases) (rekor-cli) - -Rekor provide an immutable, tamper-resistant ledger of metadata generated within a software project supply chain. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/rekor-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/rekor-cli/devcontainer-feature.json b/src/rekor-cli/devcontainer-feature.json deleted file mode 100644 index dfff1625f..000000000 --- a/src/rekor-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "rekor-cli", - "version": "1.0.9", - "name": "Rekor CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/rekor-cli", - "description": "Rekor provide an immutable, tamper-resistant ledger of metadata generated within a software project supply chain.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/rekor-cli/install.sh b/src/rekor-cli/install.sh deleted file mode 100755 index ff106ae22..000000000 --- a/src/rekor-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sigstore/rekor' --option binaryNames='rekor-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/rekor-cli/library_scripts.sh b/src/rekor-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/rekor-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/renovate-cli/README.md b/src/renovate-cli/README.md deleted file mode 100644 index 50641c101..000000000 --- a/src/renovate-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Renovate CLI (via npm) (renovate-cli) - -Renovate is a universal dependency update tool. Multi-platform and multi-language. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/renovate-cli:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Renovate CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/renovate-cli/devcontainer-feature.json b/src/renovate-cli/devcontainer-feature.json deleted file mode 100644 index 0673fcde5..000000000 --- a/src/renovate-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "renovate-cli", - "version": "2.0.15", - "name": "Renovate CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/renovate-cli", - "description": "Renovate is a universal dependency update tool. Multi-platform and multi-language.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Renovate CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/renovate-cli/install.sh b/src/renovate-cli/install.sh deleted file mode 100755 index 0d8ced34b..000000000 --- a/src/renovate-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='renovate' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/renovate-cli/library_scripts.sh b/src/renovate-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/renovate-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ripgrep/README.md b/src/ripgrep/README.md deleted file mode 100644 index 9355c327e..000000000 --- a/src/ripgrep/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ripgrep (via Github Releases) (ripgrep) - -ripgrep recursively searches directories for a regex pattern while respecting your gitignore. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ripgrep:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ripgrep/devcontainer-feature.json b/src/ripgrep/devcontainer-feature.json deleted file mode 100644 index 0a101a48e..000000000 --- a/src/ripgrep/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ripgrep", - "version": "1.0.14", - "name": "ripgrep (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ripgrep", - "description": "ripgrep recursively searches directories for a regex pattern while respecting your gitignore.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/ripgrep/install.sh b/src/ripgrep/install.sh deleted file mode 100755 index 03eec5715..000000000 --- a/src/ripgrep/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='BurntSushi/ripgrep' --option binaryNames='rg' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ripgrep/library_scripts.sh b/src/ripgrep/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ripgrep/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/rollup/README.md b/src/rollup/README.md deleted file mode 100644 index 52497f841..000000000 --- a/src/rollup/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# rollup.js (via npm) (rollup) - -Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/rollup:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of rollup.js to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/rollup/devcontainer-feature.json b/src/rollup/devcontainer-feature.json deleted file mode 100644 index fb3830f72..000000000 --- a/src/rollup/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "rollup", - "version": "2.0.15", - "name": "rollup.js (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/rollup", - "description": "Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of rollup.js to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/rollup/install.sh b/src/rollup/install.sh deleted file mode 100755 index afe68f5c3..000000000 --- a/src/rollup/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='rollup' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/rollup/library_scripts.sh b/src/rollup/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/rollup/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ruby-asdf/README.md b/src/ruby-asdf/README.md deleted file mode 100644 index 9c4d0f247..000000000 --- a/src/ruby-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ruby (via asdf) (ruby-asdf) - -Installs Ruby via asdf. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ruby-asdf:0": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ruby-asdf/devcontainer-feature.json b/src/ruby-asdf/devcontainer-feature.json deleted file mode 100644 index 2407eaf71..000000000 --- a/src/ruby-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ruby-asdf", - "version": "0.0.1", - "name": "Ruby (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ruby-asdf", - "description": "Installs Ruby via asdf.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/ruby-asdf/install.sh b/src/ruby-asdf/install.sh deleted file mode 100755 index cc731321d..000000000 --- a/src/ruby-asdf/install.sh +++ /dev/null @@ -1,31 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='curl,ca-certificates,software-properties-common,build-essential,gnupg2,libreadline-dev,procps,dirmngr,gawk,autoconf,automake,bison,libffi-dev,libgdbm-dev,libncurses5-dev,libsqlite3-dev,libtool,libyaml-dev,pkg-config,sqlite3,zlib1g-dev,libgmp-dev,libssl-dev' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='ruby' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ruby-asdf/library_scripts.sh b/src/ruby-asdf/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ruby-asdf/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ruff/README.md b/src/ruff/README.md deleted file mode 100644 index 6c052cea7..000000000 --- a/src/ruff/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ruff (via pipx) (ruff) - -Ruff is an extremely fast Python linter, written in Rust. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ruff:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ruff/devcontainer-feature.json b/src/ruff/devcontainer-feature.json deleted file mode 100644 index 55739186c..000000000 --- a/src/ruff/devcontainer-feature.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "id": "ruff", - "version": "1.1.0", - "name": "Ruff (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ruff", - "description": "Ruff is an extremely fast Python linter, written in Rust.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "customizations": { - "vscode": { - "extensions": [ - "charliermarsh.ruff" - ] - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/ruff/install.sh b/src/ruff/install.sh deleted file mode 100755 index 1c344caae..000000000 --- a/src/ruff/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='ruff' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ruff/library_scripts.sh b/src/ruff/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ruff/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/salesforce-cli/README.md b/src/salesforce-cli/README.md deleted file mode 100644 index ac6e291a0..000000000 --- a/src/salesforce-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Salesforce CLI (via npm) (salesforce-cli) - -The Salesforce CLI is a powerful command line interface that simplifies development and build automation when working with your Salesforce org. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/salesforce-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/salesforce-cli/devcontainer-feature.json b/src/salesforce-cli/devcontainer-feature.json deleted file mode 100644 index cb3c209e4..000000000 --- a/src/salesforce-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "salesforce-cli", - "version": "1.0.2", - "name": "Salesforce CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/salesforce-cli", - "description": "The Salesforce CLI is a powerful command line interface that simplifies development and build automation when working with your Salesforce org.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/salesforce-cli/install.sh b/src/salesforce-cli/install.sh deleted file mode 100755 index 47d2967de..000000000 --- a/src/salesforce-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@salesforce/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/salesforce-cli/library_scripts.sh b/src/salesforce-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/salesforce-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/salesforce-sfdx/README.md b/src/salesforce-sfdx/README.md deleted file mode 100644 index ea65b568c..000000000 --- a/src/salesforce-sfdx/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Salesforce sfdx (via npm) (salesforce-sfdx) - -sfdx provide you with the ability to develop and test your apps more easily on Salesforce Platform. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/salesforce-sfdx:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/salesforce-sfdx/devcontainer-feature.json b/src/salesforce-sfdx/devcontainer-feature.json deleted file mode 100644 index c19f59a6d..000000000 --- a/src/salesforce-sfdx/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "salesforce-sfdx", - "version": "1.0.2", - "name": "Salesforce sfdx (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/salesforce-sfdx", - "description": "sfdx provide you with the ability to develop and test your apps more easily on Salesforce Platform.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/salesforce-sfdx/install.sh b/src/salesforce-sfdx/install.sh deleted file mode 100755 index 7bd6a43c5..000000000 --- a/src/salesforce-sfdx/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='sfdx-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/salesforce-sfdx/library_scripts.sh b/src/salesforce-sfdx/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/salesforce-sfdx/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/sanity-cli/README.md b/src/sanity-cli/README.md deleted file mode 100644 index 517579f1f..000000000 --- a/src/sanity-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Sanity.io CLI (via npm) (sanity-cli) - -The sanity Command Line Interface (CLI) is a collection of tools for managing, developing, debugging, and deploying your Sanity Studio projects. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sanity-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/sanity-cli/devcontainer-feature.json b/src/sanity-cli/devcontainer-feature.json deleted file mode 100644 index c0701b0fb..000000000 --- a/src/sanity-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "sanity-cli", - "version": "1.0.2", - "name": "Sanity.io CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/sanity-cli", - "description": "The sanity Command Line Interface (CLI) is a collection of tools for managing, developing, debugging, and deploying your Sanity Studio projects.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/sanity-cli/install.sh b/src/sanity-cli/install.sh deleted file mode 100755 index e94a1d8c2..000000000 --- a/src/sanity-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@sanity/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/sanity-cli/library_scripts.sh b/src/sanity-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/sanity-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/sap-piper/README.md b/src/sap-piper/README.md deleted file mode 100644 index 8ae8fe9f0..000000000 --- a/src/sap-piper/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Project Piper (via Github Releases) (sap-piper) - -Piper offers default pipelines to easily implement CI/CD processes integrating SAP systems. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sap-piper:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/sap-piper/devcontainer-feature.json b/src/sap-piper/devcontainer-feature.json deleted file mode 100644 index fe89b778d..000000000 --- a/src/sap-piper/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "sap-piper", - "version": "1.0.9", - "name": "Project Piper (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/sap-piper", - "description": "Piper offers default pipelines to easily implement CI/CD processes integrating SAP systems.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/sap-piper/install.sh b/src/sap-piper/install.sh deleted file mode 100755 index 1266dc4a6..000000000 --- a/src/sap-piper/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='SAP/jenkins-library' --option binaryNames='piper' --option version="$VERSION" --option assetRegex='^(?!.*(master))' - - - -echo 'Done!' - diff --git a/src/sap-piper/library_scripts.sh b/src/sap-piper/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/sap-piper/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/sbt-sdkman/README.md b/src/sbt-sdkman/README.md deleted file mode 100644 index 551088f95..000000000 --- a/src/sbt-sdkman/README.md +++ /dev/null @@ -1,32 +0,0 @@ - -# sbt (via SDKMAN) (sbt-sdkman) - -SBT is an open source build tool for Scala and Java projects, similar to Java's -Maven or Ant. Its main features are: native support for compiling Scala code and -integrating with many Scala test frameworks; build descriptions written in Scala -using a DSL; dependency management using Ivy (which supports Maven-format -repositories); continuous compilation, testing, and deployment; integration with -the Scala interpreter for rapid iteration and debugging; support for mixed -Java/Scala projects - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sbt-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/sbt-sdkman/devcontainer-feature.json b/src/sbt-sdkman/devcontainer-feature.json deleted file mode 100644 index b5ea67e07..000000000 --- a/src/sbt-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "sbt-sdkman", - "version": "2.0.15", - "name": "sbt (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/sbt-sdkman", - "description": "SBT is an open source build tool for Scala and Java projects, similar to Java's\nMaven or Ant. Its main features are: native support for compiling Scala code and\nintegrating with many Scala test frameworks; build descriptions written in Scala\nusing a DSL; dependency management using Ivy (which supports Maven-format\nrepositories); continuous compilation, testing, and deployment; integration with\nthe Scala interpreter for rapid iteration and debugging; support for mixed\nJava/Scala projects", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/sbt-sdkman/install.sh b/src/sbt-sdkman/install.sh deleted file mode 100755 index dfa5ca77b..000000000 --- a/src/sbt-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='sbt' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/sbt-sdkman/library_scripts.sh b/src/sbt-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/sbt-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/scala-sdkman/README.md b/src/scala-sdkman/README.md deleted file mode 100644 index a62164fcb..000000000 --- a/src/scala-sdkman/README.md +++ /dev/null @@ -1,38 +0,0 @@ - -# Scala (via SDKMAN) (scala-sdkman) - -Scala is a programming language for general software applications. Scala has -full support for functional programming and a very strong static type system. -This allows programs written in Scala to be very concise and thus smaller in -size than other general-purpose programming languages. Scala source code is -intended to be compiled to Java bytecode, so that the resulting executable code -runs on a Java virtual machine. Java libraries may be used directly in Scala -code and vice versa. Scala is object-oriented, and uses a curly-brace syntax. -Scala has many features of functional programming languages, including currying, -type inference, immutability, lazy evaluation, and pattern matching. It also has -an advanced type system supporting algebraic data types, covariance and -contravariance, higher-order types, and anonymous types. Other features of Scala -include operator overloading, optional parameters, named parameters, raw -strings, and no checked exceptions. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/scala-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/scala-sdkman/devcontainer-feature.json b/src/scala-sdkman/devcontainer-feature.json deleted file mode 100644 index 74347d967..000000000 --- a/src/scala-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "scala-sdkman", - "version": "2.0.15", - "name": "Scala (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/scala-sdkman", - "description": "Scala is a programming language for general software applications. Scala has\nfull support for functional programming and a very strong static type system.\nThis allows programs written in Scala to be very concise and thus smaller in\nsize than other general-purpose programming languages. Scala source code is\nintended to be compiled to Java bytecode, so that the resulting executable code\nruns on a Java virtual machine. Java libraries may be used directly in Scala\ncode and vice versa. Scala is object-oriented, and uses a curly-brace syntax.\nScala has many features of functional programming languages, including currying,\ntype inference, immutability, lazy evaluation, and pattern matching. It also has\nan advanced type system supporting algebraic data types, covariance and\ncontravariance, higher-order types, and anonymous types. Other features of Scala\ninclude operator overloading, optional parameters, named parameters, raw\nstrings, and no checked exceptions.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/scala-sdkman/install.sh b/src/scala-sdkman/install.sh deleted file mode 100755 index 5bb7305ce..000000000 --- a/src/scala-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='scala' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/scala-sdkman/library_scripts.sh b/src/scala-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/scala-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/scalacli-sdkman/README.md b/src/scalacli-sdkman/README.md deleted file mode 100644 index ad22695a1..000000000 --- a/src/scalacli-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Scala CLI (via SDKMAN) (scalacli-sdkman) - -Scala CLI is a command-line tool to interact with the Scala language. It lets -you compile, run, test, and package your Scala code (and more!) - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/scalacli-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Scala CLI to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/scalacli-sdkman/devcontainer-feature.json b/src/scalacli-sdkman/devcontainer-feature.json deleted file mode 100644 index 7dad4212c..000000000 --- a/src/scalacli-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "scalacli-sdkman", - "version": "2.0.15", - "name": "Scala CLI (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/scalacli-sdkman", - "description": "Scala CLI is a command-line tool to interact with the Scala language. It lets\nyou compile, run, test, and package your Scala code (and more!)", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Scala CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/scalacli-sdkman/install.sh b/src/scalacli-sdkman/install.sh deleted file mode 100755 index 3938f4b51..000000000 --- a/src/scalacli-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='scalacli' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/scalacli-sdkman/library_scripts.sh b/src/scalacli-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/scalacli-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/scancode-toolkit/README.md b/src/scancode-toolkit/README.md deleted file mode 100644 index d94bfa165..000000000 --- a/src/scancode-toolkit/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Scan (SAST) (via pipx) (scancode-toolkit) - -ScanCode scan code to detect packages and dependencies, licenses, copyrights and more. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/scancode-toolkit:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/scancode-toolkit/devcontainer-feature.json b/src/scancode-toolkit/devcontainer-feature.json deleted file mode 100644 index c944be1d6..000000000 --- a/src/scancode-toolkit/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "scancode-toolkit", - "version": "1.0.4", - "name": "Scan (SAST) (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/scancode-toolkit", - "description": "ScanCode scan code to detect packages and dependencies, licenses, copyrights and more.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/scancode-toolkit/install.sh b/src/scancode-toolkit/install.sh deleted file mode 100755 index 88f05c6db..000000000 --- a/src/scancode-toolkit/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='scancode-toolkit' --option version="$VERSION" - - - -echo 'Done' - diff --git a/src/scancode-toolkit/library_scripts.sh b/src/scancode-toolkit/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/scancode-toolkit/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/schemacrawler-sdkman/README.md b/src/schemacrawler-sdkman/README.md deleted file mode 100644 index dbaa2018e..000000000 --- a/src/schemacrawler-sdkman/README.md +++ /dev/null @@ -1,33 +0,0 @@ - -# SchemaCrawler (via SDKMAN) (schemacrawler-sdkman) - -SchemaCrawler is a free database schema discovery and comprehension tool. -SchemaCrawler has a good mix of useful features for data governance. You can -search for database schema objects using regular expressions, and output the -schema and data in a readable text format. The output serves for database -documentation, and is designed to be diff-ed against other database schemas. -SchemaCrawler also generates schema diagrams. You can execute scripts in any -standard scripting language against your database. You can find potential schema -design issues with lint. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/schemacrawler-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/schemacrawler-sdkman/devcontainer-feature.json b/src/schemacrawler-sdkman/devcontainer-feature.json deleted file mode 100644 index d2bf59317..000000000 --- a/src/schemacrawler-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "schemacrawler-sdkman", - "version": "2.0.16", - "name": "SchemaCrawler (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/schemacrawler-sdkman", - "description": "SchemaCrawler is a free database schema discovery and comprehension tool.\nSchemaCrawler has a good mix of useful features for data governance. You can\nsearch for database schema objects using regular expressions, and output the\nschema and data in a readable text format. The output serves for database\ndocumentation, and is designed to be diff-ed against other database schemas.\nSchemaCrawler also generates schema diagrams. You can execute scripts in any\nstandard scripting language against your database. You can find potential schema\ndesign issues with lint.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/schemacrawler-sdkman/install.sh b/src/schemacrawler-sdkman/install.sh deleted file mode 100755 index a29070615..000000000 --- a/src/schemacrawler-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='schemacrawler' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/schemacrawler-sdkman/library_scripts.sh b/src/schemacrawler-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/schemacrawler-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/sentinel-asdf/README.md b/src/sentinel-asdf/README.md deleted file mode 100644 index 93e7c5ef9..000000000 --- a/src/sentinel-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# sentinel (via asdf) (sentinel-asdf) - -Sentinel is an embeddable policy as code framework to enable fine-grained, logic-based policy decisions that can be extended to source external information to make decisions. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sentinel-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/sentinel-asdf/devcontainer-feature.json b/src/sentinel-asdf/devcontainer-feature.json deleted file mode 100644 index d86403554..000000000 --- a/src/sentinel-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "sentinel-asdf", - "version": "2.0.15", - "name": "sentinel (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/sentinel-asdf", - "description": "Sentinel is an embeddable policy as code framework to enable fine-grained, logic-based policy decisions that can be extended to source external information to make decisions.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/sentinel-asdf/install.sh b/src/sentinel-asdf/install.sh deleted file mode 100755 index 86195e8c0..000000000 --- a/src/sentinel-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='sentinel' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/sentinel-asdf/library_scripts.sh b/src/sentinel-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/sentinel-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/serf-asdf/README.md b/src/serf-asdf/README.md deleted file mode 100644 index 7e3233bea..000000000 --- a/src/serf-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Serf (via asdf) (serf-asdf) - -Serf is a decentralized solution for cluster membership, failure detection, and orchestration. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/serf-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/serf-asdf/devcontainer-feature.json b/src/serf-asdf/devcontainer-feature.json deleted file mode 100644 index 5ebb6f8a3..000000000 --- a/src/serf-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "serf-asdf", - "version": "2.0.15", - "name": "Serf (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/serf-asdf", - "description": "Serf is a decentralized solution for cluster membership, failure detection, and orchestration.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/serf-asdf/install.sh b/src/serf-asdf/install.sh deleted file mode 100755 index 16d7d9665..000000000 --- a/src/serf-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='serf' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/serf-asdf/library_scripts.sh b/src/serf-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/serf-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/shfmt/README.md b/src/shfmt/README.md deleted file mode 100644 index a78737aaf..000000000 --- a/src/shfmt/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# shfmt (via Github Releases) (shfmt) - -Shfmt is a shell parser, formatter, and interpreter. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/shfmt:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/shfmt/devcontainer-feature.json b/src/shfmt/devcontainer-feature.json deleted file mode 100644 index 0f893123e..000000000 --- a/src/shfmt/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "shfmt", - "version": "1.0.1", - "name": "shfmt (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/shfmt", - "description": "Shfmt is a shell parser, formatter, and interpreter.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/shfmt/install.sh b/src/shfmt/install.sh deleted file mode 100755 index 9e79cffe4..000000000 --- a/src/shfmt/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='mvdan/sh' --option binaryNames='shfmt' --option version="$VERSION" - - - -echo 'Done!' diff --git a/src/shfmt/library_scripts.sh b/src/shfmt/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/shfmt/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/shopify-cli/README.md b/src/shopify-cli/README.md deleted file mode 100644 index b7a65679d..000000000 --- a/src/shopify-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Shopify CLI (via npm) (shopify-cli) - -Shopify CLI is a command-line interface tool that helps you build Shopify apps and themes. It quickly generates Shopify apps, themes, and custom storefronts. You can also use it to automate many common development tasks. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/shopify-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/shopify-cli/devcontainer-feature.json b/src/shopify-cli/devcontainer-feature.json deleted file mode 100644 index 42d567e36..000000000 --- a/src/shopify-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "shopify-cli", - "version": "1.0.3", - "name": "Shopify CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/shopify-cli", - "description": "Shopify CLI is a command-line interface tool that helps you build Shopify apps and themes. It quickly generates Shopify apps, themes, and custom storefronts. You can also use it to automate many common development tasks.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/shopify-cli/install.sh b/src/shopify-cli/install.sh deleted file mode 100755 index 5c7bbf766..000000000 --- a/src/shopify-cli/install.sh +++ /dev/null @@ -1,40 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - -if [ -x "/usr/bin/apt-get" ] ; then - $nanolayer_location \ - install \ - apt-get \ - "xdg-utils" -else - echo "Distro not supported" - exit 1 -fi - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@shopify/cli' --option version="$VERSION" - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@shopify/theme' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/shopify-cli/library_scripts.sh b/src/shopify-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/shopify-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/sigstore-python/README.md b/src/sigstore-python/README.md deleted file mode 100644 index 1c68aa0d0..000000000 --- a/src/sigstore-python/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# sigstore-python (via pipx) (sigstore-python) - -sigstore-python is a Python tool for generating and verifying Sigstore signatures. You can use it to sign and verify Python package distributions, or anything else! - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sigstore-python:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/sigstore-python/devcontainer-feature.json b/src/sigstore-python/devcontainer-feature.json deleted file mode 100644 index 809e9d446..000000000 --- a/src/sigstore-python/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "sigstore-python", - "version": "1.0.4", - "name": "sigstore-python (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ansible", - "description": "sigstore-python is a Python tool for generating and verifying Sigstore signatures. You can use it to sign and verify Python package distributions, or anything else!", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/sigstore-python/install.sh b/src/sigstore-python/install.sh deleted file mode 100755 index 9877f684e..000000000 --- a/src/sigstore-python/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='sigstore' --option version="$VERSION" - - - -echo 'Done' - diff --git a/src/sigstore-python/library_scripts.sh b/src/sigstore-python/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/sigstore-python/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/snyk-cli/README.md b/src/snyk-cli/README.md deleted file mode 100644 index fc82e1a94..000000000 --- a/src/snyk-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Snyk CLI (via npm) (snyk-cli) - -Snyk CLI scans and monitors your projects for security vulnerabilities. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/snyk-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/snyk-cli/devcontainer-feature.json b/src/snyk-cli/devcontainer-feature.json deleted file mode 100644 index 4d44ae371..000000000 --- a/src/snyk-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "snyk-cli", - "version": "1.0.2", - "name": "Snyk CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/snyk-cli", - "description": "Snyk CLI scans and monitors your projects for security vulnerabilities.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/snyk-cli/install.sh b/src/snyk-cli/install.sh deleted file mode 100755 index fd1c423f8..000000000 --- a/src/snyk-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='snyk@latest' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/snyk-cli/library_scripts.sh b/src/snyk-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/snyk-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/sops/README.md b/src/sops/README.md deleted file mode 100644 index e06bc8b6e..000000000 --- a/src/sops/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# sops (via Github Releases) (sops) - -sops is an editor of encrypted files that supports YAML, JSON, ENV, INI and BINARY formats and encrypts with AWS KMS, GCP KMS, Azure Key Vault, age, and PGP. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sops:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/sops/devcontainer-feature.json b/src/sops/devcontainer-feature.json deleted file mode 100644 index 5a9000a44..000000000 --- a/src/sops/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "sops", - "version": "1.0.14", - "name": "sops (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/sops", - "description": "sops is an editor of encrypted files that supports YAML, JSON, ENV, INI and BINARY formats and encrypts with AWS KMS, GCP KMS, Azure Key Vault, age, and PGP.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/sops/install.sh b/src/sops/install.sh deleted file mode 100755 index 53c81964b..000000000 --- a/src/sops/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='mozilla/sops' --option binaryNames='sops' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/sops/library_scripts.sh b/src/sops/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/sops/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/spacectl/README.md b/src/spacectl/README.md deleted file mode 100644 index 3074f76a3..000000000 --- a/src/spacectl/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Spacelift CLI (via Github Releases) (spacectl) - -spacectl is a utility wrapping Spacelift's GraphQL API for easy programmatic access in command-line contexts - either in manual interactive mode (in your local shell), or in a predefined CI pipeline (GitHub actions, CircleCI, Jenkins etc). - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/spacectl:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/spacectl/devcontainer-feature.json b/src/spacectl/devcontainer-feature.json deleted file mode 100644 index d80b60992..000000000 --- a/src/spacectl/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "spacectl", - "version": "1.0.5", - "name": "Spacelift CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/spacectl", - "description": "spacectl is a utility wrapping Spacelift's GraphQL API for easy programmatic access in command-line contexts - either in manual interactive mode (in your local shell), or in a predefined CI pipeline (GitHub actions, CircleCI, Jenkins etc).", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/spacectl/install.sh b/src/spacectl/install.sh deleted file mode 100755 index 5ed751b12..000000000 --- a/src/spacectl/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='spacelift-io/spacectl' --option binaryNames='spacectl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/spacectl/library_scripts.sh b/src/spacectl/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/spacectl/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/spark-sdkman/README.md b/src/spark-sdkman/README.md deleted file mode 100644 index 7185e7c30..000000000 --- a/src/spark-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Spark (via SDKMAN) (spark-sdkman) - -Apache Spark is an open-source cluster-computing framework. Spark provides an -interface for programming entire clusters with implicit data parallelism and -fault-tolerance. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/spark-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/spark-sdkman/devcontainer-feature.json b/src/spark-sdkman/devcontainer-feature.json deleted file mode 100644 index d2bb4c270..000000000 --- a/src/spark-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "spark-sdkman", - "version": "2.0.16", - "name": "Spark (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/spark-sdkman", - "description": "Apache Spark is an open-source cluster-computing framework. Spark provides an\ninterface for programming entire clusters with implicit data parallelism and\nfault-tolerance.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/spark-sdkman/install.sh b/src/spark-sdkman/install.sh deleted file mode 100755 index 2793af23b..000000000 --- a/src/spark-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='spark' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/spark-sdkman/library_scripts.sh b/src/spark-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/spark-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/spicedb/README.md b/src/spicedb/README.md deleted file mode 100644 index c4cadfd81..000000000 --- a/src/spicedb/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# SpiceDB (via Github Releases) (spicedb) - -SpiceDB is an open source, Google Zanzibar-inspired, database system for creating and managing security-critical application permissions. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/spicedb:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/spicedb/devcontainer-feature.json b/src/spicedb/devcontainer-feature.json deleted file mode 100644 index 3f8567aa3..000000000 --- a/src/spicedb/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "spicedb", - "version": "1.0.5", - "name": "SpiceDB (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/spicedb", - "description": "SpiceDB is an open source, Google Zanzibar-inspired, database system for creating and managing security-critical application permissions.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/spicedb/install.sh b/src/spicedb/install.sh deleted file mode 100755 index a21278e05..000000000 --- a/src/spicedb/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='authzed/spicedb' --option binaryNames='spicedb' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/spicedb/library_scripts.sh b/src/spicedb/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/spicedb/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/springboot-sdkman/README.md b/src/springboot-sdkman/README.md deleted file mode 100644 index 5ed58619e..000000000 --- a/src/springboot-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Spring Boot (via SDKMAN) (springboot-sdkman) - -Spring Boot takes an opinionated view of building production-ready Spring -applications. It favors convention over configuration and is designed to get you -up and running as quickly as possible. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/springboot-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Spring Boot to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/springboot-sdkman/devcontainer-feature.json b/src/springboot-sdkman/devcontainer-feature.json deleted file mode 100644 index a0469b98f..000000000 --- a/src/springboot-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "springboot-sdkman", - "version": "2.0.16", - "name": "Spring Boot (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/springboot-sdkman", - "description": "Spring Boot takes an opinionated view of building production-ready Spring\napplications. It favors convention over configuration and is designed to get you\nup and running as quickly as possible.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Spring Boot to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/springboot-sdkman/install.sh b/src/springboot-sdkman/install.sh deleted file mode 100755 index 3c3903a2d..000000000 --- a/src/springboot-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='springboot' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/springboot-sdkman/library_scripts.sh b/src/springboot-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/springboot-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/sqlfluff/README.md b/src/sqlfluff/README.md deleted file mode 100644 index b0555e4c3..000000000 --- a/src/sqlfluff/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# SqlFluff (via pipx) (sqlfluff) - -Fluff is an extensible and modular linter designed to help you write good SQL and catch errors and bad SQL before it hits your database. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sqlfluff:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| plugins | A space delimitered list of sqlfluff plugins (will be injected into the sqlfluff pipx env). See proposals for examples. | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/sqlfluff/devcontainer-feature.json b/src/sqlfluff/devcontainer-feature.json deleted file mode 100644 index fc5fbc857..000000000 --- a/src/sqlfluff/devcontainer-feature.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "id": "sqlfluff", - "version": "1.0.2", - "name": "SqlFluff (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/sqlfluff", - "description": "Fluff is an extensible and modular linter designed to help you write good SQL and catch errors and bad SQL before it hits your database.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "plugins": { - "default": "", - "description": "A space delimitered list of sqlfluff plugins (will be injected into the sqlfluff pipx env). See proposals for examples.", - "proposals": [ - "sqlfluff-templater-dbt==2.3.5", - "sqlfluff-templater-dbt sqlfluff-plugin-sparksql-upgrade" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/sqlfluff/install.sh b/src/sqlfluff/install.sh deleted file mode 100755 index 6277e1f65..000000000 --- a/src/sqlfluff/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='sqlfluff' --option injections="$PLUGINS" --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/sqlfluff/library_scripts.sh b/src/sqlfluff/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/sqlfluff/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/squarespace-server/README.md b/src/squarespace-server/README.md deleted file mode 100644 index 1bc195e32..000000000 --- a/src/squarespace-server/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Squarespace Local Development Server (via npm) (squarespace-server) - -The Squarespace local development server is a command line tool that sets up a test server on your computer, allowing you to see changes to your template before making them live - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/squarespace-server:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/squarespace-server/devcontainer-feature.json b/src/squarespace-server/devcontainer-feature.json deleted file mode 100644 index d85f6aa9f..000000000 --- a/src/squarespace-server/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "squarespace-server", - "version": "1.0.2", - "name": "Squarespace Local Development Server (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/squarespace-server", - "description": "The Squarespace local development server is a command line tool that sets up a test server on your computer, allowing you to see changes to your template before making them live", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/squarespace-server/install.sh b/src/squarespace-server/install.sh deleted file mode 100755 index d9635b55f..000000000 --- a/src/squarespace-server/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@squarespace/server' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/squarespace-server/library_scripts.sh b/src/squarespace-server/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/squarespace-server/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/sshoogr-sdkman/README.md b/src/sshoogr-sdkman/README.md deleted file mode 100644 index 007ff00a4..000000000 --- a/src/sshoogr-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# Sshoogr (via SDKMAN) (sshoogr-sdkman) - -Sshoogr is a Groovy based DSL and command line tool for working with remote -servers through SSH. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sshoogr-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/sshoogr-sdkman/devcontainer-feature.json b/src/sshoogr-sdkman/devcontainer-feature.json deleted file mode 100644 index 20e6a76e6..000000000 --- a/src/sshoogr-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "sshoogr-sdkman", - "version": "2.0.16", - "name": "Sshoogr (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/sshoogr-sdkman", - "description": "Sshoogr is a Groovy based DSL and command line tool for working with remote\nservers through SSH.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/sshoogr-sdkman/install.sh b/src/sshoogr-sdkman/install.sh deleted file mode 100755 index 6b3e3a0a8..000000000 --- a/src/sshoogr-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='sshoogr' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/sshoogr-sdkman/library_scripts.sh b/src/sshoogr-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/sshoogr-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/starship-homebrew/README.md b/src/starship-homebrew/README.md deleted file mode 100644 index 28c62ae48..000000000 --- a/src/starship-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Starship (via Homebrew) (starship-homebrew) - -Starship is fast and highly customizable cross-shell prompt that can display contextual information. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/starship-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/starship-homebrew/devcontainer-feature.json b/src/starship-homebrew/devcontainer-feature.json deleted file mode 100644 index 4d5f86d58..000000000 --- a/src/starship-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "starship-homebrew", - "version": "1.0.20", - "name": "Starship (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/starship-homebrew", - "description": "Starship is fast and highly customizable cross-shell prompt that can display contextual information.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/starship-homebrew/install.sh b/src/starship-homebrew/install.sh deleted file mode 100755 index 7b2270fca..000000000 --- a/src/starship-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='starship' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/starship-homebrew/library_scripts.sh b/src/starship-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/starship-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/starship/README.md b/src/starship/README.md deleted file mode 100644 index 9ecc4d65a..000000000 --- a/src/starship/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Starship (via Github Releases) (starship) - -Starship is fast and highly customizable cross-shell prompt that can display contextual information. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/starship:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/starship/devcontainer-feature.json b/src/starship/devcontainer-feature.json deleted file mode 100644 index 9bc35bd6e..000000000 --- a/src/starship/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "starship", - "version": "1.0.9", - "name": "Starship (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/starship", - "description": "Starship is fast and highly customizable cross-shell prompt that can display contextual information.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/starship/install.sh b/src/starship/install.sh deleted file mode 100755 index 7c3d53b9a..000000000 --- a/src/starship/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='starship/starship' --option binaryNames='starship' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/starship/library_scripts.sh b/src/starship/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/starship/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/statsd-exporter/README.md b/src/statsd-exporter/README.md deleted file mode 100644 index 40dc3129d..000000000 --- a/src/statsd-exporter/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Prometheus StatsD Exporter (via Github Releases) (statsd-exporter) - -The StatsD exporter is a drop-in replacement for StatsD. This exporter translates StatsD metrics to Prometheus metrics via configured mapping rules. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/statsd-exporter:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/statsd-exporter/devcontainer-feature.json b/src/statsd-exporter/devcontainer-feature.json deleted file mode 100644 index 62e25f3be..000000000 --- a/src/statsd-exporter/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "statsd-exporter", - "version": "1.0.2", - "name": "Prometheus StatsD Exporter (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/statsd-exporter", - "description": "The StatsD exporter is a drop-in replacement for StatsD. This exporter translates StatsD metrics to Prometheus metrics via configured mapping rules.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/statsd-exporter/install.sh b/src/statsd-exporter/install.sh deleted file mode 100755 index e80f781ab..000000000 --- a/src/statsd-exporter/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='prometheus/statsd_exporter' --option binaryNames='statsd_exporter' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/statsd-exporter/library_scripts.sh b/src/statsd-exporter/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/statsd-exporter/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/stew/README.md b/src/stew/README.md deleted file mode 100644 index af12524b5..000000000 --- a/src/stew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# stew (via Github Releases) (stew) - -stew is an independent package manager for compiled binaries. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/stew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/stew/devcontainer-feature.json b/src/stew/devcontainer-feature.json deleted file mode 100644 index dadbc0506..000000000 --- a/src/stew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "stew", - "version": "1.0.14", - "name": "stew (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/stew", - "description": "stew is an independent package manager for compiled binaries.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/stew/install.sh b/src/stew/install.sh deleted file mode 100755 index b2606ca9e..000000000 --- a/src/stew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='marwanhawari/stew' --option binaryNames='stew' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/stew/library_scripts.sh b/src/stew/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/stew/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/supabase-cli/README.md b/src/supabase-cli/README.md deleted file mode 100644 index b6211d0b6..000000000 --- a/src/supabase-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Supabase CLI (via Github Releases) (supabase-cli) - -The Supabase CLI provides tools to develop your project locally and deploy to the Supabase Platform. You can also use the CLI to manage your Supabase projects, handle database migrations and CI/CD workflows, and generate types directly from your database schema. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/supabase-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/supabase-cli/devcontainer-feature.json b/src/supabase-cli/devcontainer-feature.json deleted file mode 100644 index 1d5cbd20a..000000000 --- a/src/supabase-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "supabase-cli", - "version": "1.0.6", - "name": "Supabase CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/supabase-cli", - "description": "The Supabase CLI provides tools to develop your project locally and deploy to the Supabase Platform. You can also use the CLI to manage your Supabase projects, handle database migrations and CI/CD workflows, and generate types directly from your database schema.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/supabase-cli/install.sh b/src/supabase-cli/install.sh deleted file mode 100755 index 3ce2af754..000000000 --- a/src/supabase-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='supabase/cli' --option binaryNames='supabase' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/supabase-cli/library_scripts.sh b/src/supabase-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/supabase-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/surge-cli/README.md b/src/surge-cli/README.md deleted file mode 100644 index 005ff7086..000000000 --- a/src/surge-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Surge CLI (via npm) (surge-cli) - -Publish HTML, CSS, and JS for free, without leaving the command line. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/surge-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/surge-cli/devcontainer-feature.json b/src/surge-cli/devcontainer-feature.json deleted file mode 100644 index de609d72a..000000000 --- a/src/surge-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "surge-cli", - "version": "1.0.2", - "name": "Surge CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/surge-cli", - "description": "Publish HTML, CSS, and JS for free, without leaving the command line.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/surge-cli/install.sh b/src/surge-cli/install.sh deleted file mode 100755 index 209c92534..000000000 --- a/src/surge-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='surge' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/surge-cli/library_scripts.sh b/src/surge-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/surge-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/sv2v/README.md b/src/sv2v/README.md deleted file mode 100644 index dfd7a2acd..000000000 --- a/src/sv2v/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# sv2v (SystemVerilog to Verilog) (via Github Releases) (sv2v) - -sv2v converts SystemVerilog (IEEE 1800-2017) to Verilog (IEEE 1364-2005), with an emphasis on supporting synthesizable language constructs. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sv2v:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/sv2v/devcontainer-feature.json b/src/sv2v/devcontainer-feature.json deleted file mode 100644 index c308b321c..000000000 --- a/src/sv2v/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "sv2v", - "version": "1.0.14", - "name": "sv2v (SystemVerilog to Verilog) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/sv2v", - "description": "sv2v converts SystemVerilog (IEEE 1800-2017) to Verilog (IEEE 1364-2005), with an emphasis on supporting synthesizable language constructs.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/sv2v/install.sh b/src/sv2v/install.sh deleted file mode 100755 index 3f2dd6457..000000000 --- a/src/sv2v/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='zachjs/sv2v' --option binaryNames='sv2v' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/sv2v/library_scripts.sh b/src/sv2v/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/sv2v/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/svu-asdf/README.md b/src/svu-asdf/README.md deleted file mode 100644 index d735237a5..000000000 --- a/src/svu-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# svu (via asdf) (svu-asdf) - -svu is a tool to manage semantic versions at ease. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/svu-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/svu-asdf/devcontainer-feature.json b/src/svu-asdf/devcontainer-feature.json deleted file mode 100644 index 806d85d2b..000000000 --- a/src/svu-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "svu-asdf", - "version": "2.0.15", - "name": "svu (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/svu-asdf", - "description": "svu is a tool to manage semantic versions at ease.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/svu-asdf/install.sh b/src/svu-asdf/install.sh deleted file mode 100755 index f7a450a7e..000000000 --- a/src/svu-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='svu' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/svu-asdf/library_scripts.sh b/src/svu-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/svu-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/syft/README.md b/src/syft/README.md deleted file mode 100644 index ef7ec5770..000000000 --- a/src/syft/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Syft (via Github Releases) (syft) - -Syft is A CLI tool and Go library for generating a Software Bill of Materials (SBOM) from container images and filesystems. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/syft:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/syft/devcontainer-feature.json b/src/syft/devcontainer-feature.json deleted file mode 100644 index c3a429345..000000000 --- a/src/syft/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "syft", - "version": "1.0.9", - "name": "Syft (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/syft", - "description": "Syft is A CLI tool and Go library for generating a Software Bill of Materials (SBOM) from container images and filesystems.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/syft/install.sh b/src/syft/install.sh deleted file mode 100755 index 483968ac5..000000000 --- a/src/syft/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='anchore/syft' --option binaryNames='syft' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/syft/library_scripts.sh b/src/syft/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/syft/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/syntaqx-serve/README.md b/src/syntaqx-serve/README.md deleted file mode 100644 index 566d872a3..000000000 --- a/src/syntaqx-serve/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# serve (by syntaqx) (via Github Releases) (syntaqx-serve) - -serve is a static http server anywhere you need one. It's basically python -m SimpleHTTPServer 8080 written in Go, because who can remember that many letters? - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/syntaqx-serve:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/syntaqx-serve/devcontainer-feature.json b/src/syntaqx-serve/devcontainer-feature.json deleted file mode 100644 index 8296bb6de..000000000 --- a/src/syntaqx-serve/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "syntaqx-serve", - "version": "1.0.6", - "name": "serve (by syntaqx) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/syntaqx-cli", - "description": "serve is a static http server anywhere you need one. It's basically python -m SimpleHTTPServer 8080 written in Go, because who can remember that many letters?", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/syntaqx-serve/install.sh b/src/syntaqx-serve/install.sh deleted file mode 100755 index e0ea525dd..000000000 --- a/src/syntaqx-serve/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='syntaqx/serve' --option binaryNames='serve' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/syntaqx-serve/library_scripts.sh b/src/syntaqx-serve/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/syntaqx-serve/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/tailscale/README.md b/src/tailscale/README.md deleted file mode 100644 index 7d3a05875..000000000 --- a/src/tailscale/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Tailscale (via tailscale.com) (tailscale) - -Tailscale is a VPN service that makes the devices and applications you own accessible anywhere in the world, securely and effortlessly. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tailscale:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tailscale/devcontainer-feature.json b/src/tailscale/devcontainer-feature.json deleted file mode 100644 index f05fdb30d..000000000 --- a/src/tailscale/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "tailscale", - "version": "1.0.11", - "name": "Tailscale (via tailscale.com)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tailscale", - "description": "Tailscale is a VPN service that makes the devices and applications you own accessible anywhere in the world, securely and effortlessly.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/curl-apt-get" - ] -} \ No newline at end of file diff --git a/src/tailscale/install.sh b/src/tailscale/install.sh deleted file mode 100755 index d0fbc929d..000000000 --- a/src/tailscale/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/curl-apt-get:1.0.16" - - - -curl -fsSL https://tailscale.com/install.sh | sh - diff --git a/src/tailscale/library_scripts.sh b/src/tailscale/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/tailscale/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/talosctl/README.md b/src/talosctl/README.md deleted file mode 100644 index 9d04e0297..000000000 --- a/src/talosctl/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# talosctl (via Github Releases) - -A CLI tool that interfaces with the [Talos Linux](https://www.talos.dev) API. - -## Example DevContainer Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/talosctl:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | diff --git a/src/talosctl/devcontainer-feature.json b/src/talosctl/devcontainer-feature.json deleted file mode 100644 index 25d9c6134..000000000 --- a/src/talosctl/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "talosctl", - "version": "1.0.0", - "name": "talosctl (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/talosctl", - "description": "A CLI tool that interfaces with the Talos Linux API.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/talosctl/install.sh b/src/talosctl/install.sh deleted file mode 100644 index 70de85293..000000000 --- a/src/talosctl/install.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.6" - -# Example nanolayer installation via devcontainer-feature -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1" \ - --option repo='siderolabs/talos' --option binaryNames='talosctl' --option version="$VERSION" --option releaseTagRegex='^(?!.*(alpha|beta)).*$' - -echo 'Done!' diff --git a/src/talosctl/library_scripts.sh b/src/talosctl/library_scripts.sh deleted file mode 100644 index f6d0760d7..000000000 --- a/src/talosctl/library_scripts.sh +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/env bash - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ]; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ]; then - if [ -x "/usr/bin/apt-get" ]; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ]; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ]; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up() { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - if [ -x "/sbin/apk" ]; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} diff --git a/src/taxi-sdkman/README.md b/src/taxi-sdkman/README.md deleted file mode 100644 index eb68c5b5f..000000000 --- a/src/taxi-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Taxi (via SDKMAN) (taxi-sdkman) - -Taxi is a language for documenting data - such as data models - and the -contracts of APIs. It describes data semantically, allowing powerful tooling to -discover and map data based on it's meaning, rather than the name of a field. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/taxi-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/taxi-sdkman/devcontainer-feature.json b/src/taxi-sdkman/devcontainer-feature.json deleted file mode 100644 index 3fa957ce9..000000000 --- a/src/taxi-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "taxi-sdkman", - "version": "2.0.16", - "name": "Taxi (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/taxi-sdkman", - "description": "Taxi is a language for documenting data - such as data models - and the\ncontracts of APIs. It describes data semantically, allowing powerful tooling to\ndiscover and map data based on it's meaning, rather than the name of a field.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/taxi-sdkman/install.sh b/src/taxi-sdkman/install.sh deleted file mode 100755 index 8f37f41dc..000000000 --- a/src/taxi-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='taxi' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/taxi-sdkman/library_scripts.sh b/src/taxi-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/taxi-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/tea/README.md b/src/tea/README.md deleted file mode 100644 index da17b3dbc..000000000 --- a/src/tea/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tea (via Github Releases) (tea) - -tea is the next-generation, cross-platform package manager from the creator of brew. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tea:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tea/devcontainer-feature.json b/src/tea/devcontainer-feature.json deleted file mode 100644 index 20b540e6b..000000000 --- a/src/tea/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "tea", - "version": "1.0.9", - "name": "tea (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tea", - "description": "tea is the next-generation, cross-platform package manager from the creator of brew.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/tea/install.sh b/src/tea/install.sh deleted file mode 100755 index bc546d0c5..000000000 --- a/src/tea/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='teaxyz/cli' --option binaryNames='tea' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/tea/library_scripts.sh b/src/tea/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/tea/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/tekton-cli/README.md b/src/tekton-cli/README.md deleted file mode 100644 index 086d03fac..000000000 --- a/src/tekton-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Tekton CLI (via Github Releases) (tekton-cli) - -The Tekton Pipelines CLI project provides a command-line interface (CLI) for interacting with Tekton, an open-source framework for Continuous Integration and Delivery (CI/CD) systems. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tekton-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tekton-cli/devcontainer-feature.json b/src/tekton-cli/devcontainer-feature.json deleted file mode 100644 index 6f42934d4..000000000 --- a/src/tekton-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "tekton-cli", - "version": "1.0.7", - "name": "Tekton CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tekton-cli", - "description": "The Tekton Pipelines CLI project provides a command-line interface (CLI) for interacting with Tekton, an open-source framework for Continuous Integration and Delivery (CI/CD) systems.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/tekton-cli/install.sh b/src/tekton-cli/install.sh deleted file mode 100755 index 582e820c5..000000000 --- a/src/tekton-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='tektoncd/cli' --option binaryNames='tkn' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/tekton-cli/library_scripts.sh b/src/tekton-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/tekton-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/tempo/README.md b/src/tempo/README.md deleted file mode 100644 index 6cd5c042b..000000000 --- a/src/tempo/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Grafana Tempo (via Github Releases) (tempo) - -Grafana Tempo is an open source, easy-to-use and high-scale distributed tracing backend. Tempo is cost-efficient, requiring only object storage to operate, and is deeply integrated with Grafana, Prometheus, and Loki. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tempo:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tempo/devcontainer-feature.json b/src/tempo/devcontainer-feature.json deleted file mode 100644 index b94f39276..000000000 --- a/src/tempo/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "tempo", - "version": "1.0.7", - "name": "Grafana Tempo (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tempo", - "description": "Grafana Tempo is an open source, easy-to-use and high-scale distributed tracing backend. Tempo is cost-efficient, requiring only object storage to operate, and is deeply integrated with Grafana, Prometheus, and Loki.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/tempo/install.sh b/src/tempo/install.sh deleted file mode 100755 index c376f8a27..000000000 --- a/src/tempo/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='grafana/tempo' --option binaryNames='tempo,tempo-cli,tempo-query' --option version="$VERSION" --option libName='tempo' - - - -echo 'Done!' - diff --git a/src/tempo/library_scripts.sh b/src/tempo/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/tempo/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/temporal-cli/README.md b/src/temporal-cli/README.md deleted file mode 100644 index f038b3fdd..000000000 --- a/src/temporal-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Temporal CLI (via Github Releases) (temporal-cli) - -Temporal CLI is a Command-line interface for running Temporal Server and interacting with Workflows, Activities, Namespaces, and other parts of Temporal. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/temporal-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/temporal-cli/devcontainer-feature.json b/src/temporal-cli/devcontainer-feature.json deleted file mode 100644 index f9fe093a6..000000000 --- a/src/temporal-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "temporal-cli", - "version": "1.0.6", - "name": "Temporal CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/temporal-cli", - "description": "Temporal CLI is a Command-line interface for running Temporal Server and interacting with Workflows, Activities, Namespaces, and other parts of Temporal.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/temporal-cli/install.sh b/src/temporal-cli/install.sh deleted file mode 100755 index 088f63594..000000000 --- a/src/temporal-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='temporalio/cli' --option binaryNames='temporal' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/temporal-cli/library_scripts.sh b/src/temporal-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/temporal-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/terracognita/README.md b/src/terracognita/README.md deleted file mode 100644 index 3f52b8a67..000000000 --- a/src/terracognita/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# TerraCognita (via Github Releases) (terracognita) - -TerraCognita is open-source software that quickly and automatically creates Terraform from all of your manually-provisioned resources. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/terracognita:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/terracognita/devcontainer-feature.json b/src/terracognita/devcontainer-feature.json deleted file mode 100644 index 3efea51e1..000000000 --- a/src/terracognita/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "terracognita", - "version": "1.0.5", - "name": "TerraCognita (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/terracognita", - "description": "TerraCognita is open-source software that quickly and automatically creates Terraform from all of your manually-provisioned resources.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/terracognita/install.sh b/src/terracognita/install.sh deleted file mode 100755 index 8b94b69d6..000000000 --- a/src/terracognita/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='cycloidio/terracognita' --option binaryNames='terracognita' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/terracognita/library_scripts.sh b/src/terracognita/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/terracognita/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/terraform-asdf/README.md b/src/terraform-asdf/README.md deleted file mode 100644 index f749b9fb3..000000000 --- a/src/terraform-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Terraform (via asdf) (terraform-asdf) - -Terraform is an open-source infrastructure as code software tool that enables you to safely and predictably create, change, and improve infrastructure. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/terraform-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/terraform-asdf/devcontainer-feature.json b/src/terraform-asdf/devcontainer-feature.json deleted file mode 100644 index f7e24ec45..000000000 --- a/src/terraform-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "terraform-asdf", - "version": "2.0.15", - "name": "Terraform (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/terraform-asdf", - "description": "Terraform is an open-source infrastructure as code software tool that enables you to safely and predictably create, change, and improve infrastructure.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/terraform-asdf/install.sh b/src/terraform-asdf/install.sh deleted file mode 100755 index 404e13c46..000000000 --- a/src/terraform-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='terraform' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/terraform-asdf/library_scripts.sh b/src/terraform-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/terraform-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/terraform-docs/README.md b/src/terraform-docs/README.md deleted file mode 100644 index 93ebddf6d..000000000 --- a/src/terraform-docs/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# terraform-docs (via Github Releases) (terraform-docs) - -terraform-docs is a utility to generate documentation from Terraform modules in various output formats. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/terraform-docs:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/terraform-docs/devcontainer-feature.json b/src/terraform-docs/devcontainer-feature.json deleted file mode 100644 index 82442cf79..000000000 --- a/src/terraform-docs/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "terraform-docs", - "version": "1.0.5", - "name": "terraform-docs (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/terraform-docs", - "description": "terraform-docs is a utility to generate documentation from Terraform modules in various output formats.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/terraform-docs/install.sh b/src/terraform-docs/install.sh deleted file mode 100755 index 50ef9e2fd..000000000 --- a/src/terraform-docs/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='terraform-docs/terraform-docs' --option binaryNames='terraform-docs' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/terraform-docs/library_scripts.sh b/src/terraform-docs/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/terraform-docs/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/terraform-ls-asdf/README.md b/src/terraform-ls-asdf/README.md deleted file mode 100644 index b45d4c084..000000000 --- a/src/terraform-ls-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Terraform Language Server (terraform-ls) (via asdf) (terraform-ls-asdf) - -The official Terraform language server (terraform-ls) maintained by HashiCorp provides IDE features to any LSP-compatible editor. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/terraform-ls-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Terraform Language Server (terraform-ls) to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/terraform-ls-asdf/devcontainer-feature.json b/src/terraform-ls-asdf/devcontainer-feature.json deleted file mode 100644 index fc4990eb3..000000000 --- a/src/terraform-ls-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "terraform-ls-asdf", - "version": "2.0.15", - "name": "Terraform Language Server (terraform-ls) (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/terraform-ls-asdf", - "description": "The official Terraform language server (terraform-ls) maintained by HashiCorp provides IDE features to any LSP-compatible editor.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Terraform Language Server (terraform-ls) to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/terraform-ls-asdf/install.sh b/src/terraform-ls-asdf/install.sh deleted file mode 100755 index 1da978c50..000000000 --- a/src/terraform-ls-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='terraform-ls' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/terraform-ls-asdf/library_scripts.sh b/src/terraform-ls-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/terraform-ls-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/terraformer/README.md b/src/terraformer/README.md deleted file mode 100644 index 10bcffbdd..000000000 --- a/src/terraformer/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Terraformer (via Github Releases) (terraformer) - -Terraformer is a CLI tool to generate terraform files from existing infrastructure (reverse Terraform). - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/terraformer:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/terraformer/devcontainer-feature.json b/src/terraformer/devcontainer-feature.json deleted file mode 100644 index 51683045c..000000000 --- a/src/terraformer/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "terraformer", - "version": "1.0.5", - "name": "Terraformer (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/terraformer", - "description": "Terraformer is a CLI tool to generate terraform files from existing infrastructure (reverse Terraform).", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/terraformer/install.sh b/src/terraformer/install.sh deleted file mode 100755 index 34a2e33bd..000000000 --- a/src/terraformer/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='GoogleCloudPlatform/terraformer' --option binaryNames='terraformer' --option version="$VERSION" --option assetRegex='.*(all).*' - - - -echo 'Done!' - diff --git a/src/terraformer/library_scripts.sh b/src/terraformer/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/terraformer/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/terragrunt/README.md b/src/terragrunt/README.md deleted file mode 100644 index 266189784..000000000 --- a/src/terragrunt/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Terragrunt (via Github Releases) (terragrunt) - -Terragrunt is a thin wrapper that provides extra tools for keeping your configurations DRY, working with multiple Terraform modules, and managing remote state. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/terragrunt:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/terragrunt/devcontainer-feature.json b/src/terragrunt/devcontainer-feature.json deleted file mode 100644 index a1fe76264..000000000 --- a/src/terragrunt/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "terragrunt", - "version": "1.0.14", - "name": "Terragrunt (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/terragrunt", - "description": "Terragrunt is a thin wrapper that provides extra tools for keeping your configurations DRY, working with multiple Terraform modules, and managing remote state.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/terragrunt/install.sh b/src/terragrunt/install.sh deleted file mode 100755 index 115b5969e..000000000 --- a/src/terragrunt/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='gruntwork-io/terragrunt' --option binaryNames='terragrunt' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/terragrunt/library_scripts.sh b/src/terragrunt/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/terragrunt/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/terramate/README.md b/src/terramate/README.md deleted file mode 100644 index 6303b69a5..000000000 --- a/src/terramate/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Terramate (via Github Releases) (terramate) - -Terramate adds powerful capabilities such as code generation, stacks, orchestration, change detection, data sharing and more to Terraform. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/terramate:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/terramate/devcontainer-feature.json b/src/terramate/devcontainer-feature.json deleted file mode 100644 index 30dac4a67..000000000 --- a/src/terramate/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "terramate", - "version": "1.0.5", - "name": "Terramate (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/terramate", - "description": "Terramate adds powerful capabilities such as code generation, stacks, orchestration, change detection, data sharing and more to Terraform.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/terramate/install.sh b/src/terramate/install.sh deleted file mode 100755 index eb370c113..000000000 --- a/src/terramate/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='mineiros-io/terramate' --option binaryNames='terramate' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/terramate/library_scripts.sh b/src/terramate/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/terramate/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/terrascan/README.md b/src/terrascan/README.md deleted file mode 100644 index f46251a44..000000000 --- a/src/terrascan/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# terrascan (via Github Releases) (terrascan) - -Terrascan is a static code analyzer for Infrastructure as Code. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/terrascan:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version you would like to install | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/terrascan/devcontainer-feature.json b/src/terrascan/devcontainer-feature.json deleted file mode 100644 index 475c541cf..000000000 --- a/src/terrascan/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "terrascan (via Github Releases)", - "id": "terrascan", - "version": "1.0.1", - "description": "Terrascan is a static code analyzer for Infrastructure as Code.", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/terrascan", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "1.17.1" - ], - "default": "latest", - "description": "Select the version you would like to install" - } - } -} \ No newline at end of file diff --git a/src/terrascan/install.sh b/src/terrascan/install.sh deleted file mode 100755 index 5a8f2cdf7..000000000 --- a/src/terrascan/install.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env bash - -TERRASCAN_VERSION="${VERSION:-"latest"}" - -set -ex - -# Clean up -rm -rf /var/lib/apt/lists/* - -architecture="$(uname -m)" -case ${architecture} in -x86_64) architecture="x86_64" ;; -aarch64 | armv8*) architecture="arm64" ;; -aarch32 | armv7* | armvhf*) architecture="arm" ;; -i?86) architecture="i386" ;; -*) - echo "(!) Architecture ${architecture} unsupported" - exit 1 - ;; -esac - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# Figure out correct version of a three part version number is not passed -find_version_from_git_tags() { - local variable_name=$1 - local requested_version=${!variable_name} - if [ "${requested_version}" = "none" ]; then return; fi - local repository=$2 - local prefix=${3:-"tags/v"} - local separator=${4:-"."} - local last_part_optional=${5:-"false"} - if [ "$(echo "${requested_version}" | grep -o "." | wc -l)" != "2" ]; then - local escaped_separator=${separator//./\\.} - local last_part - if [ "${last_part_optional}" = "true" ]; then - last_part="(${escaped_separator}[0-9]+)?" - else - last_part="${escaped_separator}[0-9]+" - fi - local regex="${prefix}\\K[0-9]+${escaped_separator}[0-9]+${last_part}$" - local version_list="$(git ls-remote --tags ${repository} | grep -oP "${regex}" | tr -d ' ' | tr "${separator}" "." | sort -rV)" - if [ "${requested_version}" = "latest" ] || [ "${requested_version}" = "current" ] || [ "${requested_version}" = "lts" ]; then - declare -g ${variable_name}="$(echo "${version_list}" | head -n 1)" - else - set +e - declare -g ${variable_name}="$(echo "${version_list}" | grep -E -m 1 "^${requested_version//./\\.}([\\.\\s]|$)")" - set -e - fi - fi - if [ -z "${!variable_name}" ] || ! echo "${version_list}" | grep "^${!variable_name//./\\.}$" >/dev/null 2>&1; then - echo -e "Invalid ${variable_name} value: ${requested_version}\nValid values:\n${version_list}" >&2 - exit 1 - fi - echo "${variable_name}=${!variable_name}" -} - -# make sure we have curl, tar -check_packages ca-certificates curl tar - -# make sure version is available -find_version_from_git_tags TERRASCAN_VERSION 'https://github.com/tenable/terrascan' - -# download binary -TERRASCAN_FILENAME=terrascan_${TERRASCAN_VERSION}_Linux_${architecture}.tar.gz - -curl -sSL https://github.com/tenable/terrascan/releases/download/v${TERRASCAN_VERSION}/${TERRASCAN_FILENAME} -o "${TERRASCAN_FILENAME}" - -# untar -tar xf ./"${TERRASCAN_FILENAME}" terrascan && rm ./"${TERRASCAN_FILENAME}" - -# Make binary executable -chmod +x ./terrascan - -mv ./terrascan /usr/local/bin/terrascan - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/tfc-agent-asdf/README.md b/src/tfc-agent-asdf/README.md deleted file mode 100644 index 5e6e0cfe8..000000000 --- a/src/tfc-agent-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tfc-agent (via asdf) (tfc-agent-asdf) - -Installs tfc-agent - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tfc-agent-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of tfc-agent to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tfc-agent-asdf/devcontainer-feature.json b/src/tfc-agent-asdf/devcontainer-feature.json deleted file mode 100644 index 662d77bc8..000000000 --- a/src/tfc-agent-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "tfc-agent-asdf", - "version": "2.0.15", - "name": "tfc-agent (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tfc-agent-asdf", - "description": "Installs tfc-agent", - "options": { - "version": { - "default": "latest", - "description": "Select the version of tfc-agent to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/tfc-agent-asdf/install.sh b/src/tfc-agent-asdf/install.sh deleted file mode 100755 index e9c7f93e9..000000000 --- a/src/tfc-agent-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='tfc-agent' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/tfc-agent-asdf/library_scripts.sh b/src/tfc-agent-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/tfc-agent-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/tfenv-homebrew/README.md b/src/tfenv-homebrew/README.md deleted file mode 100644 index a9de652c8..000000000 --- a/src/tfenv-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tfenv (via Homebrew) (tfenv-homebrew) - -tfenv is an open-source Terraform version manager tool. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tfenv-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tfenv-homebrew/devcontainer-feature.json b/src/tfenv-homebrew/devcontainer-feature.json deleted file mode 100644 index 54f7d6189..000000000 --- a/src/tfenv-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "tfenv-homebrew", - "version": "1.0.15", - "name": "tfenv (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tfenv-homebrew", - "description": "tfenv is an open-source Terraform version manager tool.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/tfenv-homebrew/install.sh b/src/tfenv-homebrew/install.sh deleted file mode 100755 index 4e751767d..000000000 --- a/src/tfenv-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='tfenv' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/tfenv-homebrew/library_scripts.sh b/src/tfenv-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/tfenv-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/tfsec/README.md b/src/tfsec/README.md deleted file mode 100644 index 515d56aba..000000000 --- a/src/tfsec/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tfsec (via Github Releases) (tfsec) - -tfsec is a static analysis security scanner for your Terraform code. Designed to run locally and in your CI pipelines, developer-friendly output and fully documented checks mean detection and remediation can take place as quickly and efficiently as possible - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tfsec:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tfsec/devcontainer-feature.json b/src/tfsec/devcontainer-feature.json deleted file mode 100644 index 437785343..000000000 --- a/src/tfsec/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "tfsec", - "version": "1.0.5", - "name": "tfsec (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tfsec", - "description": "tfsec is a static analysis security scanner for your Terraform code. Designed to run locally and in your CI pipelines, developer-friendly output and fully documented checks mean detection and remediation can take place as quickly and efficiently as possible", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/tfsec/install.sh b/src/tfsec/install.sh deleted file mode 100755 index 8317bb0dc..000000000 --- a/src/tfsec/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='aquasecurity/tfsec' --option binaryNames='tfsec' --option version="$VERSION" --option assetRegex='^(?!.*(checkgen|tar))' - - - -echo 'Done!' - diff --git a/src/tfsec/library_scripts.sh b/src/tfsec/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/tfsec/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/tfswitch/README.md b/src/tfswitch/README.md deleted file mode 100644 index 392c64d6a..000000000 --- a/src/tfswitch/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Terraform Switcher (tfswitch) (via warrensbox/terraform-switcher) (tfswitch) - -The tfswitch command line tool lets you switch between different versions of terraform. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tfswitch:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tfswitch/devcontainer-feature.json b/src/tfswitch/devcontainer-feature.json deleted file mode 100644 index a81f149a1..000000000 --- a/src/tfswitch/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "tfswitch", - "version": "1.0.10", - "name": "Terraform Switcher (tfswitch) (via warrensbox/terraform-switcher)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tfswitch", - "description": "The tfswitch command line tool lets you switch between different versions of terraform.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/curl-apt-get" - ] -} \ No newline at end of file diff --git a/src/tfswitch/install.sh b/src/tfswitch/install.sh deleted file mode 100755 index 474e4a54a..000000000 --- a/src/tfswitch/install.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/curl-apt-get:1.0.16" - -curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/release/install.sh | bash diff --git a/src/tfswitch/library_scripts.sh b/src/tfswitch/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/tfswitch/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/tldr/README.md b/src/tldr/README.md deleted file mode 100644 index a0a979b29..000000000 --- a/src/tldr/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tldr (via npm) (tldr) - -The tldr pages are a community effort to simplify the beloved man pages with practical examples. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tldr:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tldr/devcontainer-feature.json b/src/tldr/devcontainer-feature.json deleted file mode 100644 index 72e6b5bdd..000000000 --- a/src/tldr/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "tldr", - "version": "2.0.15", - "name": "tldr (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tldr", - "description": "The tldr pages are a community effort to simplify the beloved man pages with practical examples.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/tldr/install.sh b/src/tldr/install.sh deleted file mode 100755 index f3755d1b9..000000000 --- a/src/tldr/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='tldr' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/tldr/library_scripts.sh b/src/tldr/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/tldr/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/tmate/README.md b/src/tmate/README.md deleted file mode 100644 index 349c391e5..000000000 --- a/src/tmate/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tmate (via apt-get) (tmate) - -tmate is a terminal multiplexer with instant terminal sharing. It enables a number of terminals to be created, accessed, and controlled from a single screen and be shared with another mates. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tmate:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tmate/devcontainer-feature.json b/src/tmate/devcontainer-feature.json deleted file mode 100644 index 2add1e47f..000000000 --- a/src/tmate/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "tmate", - "version": "1.0.6", - "name": "tmate (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tmate", - "description": "tmate is a terminal multiplexer with instant terminal sharing. It enables a number of terminals to be created, accessed, and controlled from a single screen and be shared with another mates.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/tmate/install.sh b/src/tmate/install.sh deleted file mode 100755 index 61ef5fcf6..000000000 --- a/src/tmate/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='tmate' - - -echo 'Done!' - diff --git a/src/tmate/library_scripts.sh b/src/tmate/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/tmate/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/tmux-apt-get/README.md b/src/tmux-apt-get/README.md deleted file mode 100644 index 47026e4c5..000000000 --- a/src/tmux-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tmux (via apt-get) (tmux-apt-get) - -tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tmux-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tmux-apt-get/devcontainer-feature.json b/src/tmux-apt-get/devcontainer-feature.json deleted file mode 100644 index f3c1b2e4d..000000000 --- a/src/tmux-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "tmux-apt-get", - "version": "1.0.16", - "name": "tmux (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tmux-apt-get", - "description": "tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/tmux-apt-get/install.sh b/src/tmux-apt-get/install.sh deleted file mode 100755 index 3cd3bc56f..000000000 --- a/src/tmux-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='tmux' - - -echo 'Done!' - diff --git a/src/tmux-apt-get/library_scripts.sh b/src/tmux-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/tmux-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/tmux-homebrew/README.md b/src/tmux-homebrew/README.md deleted file mode 100644 index b6d29e70e..000000000 --- a/src/tmux-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tmux (via Homebrew) (tmux-homebrew) - -tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tmux-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tmux-homebrew/devcontainer-feature.json b/src/tmux-homebrew/devcontainer-feature.json deleted file mode 100644 index 519b8a849..000000000 --- a/src/tmux-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "tmux-homebrew", - "version": "1.0.20", - "name": "tmux (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tmux-homebrew", - "description": "tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/tmux-homebrew/install.sh b/src/tmux-homebrew/install.sh deleted file mode 100755 index 9a3a1f553..000000000 --- a/src/tmux-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='tmux' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/tmux-homebrew/library_scripts.sh b/src/tmux-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/tmux-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/tomcat-sdkman/README.md b/src/tomcat-sdkman/README.md deleted file mode 100644 index 114460e4d..000000000 --- a/src/tomcat-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# Apache Tomcat (via SDKMAN) (tomcat-sdkman) - -The Apache Tomcat software is an open source implementation of the Java -Servlet, JavaServer Pages, Java Expression Language and Java WebSocket -technologies. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tomcat-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Apache Tomcat to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tomcat-sdkman/devcontainer-feature.json b/src/tomcat-sdkman/devcontainer-feature.json deleted file mode 100644 index 6076815d9..000000000 --- a/src/tomcat-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "tomcat-sdkman", - "version": "2.0.16", - "name": "Apache Tomcat (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tomcat-sdkman", - "description": "The Apache Tomcat software is an open source implementation of the Java\nServlet, JavaServer Pages, Java Expression Language and Java WebSocket\ntechnologies.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Apache Tomcat to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/tomcat-sdkman/install.sh b/src/tomcat-sdkman/install.sh deleted file mode 100755 index 4ca10aed3..000000000 --- a/src/tomcat-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='tomcat' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/tomcat-sdkman/library_scripts.sh b/src/tomcat-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/tomcat-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/tooljet-cli/README.md b/src/tooljet-cli/README.md deleted file mode 100644 index b38ae7913..000000000 --- a/src/tooljet-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ToolJet CLI (via npm) (tooljet-cli) - -ToolJet is an open-source low-code framework to build and deploy internal tools quickly with minimal engineering effort. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tooljet-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tooljet-cli/devcontainer-feature.json b/src/tooljet-cli/devcontainer-feature.json deleted file mode 100644 index 4cf59ec30..000000000 --- a/src/tooljet-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "tooljet-cli", - "version": "1.0.2", - "name": "ToolJet CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tooljet-cli", - "description": "ToolJet is an open-source low-code framework to build and deploy internal tools quickly with minimal engineering effort.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/tooljet-cli/install.sh b/src/tooljet-cli/install.sh deleted file mode 100755 index 3bc79eea0..000000000 --- a/src/tooljet-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@tooljet/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/tooljet-cli/library_scripts.sh b/src/tooljet-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/tooljet-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/toolkit-sdkman/README.md b/src/toolkit-sdkman/README.md deleted file mode 100644 index 385a2c1a0..000000000 --- a/src/toolkit-sdkman/README.md +++ /dev/null @@ -1,27 +0,0 @@ - -# ToolKit (via SDKMAN) (toolkit-sdkman) - -Toolkit is a client command line tool that supports multiple IoT protocols like -MQTT and COAP. It provides a command line client tool for IoT development. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/toolkit-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/toolkit-sdkman/devcontainer-feature.json b/src/toolkit-sdkman/devcontainer-feature.json deleted file mode 100644 index e54d6cb0e..000000000 --- a/src/toolkit-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "id": "toolkit-sdkman", - "version": "2.0.16", - "name": "ToolKit (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/toolkit-sdkman", - "description": "Toolkit is a client command line tool that supports multiple IoT protocols like\nMQTT and COAP. It provides a command line client tool for IoT development.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/bash-command", - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/toolkit-sdkman/install.sh b/src/toolkit-sdkman/install.sh deleted file mode 100755 index cdb72817e..000000000 --- a/src/toolkit-sdkman/install.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='[[ "$(ldd --version | grep -Eoh '2\.[0-9]+$' | sed 's/2.//')" > "33" ]] && echo "gclib version is compatible" && exit 0 || echo "glibc version is lower than the minimum required (2.34). exiting" && exit 1' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='toolkit' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/toolkit-sdkman/library_scripts.sh b/src/toolkit-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/toolkit-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/tox/README.md b/src/tox/README.md deleted file mode 100644 index 3d79f55e7..000000000 --- a/src/tox/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tox (via pipx) (tox) - -tox is a generic virtual environment management and test command line tool. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tox:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tox/devcontainer-feature.json b/src/tox/devcontainer-feature.json deleted file mode 100644 index ba734237c..000000000 --- a/src/tox/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "tox", - "version": "2.0.17", - "name": "tox (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tox", - "description": "tox is a generic virtual environment management and test command line tool.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/tox/install.sh b/src/tox/install.sh deleted file mode 100755 index 6e25f8f12..000000000 --- a/src/tox/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='tox' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/tox/library_scripts.sh b/src/tox/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/tox/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/tridentctl-asdf/README.md b/src/tridentctl-asdf/README.md deleted file mode 100644 index 590523699..000000000 --- a/src/tridentctl-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tridentctl (via asdf) (tridentctl-asdf) - -Installs tridentctl - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tridentctl-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tridentctl-asdf/devcontainer-feature.json b/src/tridentctl-asdf/devcontainer-feature.json deleted file mode 100644 index 96248b958..000000000 --- a/src/tridentctl-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "tridentctl-asdf", - "version": "2.0.15", - "name": "tridentctl (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tridentctl-asdf", - "description": "Installs tridentctl", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/tridentctl-asdf/install.sh b/src/tridentctl-asdf/install.sh deleted file mode 100755 index bfee51e94..000000000 --- a/src/tridentctl-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='tridentctl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/tridentctl-asdf/library_scripts.sh b/src/tridentctl-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/tridentctl-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/truffle/README.md b/src/truffle/README.md deleted file mode 100644 index e8948f80e..000000000 --- a/src/truffle/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Truffle (via npm) (truffle) - -Truffle is a development environment, testing framework, and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/truffle:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/truffle/devcontainer-feature.json b/src/truffle/devcontainer-feature.json deleted file mode 100644 index 31b1f7e2b..000000000 --- a/src/truffle/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "truffle", - "version": "1.0.2", - "name": "Truffle (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/truffle", - "description": "Truffle is a development environment, testing framework, and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/truffle/install.sh b/src/truffle/install.sh deleted file mode 100755 index c62c0dd7c..000000000 --- a/src/truffle/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='truffle' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/truffle/library_scripts.sh b/src/truffle/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/truffle/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ts-node/README.md b/src/ts-node/README.md deleted file mode 100644 index 6dd6d435a..000000000 --- a/src/ts-node/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ts-node (via npm) (ts-node) - -ts-node is a TypeScript execution engine and REPL for Node.js. It JIT transforms TypeScript into JavaScript, enabling you to directly execute TypeScript on Node.js without precompiling. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ts-node:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ts-node/devcontainer-feature.json b/src/ts-node/devcontainer-feature.json deleted file mode 100644 index fa8726bd0..000000000 --- a/src/ts-node/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "ts-node", - "version": "1.0.1", - "name": "ts-node (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ts-node", - "description": "ts-node is a TypeScript execution engine and REPL for Node.js. It JIT transforms TypeScript into JavaScript, enabling you to directly execute TypeScript on Node.js without precompiling. ", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/ts-node/install.sh b/src/ts-node/install.sh deleted file mode 100755 index f0f629b8f..000000000 --- a/src/ts-node/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='ts-node' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/ts-node/library_scripts.sh b/src/ts-node/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/ts-node/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/tsx/README.md b/src/tsx/README.md deleted file mode 100644 index f1d8c2feb..000000000 --- a/src/tsx/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# tsx (via npm) (tsx) - -tsx is a CLI command (alternative to node) for seamlessly running TypeScript & ESM, in both commonjs & module package types. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tsx:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/tsx/devcontainer-feature.json b/src/tsx/devcontainer-feature.json deleted file mode 100644 index 447437f0f..000000000 --- a/src/tsx/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "tsx", - "version": "1.0.1", - "name": "tsx (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tsx", - "description": "tsx is a CLI command (alternative to node) for seamlessly running TypeScript & ESM, in both commonjs & module package types.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/tsx/install.sh b/src/tsx/install.sh deleted file mode 100755 index 0f85e0c00..000000000 --- a/src/tsx/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='tsx' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/tsx/library_scripts.sh b/src/tsx/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/tsx/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/turborepo-npm/README.md b/src/turborepo-npm/README.md deleted file mode 100644 index 462b352e2..000000000 --- a/src/turborepo-npm/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Turborepo (via npm) (turborepo-npm) - -Turborepo is a high-performance build system for JavaScript and TypeScript codebases. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/turborepo-npm:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/turborepo-npm/devcontainer-feature.json b/src/turborepo-npm/devcontainer-feature.json deleted file mode 100644 index 81e3fc83a..000000000 --- a/src/turborepo-npm/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "turborepo-npm", - "version": "1.0.11", - "name": "Turborepo (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/turborepo-npm", - "description": "Turborepo is a high-performance build system for JavaScript and TypeScript codebases.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/turborepo-npm/install.sh b/src/turborepo-npm/install.sh deleted file mode 100755 index f8adfb51b..000000000 --- a/src/turborepo-npm/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='turbo' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/turborepo-npm/library_scripts.sh b/src/turborepo-npm/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/turborepo-npm/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/twine/README.md b/src/twine/README.md deleted file mode 100644 index ec6d3763e..000000000 --- a/src/twine/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Twine (via pipx) (twine) - -Twine is a utility for publishing Python packages on PyPI. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/twine:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/twine/devcontainer-feature.json b/src/twine/devcontainer-feature.json deleted file mode 100644 index 10a59cce9..000000000 --- a/src/twine/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "twine", - "version": "2.0.17", - "name": "Twine (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/twine", - "description": "Twine is a utility for publishing Python packages on PyPI.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/twine/install.sh b/src/twine/install.sh deleted file mode 100755 index 41a32acb8..000000000 --- a/src/twine/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='twine' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/twine/library_scripts.sh b/src/twine/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/twine/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/typescript/README.md b/src/typescript/README.md deleted file mode 100644 index 4f502fc98..000000000 --- a/src/typescript/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# TypeScript (via npm) (typescript) - -TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/typescript:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/typescript/devcontainer-feature.json b/src/typescript/devcontainer-feature.json deleted file mode 100644 index 3d0ce281c..000000000 --- a/src/typescript/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "typescript", - "version": "2.0.15", - "name": "TypeScript (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/typescript", - "description": "TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/typescript/install.sh b/src/typescript/install.sh deleted file mode 100755 index 3ba646591..000000000 --- a/src/typescript/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='typescript' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/typescript/library_scripts.sh b/src/typescript/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/typescript/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/typst/README.md b/src/typst/README.md deleted file mode 100644 index d0dd34ec5..000000000 --- a/src/typst/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Typst (via Github Releases) (typst) - -Typst is a new markup-based typesetting system that is designed to be as powerful as LaTeX while being much easier to learn and use. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/typst:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/typst/devcontainer-feature.json b/src/typst/devcontainer-feature.json deleted file mode 100644 index 5183104f6..000000000 --- a/src/typst/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "typst", - "version": "1.0.5", - "name": "Typst (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/typst", - "description": "Typst is a new markup-based typesetting system that is designed to be as powerful as LaTeX while being much easier to learn and use.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/typst/install.sh b/src/typst/install.sh deleted file mode 100755 index a97a9e797..000000000 --- a/src/typst/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='typst/typst' --option binaryNames='typst' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/typst/library_scripts.sh b/src/typst/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/typst/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/ufmt/README.md b/src/ufmt/README.md deleted file mode 100644 index 43e280d0e..000000000 --- a/src/ufmt/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ufmt (via pipx) (ufmt) - -µfmt is a safe, atomic code formatter for Python built on top of black and µsort. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ufmt:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/ufmt/devcontainer-feature.json b/src/ufmt/devcontainer-feature.json deleted file mode 100644 index 5da98aa98..000000000 --- a/src/ufmt/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "ufmt", - "version": "1.0.1", - "name": "ufmt (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ufmt", - "description": "\u00b5fmt is a safe, atomic code formatter for Python built on top of black and \u00b5sort.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/ufmt/install.sh b/src/ufmt/install.sh deleted file mode 100755 index d6f7dbc5c..000000000 --- a/src/ufmt/install.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='ufmt' --option version="$VERSION" - -echo 'Done!' diff --git a/src/ufmt/library_scripts.sh b/src/ufmt/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/ufmt/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/upx/README.md b/src/upx/README.md deleted file mode 100644 index 0323ccdc1..000000000 --- a/src/upx/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# UPX (via Github Releases) (upx) - -UPX is a free, secure, portable, extendable, high-performance executable packer for several executable formats. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/upx:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/upx/devcontainer-feature.json b/src/upx/devcontainer-feature.json deleted file mode 100644 index 9daf49ba2..000000000 --- a/src/upx/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "upx", - "version": "1.0.14", - "name": "UPX (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/upx", - "description": "UPX is a free, secure, portable, extendable, high-performance executable packer for several executable formats.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/upx/install.sh b/src/upx/install.sh deleted file mode 100755 index f1158ef77..000000000 --- a/src/upx/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='upx/upx' --option binaryNames='upx' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/upx/library_scripts.sh b/src/upx/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/upx/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/vault-asdf/README.md b/src/vault-asdf/README.md deleted file mode 100644 index 582290ed2..000000000 --- a/src/vault-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Vault (via asdf) (vault-asdf) - -Vault secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets in modern computing. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vault-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vault-asdf/devcontainer-feature.json b/src/vault-asdf/devcontainer-feature.json deleted file mode 100644 index 07c3545cb..000000000 --- a/src/vault-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "vault-asdf", - "version": "2.0.15", - "name": "Vault (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vault-asdf", - "description": "Vault secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets in modern computing.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/vault-asdf/install.sh b/src/vault-asdf/install.sh deleted file mode 100755 index b9a3c3ba8..000000000 --- a/src/vault-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='vault' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/vault-asdf/library_scripts.sh b/src/vault-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/vault-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/vercel-cli/README.md b/src/vercel-cli/README.md deleted file mode 100644 index bc39b49c6..000000000 --- a/src/vercel-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Vercel CLI (via npm) (vercel-cli) - -With Vercel CLI command-line interface (CLI) you can interact with the Vercel platform using a terminal, or through an automated system, enabling you to retrieve logs, manage certificates, replicate your deployment environment locally, manage Domain Name System (DNS) records, and more. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vercel-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vercel-cli/devcontainer-feature.json b/src/vercel-cli/devcontainer-feature.json deleted file mode 100644 index 2cd8308e5..000000000 --- a/src/vercel-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "vercel-cli", - "version": "1.0.3", - "name": "Vercel CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vercel-cli", - "description": "With Vercel CLI command-line interface (CLI) you can interact with the Vercel platform using a terminal, or through an automated system, enabling you to retrieve logs, manage certificates, replicate your deployment environment locally, manage Domain Name System (DNS) records, and more.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/vercel-cli/install.sh b/src/vercel-cli/install.sh deleted file mode 100755 index e3ca6e6c1..000000000 --- a/src/vercel-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='vercel' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/vercel-cli/library_scripts.sh b/src/vercel-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/vercel-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/vercel-ncc/README.md b/src/vercel-ncc/README.md deleted file mode 100644 index 72cf66eb6..000000000 --- a/src/vercel-ncc/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ncc (by Vercel) (via npm) (vercel-ncc) - -ncc is a simple CLI for compiling a Node.js module into a single file, together with all its dependencies, gcc-style. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vercel-ncc:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vercel-ncc/devcontainer-feature.json b/src/vercel-ncc/devcontainer-feature.json deleted file mode 100644 index e41c0c43f..000000000 --- a/src/vercel-ncc/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "vercel-ncc", - "version": "1.0.3", - "name": "ncc (by Vercel) (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vercel-ncc", - "description": "ncc is a simple CLI for compiling a Node.js module into a single file, together with all its dependencies, gcc-style.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/vercel-ncc/install.sh b/src/vercel-ncc/install.sh deleted file mode 100755 index 8c42a2ce7..000000000 --- a/src/vercel-ncc/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@vercel/ncc' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/vercel-ncc/library_scripts.sh b/src/vercel-ncc/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/vercel-ncc/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/vercel-pkg/README.md b/src/vercel-pkg/README.md deleted file mode 100644 index 7cebd2d42..000000000 --- a/src/vercel-pkg/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# pkg (by Vercel) (via npm) (vercel-pkg) - -This command line interface enables you to package your Node.js project into an executable that can be run even on devices without Node.js installed. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vercel-pkg:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vercel-pkg/devcontainer-feature.json b/src/vercel-pkg/devcontainer-feature.json deleted file mode 100644 index 874522d04..000000000 --- a/src/vercel-pkg/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "vercel-pkg", - "version": "1.0.3", - "name": "pkg (by Vercel) (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vercel-pkg", - "description": "This command line interface enables you to package your Node.js project into an executable that can be run even on devices without Node.js installed.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/vercel-pkg/install.sh b/src/vercel-pkg/install.sh deleted file mode 100755 index cf67f8ecb..000000000 --- a/src/vercel-pkg/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='pkg' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/vercel-pkg/library_scripts.sh b/src/vercel-pkg/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/vercel-pkg/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/vercel-release/README.md b/src/vercel-release/README.md deleted file mode 100644 index 244c0b934..000000000 --- a/src/vercel-release/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Release (by Vercel) (via npm) (vercel-release) - -Release is a command line tool to automatically generate a new GitHub Release and populates it with the changes (commits) made since the last release. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vercel-release:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vercel-release/devcontainer-feature.json b/src/vercel-release/devcontainer-feature.json deleted file mode 100644 index 1aa99e7e3..000000000 --- a/src/vercel-release/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "vercel-release", - "version": "1.0.3", - "name": "Release (by Vercel) (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vercel-release", - "description": "Release is a command line tool to automatically generate a new GitHub Release and populates it with the changes (commits) made since the last release.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/vercel-release/install.sh b/src/vercel-release/install.sh deleted file mode 100755 index f821df83c..000000000 --- a/src/vercel-release/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='release' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/vercel-release/library_scripts.sh b/src/vercel-release/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/vercel-release/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/vercel-serve/README.md b/src/vercel-serve/README.md deleted file mode 100644 index 0bd9f0726..000000000 --- a/src/vercel-serve/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# serve (by Vercel) (via npm) (vercel-serve) - -serve helps you serve a static site, single page application or just a static file (no matter if on your device or on the local network). - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vercel-serve:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vercel-serve/devcontainer-feature.json b/src/vercel-serve/devcontainer-feature.json deleted file mode 100644 index 7b02e41a5..000000000 --- a/src/vercel-serve/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "vercel-serve", - "version": "1.0.3", - "name": "serve (by Vercel) (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vercel-serve", - "description": "serve helps you serve a static site, single page application or just a static file (no matter if on your device or on the local network).", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/vercel-serve/install.sh b/src/vercel-serve/install.sh deleted file mode 100755 index eda927253..000000000 --- a/src/vercel-serve/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='serve' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/vercel-serve/library_scripts.sh b/src/vercel-serve/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/vercel-serve/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/vscode-cli/README.md b/src/vscode-cli/README.md deleted file mode 100644 index 5f8e393db..000000000 --- a/src/vscode-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Visual Studio Code CLI (vscode-cli) - -Visual Studio Code CLI (official Microsoft build), which manages the Visual Studio Code Server and vscode.dev tunnels. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vscode-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Specify the Visual Studio Code CLI version to install; or "latest"; or "commit:" | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vscode-cli/devcontainer-feature.json b/src/vscode-cli/devcontainer-feature.json deleted file mode 100644 index bd32278f0..000000000 --- a/src/vscode-cli/devcontainer-feature.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Visual Studio Code CLI", - "id": "vscode-cli", - "version": "1.0.1", - "description": "Visual Studio Code CLI (official Microsoft build), which manages the Visual Studio Code Server and vscode.dev tunnels.", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/vscode-cli", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest" - ], - "default": "latest", - "description": "Specify the Visual Studio Code CLI version to install; or \"latest\"; or \"commit:\"" - } - } -} \ No newline at end of file diff --git a/src/vscode-cli/install.sh b/src/vscode-cli/install.sh deleted file mode 100644 index ce1a54876..000000000 --- a/src/vscode-cli/install.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash - -. ./library_scripts.sh - -VSCODE_VERSION="${VERSION:-"latest"}" - -set -e - -if [ "$(id -u)" -ne 0 ]; then - echo 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -ARCH="$(uname -m)" -if [ "${ARCH}" == "x86_64" ] ; then - if [ -f "/lib/ld-musl-x86_64.so.1" ] ; then - ARCH="alpine-x64" - else - ARCH="linux-x64" - fi -elif [ "${ARCH}" == "aarch64" ] || [ "${ARCH}" == "arm64" ] ; then - if [ -f "/lib/ld-musl-aarch64.so.1" ] ; then - ARCH="alpine-arm64" - else - ARCH="linux-arm64" - fi -elif [ "${ARCH}" == "arm" ]; then - ARCH="linux-armhf" -else - echo -e "unsupported arch: ${ARCH}" - exit 1 -fi - -DOWNLOAD_URL="https://update.code.visualstudio.com/${VSCODE_VERSION}/cli-${ARCH}/stable/" - -# make sure /usr/local/lib exists -mkdir -p /usr/local/lib - -# remove existing installations -rm -rf /usr/local/lib/vscode-cli-${ARCH} -rm -f $(command -v code) || true -rm -f /usr/local/bin/code - -DOWNLOAD_PATH=$(mktemp) -clean_download ${DOWNLOAD_URL} ${DOWNLOAD_PATH} - -# download binary and untar -tar xz -C /usr/local/bin -f ${DOWNLOAD_PATH} - -rm ${DOWNLOAD_PATH} - -echo "Done!" diff --git a/src/vscode-cli/library_scripts.sh b/src/vscode-cli/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/vscode-cli/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/vscode-server/README.md b/src/vscode-server/README.md deleted file mode 100644 index 798493607..000000000 --- a/src/vscode-server/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Visual Studio Code Server (vscode-server) - -Visual Studio Code Server (official Microsoft build), which hosts Visual Studio Code via HTTP - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vscode-server:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Specify the Visual Studio Code Server version to install; or "latest"; or "commit:" | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vscode-server/devcontainer-feature.json b/src/vscode-server/devcontainer-feature.json deleted file mode 100644 index 63366c8cf..000000000 --- a/src/vscode-server/devcontainer-feature.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "Visual Studio Code Server", - "id": "vscode-server", - "version": "1.0.1", - "description": "Visual Studio Code Server (official Microsoft build), which hosts Visual Studio Code via HTTP", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/vscode-server", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest" - ], - "default": "latest", - "description": "Specify the Visual Studio Code Server version to install; or \"latest\"; or \"commit:\"" - } - } -} \ No newline at end of file diff --git a/src/vscode-server/install.sh b/src/vscode-server/install.sh deleted file mode 100644 index 44070026e..000000000 --- a/src/vscode-server/install.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env bash - -. ./library_scripts.sh - -VSCODE_VERSION="${VERSION:-"latest"}" - -set -e - -if [ "$(id -u)" -ne 0 ]; then - echo 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -ARCH="$(uname -m)" -if [ "${ARCH}" == "x86_64" ] ; then - if [ -f "/lib/ld-musl-x86_64.so.1" ] ; then - ARCH="linux-alpine" - else - ARCH="linux-x64" - fi -elif [ "${ARCH}" == "aarch64" ] || [ "${ARCH}" == "arm64" ]; then - if [ -f "/lib/ld-musl-aarch64.so.1" ] ; then - ARCH="alpine-arm64" - else - ARCH="linux-arm64" - fi -elif [ "${ARCH}" == "arm" ]; then - ARCH="linux-armhf" -else - echo -e "unsupported arch: ${ARCH}" - exit 1 -fi - -DOWNLOAD_URL="https://update.code.visualstudio.com/${VSCODE_VERSION}/server-${ARCH}-web/stable/" - -# make sure /usr/local/lib exists -mkdir -p /usr/local/lib/vscode-server - -# remove existing installations -rm -rf /usr/local/lib/vscode-server-${ARCH}-web -rm -f $(which code-server) -rm -f /usr/local/bin/code-server - -DOWNLOAD_PATH=$(mktemp) -clean_download ${DOWNLOAD_URL} ${DOWNLOAD_PATH} - -# download binary, untar and ln into /usr/local/bin -tar xz -C /usr/local/lib -f ${DOWNLOAD_PATH} -ln -s /usr/local/lib/vscode-server-${ARCH}-web/bin/code-server /usr/local/bin/code-server - -rm ${DOWNLOAD_PATH} - -echo "Done!" diff --git a/src/vscode-server/library_scripts.sh b/src/vscode-server/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/vscode-server/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/vtop/README.md b/src/vtop/README.md deleted file mode 100644 index 13f6ed247..000000000 --- a/src/vtop/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# vtop (via npm) (vtop) - -vtop is a graphical activity monitor for the command line. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vtop:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vtop/devcontainer-feature.json b/src/vtop/devcontainer-feature.json deleted file mode 100644 index e95497183..000000000 --- a/src/vtop/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "vtop", - "version": "2.0.15", - "name": "vtop (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vtop", - "description": "vtop is a graphical activity monitor for the command line.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/vtop/install.sh b/src/vtop/install.sh deleted file mode 100755 index 3eb82afc9..000000000 --- a/src/vtop/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='vtop' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/vtop/library_scripts.sh b/src/vtop/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/vtop/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/vue-cli/README.md b/src/vue-cli/README.md deleted file mode 100644 index 99c5e4177..000000000 --- a/src/vue-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Vue CLI (via npm) (vue-cli) - -Vue CLI is a full system for rapid Vue.js development. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vue-cli:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Vue CLI to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vue-cli/devcontainer-feature.json b/src/vue-cli/devcontainer-feature.json deleted file mode 100644 index 3a2600379..000000000 --- a/src/vue-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "vue-cli", - "version": "2.0.15", - "name": "Vue CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vue-cli", - "description": "Vue CLI is a full system for rapid Vue.js development.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Vue CLI to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/src/vue-cli/install.sh b/src/vue-cli/install.sh deleted file mode 100755 index b04024f2e..000000000 --- a/src/vue-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@vue/cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/vue-cli/library_scripts.sh b/src/vue-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/vue-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/vulture/README.md b/src/vulture/README.md deleted file mode 100644 index 867b75cab..000000000 --- a/src/vulture/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Vulture (via pipx) (vulture) - -Vulture finds unused code in Python programs. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vulture:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/vulture/devcontainer-feature.json b/src/vulture/devcontainer-feature.json deleted file mode 100644 index 6320e66fb..000000000 --- a/src/vulture/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "vulture", - "version": "2.0.17", - "name": "Vulture (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vulture", - "description": "Vulture finds unused code in Python programs.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/vulture/install.sh b/src/vulture/install.sh deleted file mode 100755 index d9f7200e4..000000000 --- a/src/vulture/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='vulture' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/vulture/library_scripts.sh b/src/vulture/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/vulture/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/w3m-apt-get/README.md b/src/w3m-apt-get/README.md deleted file mode 100644 index 23d93b1e9..000000000 --- a/src/w3m-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# w3m (via apt-get) (w3m-apt-get) - -w3m is a free software/open source text-based web browser and terminal pager. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/w3m-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/w3m-apt-get/devcontainer-feature.json b/src/w3m-apt-get/devcontainer-feature.json deleted file mode 100644 index 9c5a95baa..000000000 --- a/src/w3m-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "w3m-apt-get", - "version": "1.0.16", - "name": "w3m (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/w3m-apt-get", - "description": "w3m is a free software/open source text-based web browser and terminal pager.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/w3m-apt-get/install.sh b/src/w3m-apt-get/install.sh deleted file mode 100755 index 7d6e440d4..000000000 --- a/src/w3m-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='w3m' - - -echo 'Done!' - diff --git a/src/w3m-apt-get/library_scripts.sh b/src/w3m-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/w3m-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/w3m-homebrew/README.md b/src/w3m-homebrew/README.md deleted file mode 100644 index cfbebb45e..000000000 --- a/src/w3m-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# w3m (via Homebrew) (w3m-homebrew) - -w3m is a free software/open source text-based web browser and terminal pager. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/w3m-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/w3m-homebrew/devcontainer-feature.json b/src/w3m-homebrew/devcontainer-feature.json deleted file mode 100644 index 0cf27cf5e..000000000 --- a/src/w3m-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "w3m-homebrew", - "version": "1.0.20", - "name": "w3m (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/w3m-homebrew", - "description": "w3m is a free software/open source text-based web browser and terminal pager.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/w3m-homebrew/install.sh b/src/w3m-homebrew/install.sh deleted file mode 100755 index 66d2ad5f9..000000000 --- a/src/w3m-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='w3m' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/w3m-homebrew/library_scripts.sh b/src/w3m-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/w3m-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/waypoint-asdf/README.md b/src/waypoint-asdf/README.md deleted file mode 100644 index 0412a6b20..000000000 --- a/src/waypoint-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Waypoint (via asdf) (waypoint-asdf) - -Waypoint is an open source solution that provides a modern workflow for build, deploy, and release across platforms. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/waypoint-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/waypoint-asdf/devcontainer-feature.json b/src/waypoint-asdf/devcontainer-feature.json deleted file mode 100644 index 76d5729e9..000000000 --- a/src/waypoint-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "waypoint-asdf", - "version": "2.0.15", - "name": "Waypoint (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/waypoint-asdf", - "description": "Waypoint is an open source solution that provides a modern workflow for build, deploy, and release across platforms.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/src/waypoint-asdf/install.sh b/src/waypoint-asdf/install.sh deleted file mode 100755 index 02fcbc1e2..000000000 --- a/src/waypoint-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='waypoint' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/waypoint-asdf/library_scripts.sh b/src/waypoint-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/waypoint-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/webi-packages/README.md b/src/webi-packages/README.md deleted file mode 100644 index 085d41a23..000000000 --- a/src/webi-packages/README.md +++ /dev/null @@ -1,18 +0,0 @@ - -# webi packages (webi-packages) - -Install webi and use it to install specified packages - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/webi-packages:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| packages | List of packages to install, comma-separated (e.g., 'node@lts', 'deno'). | string | - | diff --git a/src/webi-packages/devcontainer-feature.json b/src/webi-packages/devcontainer-feature.json deleted file mode 100644 index 135b3d954..000000000 --- a/src/webi-packages/devcontainer-feature.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "id": "webi-packages", - "version": "1.0.0", - "name": "webi packages", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/webi-packages", - "description": "Install webi and use it to install specified packages", - "options": { - "packages": { - "type": "string", - "description": "List of packages to install, comma-separated (e.g., 'node@lts', 'deno')", - "default": "" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers/features/common-utils" - ] -} \ No newline at end of file diff --git a/src/webi-packages/install.sh b/src/webi-packages/install.sh deleted file mode 100755 index f7f8873c5..000000000 --- a/src/webi-packages/install.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -set -e - -USERNAME="${USERNAME:-"${_REMOTE_USER:-"automatic"}"}" -PACKAGES="${PACKAGES:-""}" - -if [ "$(id -u)" -ne 0 ]; then - echo "Script must be run as root. Use sudo, su, or add \"USER root\" to your Dockerfile before running this script." - exit 1 -fi - -. ./utils.sh - -install_webi "$(determine_user "$USERNAME")" "$PACKAGES" - -clean diff --git a/src/webi-packages/utils.sh b/src/webi-packages/utils.sh deleted file mode 100644 index e5ac74c41..000000000 --- a/src/webi-packages/utils.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env bash - -install_webi() { - local USERNAME="$1" - local PACKAGES="$2" - - check_command curl - - su - "${USERNAME}" </dev/null; then - echo "Installing webinstall.dev for user ${USERNAME}..." - curl -sS https://webi.sh/webi | sh - source ~/.config/envman/PATH.env - echo "Webinstall.dev installation completed for user ${USERNAME}" - fi - - if [ -n "$PACKAGES" ]; then - echo "Installing specified packages: ${PACKAGES}" - webi $(echo "$PACKAGES" | tr ',' ' ') - fi -EOF -} - -determine_user() { - local USERNAME="${1:-"auto"}" - if [ "${USERNAME}" = "auto" ] || [ "${USERNAME}" = "automatic" ]; then - USERNAME="" - check_command awk >/dev/null 2>&1 - USERNAME_UID_1000="$(awk -v val=1000 -F ":" '$3==val{print $1}' /etc/passwd)" - POSSIBLE_USERS=("vscode" "node" "codespace" "${USERNAME_UID_1000}") - for CURRENT_USER in "${POSSIBLE_USERS[@]}"; do - if id -u "${CURRENT_USER}" >/dev/null 2>&1; then - USERNAME=${CURRENT_USER} - break - fi - done - if [ "${USERNAME}" = "" ]; then - USERNAME=root - fi - elif [ "${USERNAME}" = "none" ] || ! id -u "${USERNAME}" >/dev/null 2>&1; then - USERNAME=root - fi - - echo "${USERNAME}" -} - -check_command() { - local cmd=$1 - - if command -v "$cmd" &>/dev/null; then - echo "$cmd is already installed" - return 0 - fi - - echo "$cmd not found, attempting to install..." - - if command -v apt &>/dev/null; then - echo "Installing using apt..." - apt update - apt -y install --no-install-recommends "$cmd" - return $? - fi - - if command -v apk &>/dev/null; then - echo "Installing using apk..." - apk update - apk add --no-cache "$cmd" - return $? - fi - - echo "Error: No supported package manager found (apt/apk)" - return 1 -} - -clean() { - if command -v apt &>/dev/null; then - apt clean - rm -rf /var/lib/apt/lists/* - fi -} diff --git a/src/webtau-sdkman/README.md b/src/webtau-sdkman/README.md deleted file mode 100644 index dbcdcd661..000000000 --- a/src/webtau-sdkman/README.md +++ /dev/null @@ -1,31 +0,0 @@ - -# Webtau (via SDKMAN) (webtau-sdkman) - -Webtau (short for web test automation) is a testing API, command line tool and a -framework to write unit, integration and end-to-end tests. Tests can span -multiple application layers like REST-API, Graph QL, Browser, Database and CLI. -Consistent set of matchers and testing concepts work across all testing layers. -Use REPL mode to speed-up tests development. Leverage rich reporting to -significantly cut down failure investigation time. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/webtau-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/webtau-sdkman/devcontainer-feature.json b/src/webtau-sdkman/devcontainer-feature.json deleted file mode 100644 index 259fded52..000000000 --- a/src/webtau-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "webtau-sdkman", - "version": "2.0.15", - "name": "Webtau (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/webtau-sdkman", - "description": "Webtau (short for web test automation) is a testing API, command line tool and a\nframework to write unit, integration and end-to-end tests. Tests can span\nmultiple application layers like REST-API, Graph QL, Browser, Database and CLI.\nConsistent set of matchers and testing concepts work across all testing layers.\nUse REPL mode to speed-up tests development. Leverage rich reporting to\nsignificantly cut down failure investigation time.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/src/webtau-sdkman/install.sh b/src/webtau-sdkman/install.sh deleted file mode 100755 index 13fcf0b09..000000000 --- a/src/webtau-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='webtau' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/webtau-sdkman/library_scripts.sh b/src/webtau-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/webtau-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/wget-apt-get/README.md b/src/wget-apt-get/README.md deleted file mode 100644 index 4738b93b2..000000000 --- a/src/wget-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Wget (via apt-get) (wget-apt-get) - -Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/wget-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/wget-apt-get/devcontainer-feature.json b/src/wget-apt-get/devcontainer-feature.json deleted file mode 100644 index 3d412623c..000000000 --- a/src/wget-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "wget-apt-get", - "version": "1.0.16", - "name": "Wget (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/wget-apt-get", - "description": "Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/wget-apt-get/install.sh b/src/wget-apt-get/install.sh deleted file mode 100755 index 958ed0274..000000000 --- a/src/wget-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='wget' - - -echo 'Done!' - diff --git a/src/wget-apt-get/library_scripts.sh b/src/wget-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/wget-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/wget-homebrew/README.md b/src/wget-homebrew/README.md deleted file mode 100644 index bea67555e..000000000 --- a/src/wget-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Wget (via Homebrew) (wget-homebrew) - -Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/wget-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/wget-homebrew/devcontainer-feature.json b/src/wget-homebrew/devcontainer-feature.json deleted file mode 100644 index 990fe9a03..000000000 --- a/src/wget-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "wget-homebrew", - "version": "1.0.20", - "name": "Wget (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/wget-homebrew", - "description": "Wget is a free software package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/src/wget-homebrew/install.sh b/src/wget-homebrew/install.sh deleted file mode 100755 index 4faf7abca..000000000 --- a/src/wget-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='wget' --option version="$VERSION" - - -echo 'Done!' - diff --git a/src/wget-homebrew/library_scripts.sh b/src/wget-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/wget-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/wireguard-apt-get/README.md b/src/wireguard-apt-get/README.md deleted file mode 100644 index aeb1592c3..000000000 --- a/src/wireguard-apt-get/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# WireGuard (via apt-get) (wireguard-apt-get) - -WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/wireguard-apt-get:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| - - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/wireguard-apt-get/devcontainer-feature.json b/src/wireguard-apt-get/devcontainer-feature.json deleted file mode 100644 index bb22c37e1..000000000 --- a/src/wireguard-apt-get/devcontainer-feature.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "id": "wireguard-apt-get", - "version": "1.0.11", - "name": "WireGuard (via apt-get)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/wireguard-apt-get", - "description": "WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography.", - "options": {}, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/src/wireguard-apt-get/install.sh b/src/wireguard-apt-get/install.sh deleted file mode 100755 index d2d36eb41..000000000 --- a/src/wireguard-apt-get/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='wireguard' - - -echo 'Done!' - diff --git a/src/wireguard-apt-get/library_scripts.sh b/src/wireguard-apt-get/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/src/wireguard-apt-get/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/src/xmrig/README.md b/src/xmrig/README.md deleted file mode 100644 index f8e25dd96..000000000 --- a/src/xmrig/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# XMRig (via Github Releases) (xmrig) - -XMRig is a high performance, open source, cross platform RandomX, KawPow, CryptoNight and GhostRider unified CPU/GPU miner and RandomX benchmark. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/xmrig:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/xmrig/devcontainer-feature.json b/src/xmrig/devcontainer-feature.json deleted file mode 100644 index feddd0d0a..000000000 --- a/src/xmrig/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "xmrig", - "version": "1.0.2", - "name": "XMRig (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/xmrig", - "description": "XMRig is a high performance, open source, cross platform RandomX, KawPow, CryptoNight and GhostRider unified CPU/GPU miner and RandomX benchmark.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/xmrig/install.sh b/src/xmrig/install.sh deleted file mode 100755 index a814cbd43..000000000 --- a/src/xmrig/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='xmrig/xmrig' --option binaryNames='xmrig' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/xmrig/library_scripts.sh b/src/xmrig/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/xmrig/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/xonsh/README.md b/src/xonsh/README.md deleted file mode 100644 index 55b80c672..000000000 --- a/src/xonsh/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Xonsh (via pipx) (xonsh) - -Xonsh is a Python-powered, cross-platform, Unix-gazing shell language and command prompt. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/xonsh:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/xonsh/devcontainer-feature.json b/src/xonsh/devcontainer-feature.json deleted file mode 100644 index 24b2f9402..000000000 --- a/src/xonsh/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "xonsh", - "version": "1.0.4", - "name": "Xonsh (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/xonsh", - "description": "Xonsh is a Python-powered, cross-platform, Unix-gazing shell language and command prompt.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/xonsh/install.sh b/src/xonsh/install.sh deleted file mode 100755 index 71e33a977..000000000 --- a/src/xonsh/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='xonsh[all]' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/xonsh/library_scripts.sh b/src/xonsh/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/xonsh/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/yamllint/README.md b/src/yamllint/README.md deleted file mode 100644 index d621c792f..000000000 --- a/src/yamllint/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# yamllint (via pipx) (yamllint) - -yamllint is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/yamllint:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/yamllint/devcontainer-feature.json b/src/yamllint/devcontainer-feature.json deleted file mode 100644 index 84f4e789e..000000000 --- a/src/yamllint/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "yamllint", - "version": "2.0.17", - "name": "yamllint (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/yamllint", - "description": "yamllint is a Python utility / library to sort imports alphabetically, and automatically separated into sections and by type.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/yamllint/install.sh b/src/yamllint/install.sh deleted file mode 100755 index 792aad490..000000000 --- a/src/yamllint/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='yamllint' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/yamllint/library_scripts.sh b/src/yamllint/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/yamllint/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/yapf/README.md b/src/yapf/README.md deleted file mode 100644 index 842f650a2..000000000 --- a/src/yapf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# yapf (via pipx) (yapf) - -yapf is a formatter for Python files. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/yapf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/yapf/devcontainer-feature.json b/src/yapf/devcontainer-feature.json deleted file mode 100644 index 2d4691947..000000000 --- a/src/yapf/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "yapf", - "version": "2.0.17", - "name": "yapf (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/yapf", - "description": "yapf is a formatter for Python files.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/yapf/install.sh b/src/yapf/install.sh deleted file mode 100755 index 9babcca8a..000000000 --- a/src/yapf/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='yapf' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/yapf/library_scripts.sh b/src/yapf/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/yapf/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/youtube-dl/README.md b/src/youtube-dl/README.md deleted file mode 100644 index d1eb85292..000000000 --- a/src/youtube-dl/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# youtube-dl (via pipx) (youtube-dl) - -youtube-dl is a command-line program to download videos from YouTube.com and other video sites. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/youtube-dl:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of youtube-dl to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/youtube-dl/devcontainer-feature.json b/src/youtube-dl/devcontainer-feature.json deleted file mode 100644 index 27b679e4f..000000000 --- a/src/youtube-dl/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "youtube-dl", - "version": "2.0.17", - "name": "youtube-dl (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/youtube-dl", - "description": "youtube-dl is a command-line program to download videos from YouTube.com and other video sites.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of youtube-dl to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/youtube-dl/install.sh b/src/youtube-dl/install.sh deleted file mode 100755 index bf9c59c46..000000000 --- a/src/youtube-dl/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='youtube-dl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/youtube-dl/library_scripts.sh b/src/youtube-dl/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/youtube-dl/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/youtubeuploader/README.md b/src/youtubeuploader/README.md deleted file mode 100644 index 383f89a1b..000000000 --- a/src/youtubeuploader/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Youtube Uploader (via Github Releases) (youtubeuploader) - -Scripted uploads to Youtube. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/youtubeuploader:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/youtubeuploader/devcontainer-feature.json b/src/youtubeuploader/devcontainer-feature.json deleted file mode 100644 index 4bd093a5e..000000000 --- a/src/youtubeuploader/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "youtubeuploader", - "version": "1.0.3", - "name": "Youtube Uploader (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/youtubeuploader", - "description": "Scripted uploads to Youtube.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/src/youtubeuploader/install.sh b/src/youtubeuploader/install.sh deleted file mode 100755 index a253b8bef..000000000 --- a/src/youtubeuploader/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='porjo/youtubeuploader' --option binaryNames='youtubeuploader' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/youtubeuploader/library_scripts.sh b/src/youtubeuploader/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/youtubeuploader/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/yt-dlp/README.md b/src/yt-dlp/README.md deleted file mode 100644 index 560c6f78f..000000000 --- a/src/yt-dlp/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# yt-dlp (via pipx) (yt-dlp) - -yt-dlp is a youtube-dl fork with additional features and fixes. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/yt-dlp:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of yt-dlp to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/yt-dlp/devcontainer-feature.json b/src/yt-dlp/devcontainer-feature.json deleted file mode 100644 index de65ffaf4..000000000 --- a/src/yt-dlp/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "yt-dlp", - "version": "2.0.17", - "name": "yt-dlp (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/yt-dlp", - "description": "yt-dlp is a youtube-dl fork with additional features and fixes.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of yt-dlp to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/src/yt-dlp/install.sh b/src/yt-dlp/install.sh deleted file mode 100755 index a829e15f0..000000000 --- a/src/yt-dlp/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='yt-dlp' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/src/yt-dlp/library_scripts.sh b/src/yt-dlp/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/src/yt-dlp/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/src/zig/README.md b/src/zig/README.md deleted file mode 100644 index 1f6a4f28d..000000000 --- a/src/zig/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Zig (via ziglang.org) (zig) - -Zig is a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/zig:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the Zig version you would like to install | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/zig/devcontainer-feature.json b/src/zig/devcontainer-feature.json deleted file mode 100644 index c6bd1303c..000000000 --- a/src/zig/devcontainer-feature.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Zig (via ziglang.org)", - "id": "zig", - "version": "1.1.1", - "description": "Zig is a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software.", - "documentationURL": "https://github.com/devcontainers-extra/features/tree/main/src/zig", - "options": { - "version": { - "type": "string", - "proposals": [ - "latest", - "0.10.0" - ], - "default": "latest", - "description": "Select the Zig version you would like to install" - } - } -} \ No newline at end of file diff --git a/src/zig/install.sh b/src/zig/install.sh deleted file mode 100755 index 6582cc62c..000000000 --- a/src/zig/install.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash - -ZIG_VERSION="${VERSION:-"latest"}" - -set -e - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -# Clean up -rm -rf /var/lib/apt/lists/* - -ARCH="$(uname -m)" - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -# make sure we have curl and jq -check_packages ca-certificates curl xz-utils jq - -# remove existing instalations -rm -rf /usr/local/lib/zig - -# make sure /usr/local/lib/zig exists -mkdir -p /usr/local/lib/zig - -INDEX_URL="https://ziglang.org/download/index.json" - -if [[ "$ZIG_VERSION" == "latest" || "$ZIG_VERSION" == "current" || "$ZIG_VERSION" == "lts" ]] -then - # for latest we download the latest *release* version - DOWNLOAD_URL=$(curl -sSL $INDEX_URL | jq -r 'to_entries[1].value."'"$ARCH"'-linux".tarball') -else - DOWNLOAD_URL=$(curl -sSL $INDEX_URL | jq -r '."'"$ZIG_VERSION"'"."'"$ARCH"'-linux".tarball') -fi - -# download binary, untar and ln into /usr/local/bin -curl -sSL $DOWNLOAD_URL | tar xJ -C /usr/local/lib/zig --strip-components 1 -chmod +x /usr/local/lib/zig/zig -ln -s /usr/local/lib/zig/zig /usr/local/bin/zig - -# Clean up -rm -rf /var/lib/apt/lists/* - -echo "Done!" diff --git a/src/zsh-plugins/README.md b/src/zsh-plugins/README.md deleted file mode 100644 index 26366b5d9..000000000 --- a/src/zsh-plugins/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# ZSH Plugins (zsh-plugins) - -Install (Oh-My-)ZSH plugins - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/zsh-plugins:0": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| plugins | Space separated list of ZSH plugin names that will be added to .zshrc | string | - | -| omzPlugins | Space separated list of Oh-My-ZSH custom plugin Git URLs that will be cloned | string | - | -| username | For which user to setup ZSH plugins, by default uses 'remoteUser' or 'containerUser' from config | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/zsh-plugins/devcontainer-feature.json b/src/zsh-plugins/devcontainer-feature.json deleted file mode 100644 index eadd43975..000000000 --- a/src/zsh-plugins/devcontainer-feature.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "ZSH Plugins", - "id": "zsh-plugins", - "version": "0.0.4", - "description": "Install (Oh-My-)ZSH plugins", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/zsh-plugins", - "installsAfter": [ - "ghcr.io/devcontainers/features/common-utils", - "ghcr.io/devcontainers/features/git" - ], - "options": { - "plugins": { - "type": "string", - "default": "", - "proposals": [ - "ssh-agent npm" - ], - "description": "Space separated list of ZSH plugin names that will be added to .zshrc" - }, - "omzPlugins": { - "type": "string", - "default": "", - "proposals": [ - "https://github.com/zsh-users/zsh-autosuggestions" - ], - "description": "Space separated list of Oh-My-ZSH custom plugin Git URLs that will be cloned" - }, - "username": { - "type": "string", - "default": "", - "proposals": [ - "root", - "node", - "vscode" - ], - "description": "For which user to setup ZSH plugins, by default uses 'remoteUser' or 'containerUser' from config" - } - } -} \ No newline at end of file diff --git a/src/zsh-plugins/install.sh b/src/zsh-plugins/install.sh deleted file mode 100755 index 3f56cb3f9..000000000 --- a/src/zsh-plugins/install.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash -set -x -PLUGINS=${PLUGINS:-""} -OMZSH_PLUGINS=${OMZPLUGINS:-""} -USERNAME=${USERNAME:-$_REMOTE_USER} - - -# Checks if packages are installed and installs them if not -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - - -check_packages git ca-certificates - -# ensure zsh is installed -if ! type zsh >/dev/null 2>&1; then - check_packages zsh -fi - -if [ "$USERNAME" = "root" ]; then - USER_LOCATION="/root" -else - USER_LOCATION="/home/$USERNAME" -fi - -# ensure oh-my-zsh installed -if ! [ -d $USER_LOCATION/.oh-my-zsh ]; then - check_packages wget - sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)" -fi - -ZSH_CONFIG="$USER_LOCATION/.zshrc" -OMZSH_PLUGINS_LOCATION="$USER_LOCATION/.oh-my-zsh/custom/plugins" - -# Install custom oh-my-zsh plugins from OMZSH_PLUGINS -currdir=$(pwd) -mkdir -p "$OMZSH_PLUGINS_LOCATION" -cd "$OMZSH_PLUGINS_LOCATION" || exit - -IFS=' ' read -ra plugins <<< "${OMZSH_PLUGINS}" - -for plugin in "${plugins[@]}" -do - git clone --depth 1 $plugin -done - -cd "$currdir" || exit - -# create configuration file if not exists -if ! [ -f "$ZSH_CONFIG" ]; then - mkdir -p "$(dirname "$ZSH_CONFIG")" && touch "$ZSH_CONFIG" -fi - -# Activate zsh plugins from PLUGINS -sed -i -e "s/plugins=.*/plugins=(git ${PLUGINS})/g" "$ZSH_CONFIG" diff --git a/test/act-asdf/scenarios.json b/test/act-asdf/scenarios.json deleted file mode 100644 index aad5d3abe..000000000 --- a/test/act-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "act-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/act-asdf/test.sh b/test/act-asdf/test.sh deleted file mode 100755 index d67d76e32..000000000 --- a/test/act-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "act --version" act --version - -reportResults diff --git a/test/act/scenarios.json b/test/act/scenarios.json deleted file mode 100644 index 2f0004291..000000000 --- a/test/act/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "act": {} - } - } -} \ No newline at end of file diff --git a/test/act/test_defaults_debian.sh b/test/act/test_defaults_debian.sh deleted file mode 100755 index d67d76e32..000000000 --- a/test/act/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "act --version" act --version - -reportResults diff --git a/test/actionlint/scenarios.json b/test/actionlint/scenarios.json deleted file mode 100644 index 830bffd8b..000000000 --- a/test/actionlint/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "actionlint": {} - } - } -} \ No newline at end of file diff --git a/test/actionlint/test_defaults_debian.sh b/test/actionlint/test_defaults_debian.sh deleted file mode 100755 index f4c6a7413..000000000 --- a/test/actionlint/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "actionlint --version" actionlint --version - -reportResults diff --git a/test/actions-runner/scenarios.json b/test/actions-runner/scenarios.json deleted file mode 100644 index 455edf69b..000000000 --- a/test/actions-runner/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "actions-runner": {} - } - } -} \ No newline at end of file diff --git a/test/actions-runner/test_defaults_debian.sh b/test/actions-runner/test_defaults_debian.sh deleted file mode 100755 index 1d7b854a4..000000000 --- a/test/actions-runner/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "$HOME/actions-runner/run.sh --version" $HOME/actions-runner/run.sh --version - -reportResults diff --git a/test/activemq-sdkman/scenarios.json b/test/activemq-sdkman/scenarios.json deleted file mode 100644 index a7dd65c9c..000000000 --- a/test/activemq-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "activemq-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/activemq-sdkman/test.sh b/test/activemq-sdkman/test.sh deleted file mode 100755 index 6daf8b1f3..000000000 --- a/test/activemq-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "activemq --version" activemq --version - -reportResults diff --git a/test/age/scenarios.json b/test/age/scenarios.json deleted file mode 100644 index 35887f5be..000000000 --- a/test/age/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "age": {} - } - } -} \ No newline at end of file diff --git a/test/age/test_defaults_debian.sh b/test/age/test_defaults_debian.sh deleted file mode 100755 index 0386ce0ae..000000000 --- a/test/age/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "age --version" age --version - -reportResults diff --git a/test/akamai-cli/scenarios.json b/test/akamai-cli/scenarios.json deleted file mode 100644 index 4a63a714d..000000000 --- a/test/akamai-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "akamai-cli": {} - } - } -} \ No newline at end of file diff --git a/test/akamai-cli/test_defaults_debian.sh b/test/akamai-cli/test_defaults_debian.sh deleted file mode 100755 index fa29ee824..000000000 --- a/test/akamai-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type akamai" type akamai - -reportResults diff --git a/test/alertmanager/scenarios.json b/test/alertmanager/scenarios.json deleted file mode 100644 index b79798db0..000000000 --- a/test/alertmanager/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "alertmanager": {} - } - } -} \ No newline at end of file diff --git a/test/alertmanager/test_defaults_debian.sh b/test/alertmanager/test_defaults_debian.sh deleted file mode 100755 index e3f0b6be8..000000000 --- a/test/alertmanager/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "alertmanager --version" alertmanager --version - -reportResults diff --git a/test/alp-asdf/scenarios.json b/test/alp-asdf/scenarios.json deleted file mode 100644 index 59f282c66..000000000 --- a/test/alp-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "alp-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/alp-asdf/test.sh b/test/alp-asdf/test.sh deleted file mode 100755 index b4eff975c..000000000 --- a/test/alp-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "alp --version" alp --version - -reportResults diff --git a/test/amplify-cli/scenarios.json b/test/amplify-cli/scenarios.json deleted file mode 100644 index f9d5c405a..000000000 --- a/test/amplify-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "amplify-cli": {} - } - } -} \ No newline at end of file diff --git a/test/amplify-cli/test.sh b/test/amplify-cli/test.sh deleted file mode 100755 index 2648ae4a9..000000000 --- a/test/amplify-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "amplify --version" amplify --version - -reportResults diff --git a/test/angular-cli/scenarios.json b/test/angular-cli/scenarios.json deleted file mode 100644 index 8cf2d9d5f..000000000 --- a/test/angular-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "angular-cli": {} - } - } -} \ No newline at end of file diff --git a/test/angular-cli/test.sh b/test/angular-cli/test.sh deleted file mode 100755 index dd3f06aa1..000000000 --- a/test/angular-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ng --help" ng --help - -reportResults diff --git a/test/ansible/scenarios.json b/test/ansible/scenarios.json deleted file mode 100644 index f0246a912..000000000 --- a/test/ansible/scenarios.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "test_ubuntu": { - "image": "ubuntu:22.04", - "features": { - "ansible": {} - } - }, - "test_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ansible": {} - } - }, - "test_debian_bookworm": { - "image": "mcr.microsoft.com/devcontainers/base:bookworm", - "features": { - "ansible": {} - } - }, - "test_version_selection": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ansible": { - "version": "2.13.0" - } - } - }, - "test_injections": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ansible": { - "injections": "hcloud" - } - } - } -} \ No newline at end of file diff --git a/test/ansible/test.sh b/test/ansible/test.sh deleted file mode 100755 index 6a11eb2b5..000000000 --- a/test/ansible/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ansible --version" ansible --version - -reportResults diff --git a/test/ansible/test_debian.sh b/test/ansible/test_debian.sh deleted file mode 100755 index 6a11eb2b5..000000000 --- a/test/ansible/test_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ansible --version" ansible --version - -reportResults diff --git a/test/ansible/test_debian_bookworm.sh b/test/ansible/test_debian_bookworm.sh deleted file mode 100755 index 6a11eb2b5..000000000 --- a/test/ansible/test_debian_bookworm.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ansible --version" ansible --version - -reportResults diff --git a/test/ansible/test_injections.sh b/test/ansible/test_injections.sh deleted file mode 100644 index 25d659675..000000000 --- a/test/ansible/test_injections.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "hcloud package is injected" bash -c "pipx list --include-injected | grep hcloud" - -reportResults diff --git a/test/ansible/test_ubuntu.sh b/test/ansible/test_ubuntu.sh deleted file mode 100755 index 6a11eb2b5..000000000 --- a/test/ansible/test_ubuntu.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ansible --version" ansible --version - -reportResults diff --git a/test/ansible/test_version_selection.sh b/test/ansible/test_version_selection.sh deleted file mode 100755 index 3bb4ebfb6..000000000 --- a/test/ansible/test_version_selection.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ansible version is equal to 2.13.0" bash -c "ansible --version | grep 'core 2.13.0'" - -reportResults diff --git a/test/ant-sdkman/scenarios.json b/test/ant-sdkman/scenarios.json deleted file mode 100644 index 0d208fb6f..000000000 --- a/test/ant-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ant-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/ant-sdkman/test.sh b/test/ant-sdkman/test.sh deleted file mode 100755 index b64188632..000000000 --- a/test/ant-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "ant -version" ant -version - -reportResults diff --git a/test/apko/scenarios.json b/test/apko/scenarios.json deleted file mode 100644 index 01f2174df..000000000 --- a/test/apko/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "apko": {} - } - } -} \ No newline at end of file diff --git a/test/apko/test_defaults_debian.sh b/test/apko/test_defaults_debian.sh deleted file mode 100755 index 02e276174..000000000 --- a/test/apko/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "apko version" apko version - -reportResults diff --git a/test/apt-get-packages/scenarios.json b/test/apt-get-packages/scenarios.json deleted file mode 100644 index c8dfc3c62..000000000 --- a/test/apt-get-packages/scenarios.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "test_neovim_ubuntu": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", - "features": { - "apt-get-packages": { - "packages": "neovim", - "ppas": "ppa:neovim-ppa/stable" - } - } - } -} \ No newline at end of file diff --git a/test/apt-get-packages/test_neovim_ubuntu.sh b/test/apt-get-packages/test_neovim_ubuntu.sh deleted file mode 100755 index f9e3e5444..000000000 --- a/test/apt-get-packages/test_neovim_ubuntu.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nvim --version" nvim --version - -reportResults diff --git a/test/apt-packages/scenarios.json b/test/apt-packages/scenarios.json deleted file mode 100644 index 6a370412d..000000000 --- a/test/apt-packages/scenarios.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "test_neovim_ubuntu": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", - "features": { - "apt-packages": { - "packages": "neovim", - "ppas": "ppa:neovim-ppa/stable" - } - } - } -} \ No newline at end of file diff --git a/test/apt-packages/test_neovim_ubuntu.sh b/test/apt-packages/test_neovim_ubuntu.sh deleted file mode 100755 index f9e3e5444..000000000 --- a/test/apt-packages/test_neovim_ubuntu.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nvim --version" nvim --version - -reportResults diff --git a/test/argo-cd/scenarios.json b/test/argo-cd/scenarios.json deleted file mode 100644 index 657eda1cc..000000000 --- a/test/argo-cd/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "argo-cd": {} - } - } -} \ No newline at end of file diff --git a/test/argo-cd/test.sh b/test/argo-cd/test.sh deleted file mode 100755 index a7fac7383..000000000 --- a/test/argo-cd/test.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "argocd cli existance" which argocd -# version exists with '1' when no server specified -check "argocd cli executable" argocd --help - -reportResults diff --git a/test/argo-workflows/scenarios.json b/test/argo-workflows/scenarios.json deleted file mode 100644 index 5f9ffd2f4..000000000 --- a/test/argo-workflows/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "argo-workflows": {} - } - } -} \ No newline at end of file diff --git a/test/argo-workflows/test.sh b/test/argo-workflows/test.sh deleted file mode 100755 index ed623e316..000000000 --- a/test/argo-workflows/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "argo workflows cli" argo version - -reportResults diff --git a/test/asciidoctorj-sdkman/scenarios.json b/test/asciidoctorj-sdkman/scenarios.json deleted file mode 100644 index b9469a0f0..000000000 --- a/test/asciidoctorj-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "asciidoctorj-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/asciidoctorj-sdkman/test.sh b/test/asciidoctorj-sdkman/test.sh deleted file mode 100755 index 39e29e0d6..000000000 --- a/test/asciidoctorj-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "asciidoctorj --version" asciidoctorj --version - -reportResults diff --git a/test/asdf-package/install_act.sh b/test/asdf-package/install_act.sh deleted file mode 100755 index bc9a0a213..000000000 --- a/test/asdf-package/install_act.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - - -check "asdf list act" asdf list act - - -reportResults diff --git a/test/asdf-package/install_act_with_repo.sh b/test/asdf-package/install_act_with_repo.sh deleted file mode 100755 index bc9a0a213..000000000 --- a/test/asdf-package/install_act_with_repo.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - - -check "asdf list act" asdf list act - - -reportResults diff --git a/test/asdf-package/install_rabbitmq.sh b/test/asdf-package/install_rabbitmq.sh deleted file mode 100755 index c922f8757..000000000 --- a/test/asdf-package/install_rabbitmq.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - - -check "asdf list rabbitmq" asdf list rabbitmq -check "type rabbitmqctl" type rabbitmqctl - - -reportResults \ No newline at end of file diff --git a/test/asdf-package/install_terraform_alpine.sh b/test/asdf-package/install_terraform_alpine.sh deleted file mode 100755 index 456d59618..000000000 --- a/test/asdf-package/install_terraform_alpine.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - - -check "asdf list terraform" asdf list terraform - - -reportResults diff --git a/test/asdf-package/scenarios.json b/test/asdf-package/scenarios.json deleted file mode 100644 index d9750db0e..000000000 --- a/test/asdf-package/scenarios.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "install_rabbitmq": { - "image": "debian:bullseye", - "features": { - "ghcr.io/devcontainers-extra/features/apt-get-packages" : {"packages": "xz-utils"}, - "asdf-package": { - "version": "v3.12.0", - "plugin": "rabbitmq", - "latestVersionPattern": "v" - } - } - }, - "install_act": { - "image": "debian:bullseye", - "features": { - "asdf-package": { - "version": "latest", - "plugin": "act" - } - } - }, - "install_act_with_repo": { - "image": "debian:bullseye", - "features": { - "asdf-package": { - "version": "latest", - "plugin": "act", - "pluginRepo": "https://github.com/grimoh/asdf-act.git" - } - } - }, - "install_terraform_alpine": { - "image": "mcr.microsoft.com/devcontainers/base:alpine-3.17", - "features": { - "asdf-package": { - "version": "latest", - "plugin": "terraform" - } - } - } -} \ No newline at end of file diff --git a/test/assemblyscript/scenarios.json b/test/assemblyscript/scenarios.json deleted file mode 100644 index ebb76f8c0..000000000 --- a/test/assemblyscript/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "assemblyscript": {} - } - } -} \ No newline at end of file diff --git a/test/assemblyscript/test.sh b/test/assemblyscript/test.sh deleted file mode 100755 index 7b4d3cf01..000000000 --- a/test/assemblyscript/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "asc --version" asc --version - -reportResults diff --git a/test/atlantis/scenarios.json b/test/atlantis/scenarios.json deleted file mode 100644 index 3128eed51..000000000 --- a/test/atlantis/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "atlantis": {} - } - } -} \ No newline at end of file diff --git a/test/atlantis/test_defaults_debian.sh b/test/atlantis/test_defaults_debian.sh deleted file mode 100755 index 89c959f91..000000000 --- a/test/atlantis/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "atlantis version" atlantis version - -reportResults diff --git a/test/atmos/scenarios.json b/test/atmos/scenarios.json deleted file mode 100644 index e984d75fe..000000000 --- a/test/atmos/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "atmos": {} - } - } -} \ No newline at end of file diff --git a/test/atmos/test_defaults_debian.sh b/test/atmos/test_defaults_debian.sh deleted file mode 100755 index dfd0e494c..000000000 --- a/test/atmos/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "atmos version" atmos version - -reportResults diff --git a/test/auditjs/scenarios.json b/test/auditjs/scenarios.json deleted file mode 100644 index f0180f33d..000000000 --- a/test/auditjs/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "auditjs": {} - } - } -} \ No newline at end of file diff --git a/test/auditjs/test_defaults.sh b/test/auditjs/test_defaults.sh deleted file mode 100755 index 14d984b6e..000000000 --- a/test/auditjs/test_defaults.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "auditjs --version" auditjs --version - -reportResults diff --git a/test/autoenv/scenarios.json b/test/autoenv/scenarios.json deleted file mode 100644 index 047d1d080..000000000 --- a/test/autoenv/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "autoenv": {} - } - } -} \ No newline at end of file diff --git a/test/autoenv/test.sh b/test/autoenv/test.sh deleted file mode 100755 index 58c8a3dfa..000000000 --- a/test/autoenv/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ls $(npm root -g)/@hyperupcall/autoenv/activate.sh" ls $(npm root -g)/@hyperupcall/autoenv/activate.sh - -reportResults diff --git a/test/aws-cdk/scenarios.json b/test/aws-cdk/scenarios.json deleted file mode 100644 index c515d15d9..000000000 --- a/test/aws-cdk/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "aws-cdk": {} - } - } -} \ No newline at end of file diff --git a/test/aws-cdk/test.sh b/test/aws-cdk/test.sh deleted file mode 100755 index 99769223b..000000000 --- a/test/aws-cdk/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cdk --version" cdk --version - -reportResults diff --git a/test/aws-eb-cli/scenarios.json b/test/aws-eb-cli/scenarios.json deleted file mode 100644 index eb815347e..000000000 --- a/test/aws-eb-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "aws-eb-cli": {} - } - } -} \ No newline at end of file diff --git a/test/aws-eb-cli/test.sh b/test/aws-eb-cli/test.sh deleted file mode 100755 index 679ecb114..000000000 --- a/test/aws-eb-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "eb --version" eb --version - -reportResults diff --git a/test/aws-sso-cli/scenarios.json b/test/aws-sso-cli/scenarios.json deleted file mode 100644 index 0cbfa6187..000000000 --- a/test/aws-sso-cli/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "aws-sso-cli": {} - } - }, - "test_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "aws-sso-cli": { - "version": "1.16.1" - } - } - } -} \ No newline at end of file diff --git a/test/aws-sso-cli/test.sh b/test/aws-sso-cli/test.sh deleted file mode 100755 index 8a4eed5eb..000000000 --- a/test/aws-sso-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "aws-sso is installed" aws-sso version - -reportResults diff --git a/test/aws-sso-cli/test_debian.sh b/test/aws-sso-cli/test_debian.sh deleted file mode 100755 index 8a4eed5eb..000000000 --- a/test/aws-sso-cli/test_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "aws-sso is installed" aws-sso version - -reportResults diff --git a/test/aws-sso-cli/test_specific_version.sh b/test/aws-sso-cli/test_specific_version.sh deleted file mode 100755 index 24589417e..000000000 --- a/test/aws-sso-cli/test_specific_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "aws-sso version is equal to 1.16.1" sh -c "aws-sso version | grep '1.16.1'" - -reportResults diff --git a/test/aztfexport/scenarios.json b/test/aztfexport/scenarios.json deleted file mode 100644 index ded15bbe2..000000000 --- a/test/aztfexport/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "aztfexport": {} - } - } -} \ No newline at end of file diff --git a/test/aztfexport/test_defaults_debian.sh b/test/aztfexport/test_defaults_debian.sh deleted file mode 100755 index d84e0c774..000000000 --- a/test/aztfexport/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "aztfexport --version" aztfexport --version - -reportResults diff --git a/test/azure-apiops/scenarios.json b/test/azure-apiops/scenarios.json deleted file mode 100644 index e3d79c272..000000000 --- a/test/azure-apiops/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "azure-apiops": {} - } - } -} \ No newline at end of file diff --git a/test/azure-apiops/test.sh b/test/azure-apiops/test.sh deleted file mode 100755 index 1c851ab26..000000000 --- a/test/azure-apiops/test.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type extractor" type extractor - -check "type publisher" type publisher - -reportResults diff --git a/test/ballerina-sdkman/scenarios.json b/test/ballerina-sdkman/scenarios.json deleted file mode 100644 index 83296cf68..000000000 --- a/test/ballerina-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ballerina-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/ballerina-sdkman/test.sh b/test/ballerina-sdkman/test.sh deleted file mode 100755 index 168556a94..000000000 --- a/test/ballerina-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "ballerina version" ballerina version - -reportResults diff --git a/test/bandit/scenarios.json b/test/bandit/scenarios.json deleted file mode 100644 index 747775127..000000000 --- a/test/bandit/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "bandit": {} - } - } -} \ No newline at end of file diff --git a/test/bandit/test.sh b/test/bandit/test.sh deleted file mode 100755 index 5971185f1..000000000 --- a/test/bandit/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "bandit --version" bandit --version - -reportResults diff --git a/test/bartib/scenarios.json b/test/bartib/scenarios.json deleted file mode 100644 index d52da0173..000000000 --- a/test/bartib/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "bartib": {} - } - } -} \ No newline at end of file diff --git a/test/bartib/test_defaults_debian.sh b/test/bartib/test_defaults_debian.sh deleted file mode 100755 index f4f3fa6d2..000000000 --- a/test/bartib/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "bartib --version" bartib --version - -reportResults diff --git a/test/bash-command/scenarios.json b/test/bash-command/scenarios.json deleted file mode 100644 index e11295f69..000000000 --- a/test/bash-command/scenarios.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "set_env": { - "image": "debian:bullseye", - "features": { - "bash-command": { - "command": "echo -e HELLO=5 >> /etc/environment" - } - } - } -} \ No newline at end of file diff --git a/test/bash-command/set_env.sh b/test/bash-command/set_env.sh deleted file mode 100755 index 5f4700d42..000000000 --- a/test/bash-command/set_env.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - - -check "echo $HELLO" [ "$(source /etc/environment && echo $HELLO)" == "5" ] - - -reportResults diff --git a/test/beehive/scenarios.json b/test/beehive/scenarios.json deleted file mode 100644 index c97f16844..000000000 --- a/test/beehive/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "beehive": {} - } - } -} \ No newline at end of file diff --git a/test/beehive/test_defaults_debian.sh b/test/beehive/test_defaults_debian.sh deleted file mode 100755 index 44ca03773..000000000 --- a/test/beehive/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "beehive --version" beehive --version - -reportResults diff --git a/test/bikeshed/scenarios.json b/test/bikeshed/scenarios.json deleted file mode 100644 index f2b727540..000000000 --- a/test/bikeshed/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "bikeshed": {} - } - } -} \ No newline at end of file diff --git a/test/bikeshed/test.sh b/test/bikeshed/test.sh deleted file mode 100755 index 714fc586b..000000000 --- a/test/bikeshed/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "bikeshed --version" bikeshed --version - -reportResults diff --git a/test/bin/scenarios.json b/test/bin/scenarios.json deleted file mode 100644 index 8ce7c352f..000000000 --- a/test/bin/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "bin": {} - } - } -} \ No newline at end of file diff --git a/test/bin/test_defaults_debian.sh b/test/bin/test_defaults_debian.sh deleted file mode 100755 index 350958957..000000000 --- a/test/bin/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "bin --version" bin --version - -reportResults diff --git a/test/black/scenarios.json b/test/black/scenarios.json deleted file mode 100644 index 042d44596..000000000 --- a/test/black/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "black": {} - } - } -} \ No newline at end of file diff --git a/test/black/test.sh b/test/black/test.sh deleted file mode 100755 index 740ad1633..000000000 --- a/test/black/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "black --version" black --version - -reportResults diff --git a/test/blackbox-exporter/scenarios.json b/test/blackbox-exporter/scenarios.json deleted file mode 100644 index 3d7266479..000000000 --- a/test/blackbox-exporter/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "blackbox-exporter": {} - } - } -} \ No newline at end of file diff --git a/test/blackbox-exporter/test_defaults_debian.sh b/test/blackbox-exporter/test_defaults_debian.sh deleted file mode 100755 index f6ad2add7..000000000 --- a/test/blackbox-exporter/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "blackbox_exporter --version" blackbox_exporter --version - -reportResults diff --git a/test/bomber/scenarios.json b/test/bomber/scenarios.json deleted file mode 100644 index 22a4a381a..000000000 --- a/test/bomber/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "bomber": {} - } - } -} \ No newline at end of file diff --git a/test/bomber/test_defaults_debian.sh b/test/bomber/test_defaults_debian.sh deleted file mode 100755 index ca0509943..000000000 --- a/test/bomber/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "bomber --version" bomber --version - -reportResults diff --git a/test/bower/scenarios.json b/test/bower/scenarios.json deleted file mode 100644 index c58780672..000000000 --- a/test/bower/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "bower": {} - } - } -} \ No newline at end of file diff --git a/test/bower/test.sh b/test/bower/test.sh deleted file mode 100755 index ece96ea47..000000000 --- a/test/bower/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "bower --version" bower --version - -reportResults diff --git a/test/bpipe-sdkman/scenarios.json b/test/bpipe-sdkman/scenarios.json deleted file mode 100644 index b7e52e2cb..000000000 --- a/test/bpipe-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "bpipe-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/bpipe-sdkman/test.sh b/test/bpipe-sdkman/test.sh deleted file mode 100755 index da9441c62..000000000 --- a/test/bpipe-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type bpipe" type bpipe - -reportResults diff --git a/test/brownie/scenarios.json b/test/brownie/scenarios.json deleted file mode 100644 index a22761a61..000000000 --- a/test/brownie/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "brownie": {} - } - } -} \ No newline at end of file diff --git a/test/brownie/test.sh b/test/brownie/test.sh deleted file mode 100755 index 92a07e385..000000000 --- a/test/brownie/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "brownie --version" brownie --version - -reportResults diff --git a/test/browserify/scenarios.json b/test/browserify/scenarios.json deleted file mode 100644 index 0cb7a74e3..000000000 --- a/test/browserify/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "browserify": {} - } - } -} \ No newline at end of file diff --git a/test/browserify/test.sh b/test/browserify/test.sh deleted file mode 100755 index 1a3b95313..000000000 --- a/test/browserify/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "browserify --version" browserify --version - -reportResults diff --git a/test/btop-homebrew/scenarios.json b/test/btop-homebrew/scenarios.json deleted file mode 100644 index ff77e5c05..000000000 --- a/test/btop-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "btop-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/btop-homebrew/test.sh b/test/btop-homebrew/test.sh deleted file mode 100755 index 092094057..000000000 --- a/test/btop-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "btop --version" btop --version - -reportResults diff --git a/test/btrace-sdkman/scenarios.json b/test/btrace-sdkman/scenarios.json deleted file mode 100644 index 23f257205..000000000 --- a/test/btrace-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "btrace-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/btrace-sdkman/test.sh b/test/btrace-sdkman/test.sh deleted file mode 100755 index 619401d5c..000000000 --- a/test/btrace-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "btrace --version" btrace --version - -reportResults diff --git a/test/budibase-cli/scenarios.json b/test/budibase-cli/scenarios.json deleted file mode 100644 index 6a8fb3f33..000000000 --- a/test/budibase-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "budibase-cli": {} - } - } -} \ No newline at end of file diff --git a/test/budibase-cli/test.sh b/test/budibase-cli/test.sh deleted file mode 100755 index 7557060c1..000000000 --- a/test/budibase-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "budi --version" budi --version - -reportResults diff --git a/test/buku/scenarios.json b/test/buku/scenarios.json deleted file mode 100644 index fbcf840a3..000000000 --- a/test/buku/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "buku": {} - } - } -} \ No newline at end of file diff --git a/test/buku/test.sh b/test/buku/test.sh deleted file mode 100755 index ae14290c1..000000000 --- a/test/buku/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "buku --version" buku --version - -reportResults diff --git a/test/caddy/scenarios.json b/test/caddy/scenarios.json deleted file mode 100644 index 4728e1472..000000000 --- a/test/caddy/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "caddy": {} - } - } -} \ No newline at end of file diff --git a/test/caddy/test_defaults_debian.sh b/test/caddy/test_defaults_debian.sh deleted file mode 100755 index 954609e9d..000000000 --- a/test/caddy/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "caddy version" caddy version - -reportResults diff --git a/test/ccache-asdf/scenarios.json b/test/ccache-asdf/scenarios.json deleted file mode 100644 index 0b4d5136f..000000000 --- a/test/ccache-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ccache-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/ccache-asdf/test.sh b/test/ccache-asdf/test.sh deleted file mode 100755 index 3ab720c1d..000000000 --- a/test/ccache-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ccache --version" ccache --version - -reportResults diff --git a/test/checkov/scenarios.json b/test/checkov/scenarios.json deleted file mode 100644 index 5ca978b0b..000000000 --- a/test/checkov/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "checkov": {} - } - } -} \ No newline at end of file diff --git a/test/checkov/test.sh b/test/checkov/test.sh deleted file mode 100755 index a27cd42fc..000000000 --- a/test/checkov/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "checkov -v" checkov -v - -reportResults diff --git a/test/chezscheme-asdf/scenarios.json b/test/chezscheme-asdf/scenarios.json deleted file mode 100644 index 24c01565c..000000000 --- a/test/chezscheme-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "chezscheme-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/chezscheme-asdf/test.sh b/test/chezscheme-asdf/test.sh deleted file mode 100755 index b9f4e7247..000000000 --- a/test/chezscheme-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "scheme --help" scheme --help - -reportResults diff --git a/test/chisel/scenarios.json b/test/chisel/scenarios.json deleted file mode 100644 index 114370b82..000000000 --- a/test/chisel/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "chisel": {} - } - } -} \ No newline at end of file diff --git a/test/chisel/test_defaults_debian.sh b/test/chisel/test_defaults_debian.sh deleted file mode 100755 index 416156e63..000000000 --- a/test/chisel/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "chisel --version" chisel --version - -reportResults diff --git a/test/circleci-cli/scenarios.json b/test/circleci-cli/scenarios.json deleted file mode 100644 index e061a2d57..000000000 --- a/test/circleci-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "circleci-cli": {} - } - } -} \ No newline at end of file diff --git a/test/circleci-cli/test_defaults_debian.sh b/test/circleci-cli/test_defaults_debian.sh deleted file mode 100755 index f8e88be01..000000000 --- a/test/circleci-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "circleci version" circleci version - -reportResults diff --git a/test/clojure-asdf/scenarios.json b/test/clojure-asdf/scenarios.json deleted file mode 100644 index 90c067e75..000000000 --- a/test/clojure-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "clojure-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/clojure-asdf/test.sh b/test/clojure-asdf/test.sh deleted file mode 100755 index 459a47971..000000000 --- a/test/clojure-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "clojure --version" clojure --version - -reportResults diff --git a/test/cloud-nuke/scenarios.json b/test/cloud-nuke/scenarios.json deleted file mode 100644 index 8fb7b6844..000000000 --- a/test/cloud-nuke/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cloud-nuke": {} - } - } -} \ No newline at end of file diff --git a/test/cloud-nuke/test_defaults_debian.sh b/test/cloud-nuke/test_defaults_debian.sh deleted file mode 100755 index c15c22e4f..000000000 --- a/test/cloud-nuke/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cloud-nuke --version" cloud-nuke --version - -reportResults diff --git a/test/cloudflare-wrangler/scenarios.json b/test/cloudflare-wrangler/scenarios.json deleted file mode 100644 index 55bb4d392..000000000 --- a/test/cloudflare-wrangler/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cloudflare-wrangler": {} - } - } -} \ No newline at end of file diff --git a/test/cloudflare-wrangler/test.sh b/test/cloudflare-wrangler/test.sh deleted file mode 100755 index 13ebba4b3..000000000 --- a/test/cloudflare-wrangler/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "wrangler --version" wrangler --version - -reportResults diff --git a/test/cloudflared-fips/scenarios.json b/test/cloudflared-fips/scenarios.json deleted file mode 100644 index ffed6edaa..000000000 --- a/test/cloudflared-fips/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cloudflared-fips": {} - } - } -} \ No newline at end of file diff --git a/test/cloudflared-fips/test_defaults_debian.sh b/test/cloudflared-fips/test_defaults_debian.sh deleted file mode 100755 index 8afa49b18..000000000 --- a/test/cloudflared-fips/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cloudflared --version" cloudflared --version - -reportResults diff --git a/test/cloudflared/scenarios.json b/test/cloudflared/scenarios.json deleted file mode 100644 index f58d11e45..000000000 --- a/test/cloudflared/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cloudflared": {} - } - } -} \ No newline at end of file diff --git a/test/cloudflared/test_defaults_debian.sh b/test/cloudflared/test_defaults_debian.sh deleted file mode 100755 index 8afa49b18..000000000 --- a/test/cloudflared/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cloudflared --version" cloudflared --version - -reportResults diff --git a/test/cloudinary-cli/scenarios.json b/test/cloudinary-cli/scenarios.json deleted file mode 100644 index e351071d0..000000000 --- a/test/cloudinary-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cloudinary-cli": {} - } - } -} \ No newline at end of file diff --git a/test/cloudinary-cli/test.sh b/test/cloudinary-cli/test.sh deleted file mode 100755 index 095789370..000000000 --- a/test/cloudinary-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cld --version" cld --version - -reportResults diff --git a/test/cmake/scenarios.json b/test/cmake/scenarios.json deleted file mode 100644 index cbb422a44..000000000 --- a/test/cmake/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cmake": {} - } - }, - "test_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cmake": { - "version": "3.31.3" - } - } - } -} \ No newline at end of file diff --git a/test/cmake/test.sh b/test/cmake/test.sh deleted file mode 100755 index 0ff01562f..000000000 --- a/test/cmake/test.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cmake is installed" cmake --version -check "ctest is installed" ctest --version -check "cpack is installed" cpack --version - -reportResults diff --git a/test/cmake/test_debian.sh b/test/cmake/test_debian.sh deleted file mode 100755 index 0ff01562f..000000000 --- a/test/cmake/test_debian.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cmake is installed" cmake --version -check "ctest is installed" ctest --version -check "cpack is installed" cpack --version - -reportResults diff --git a/test/cmake/test_specific_version.sh b/test/cmake/test_specific_version.sh deleted file mode 100755 index 57e36e616..000000000 --- a/test/cmake/test_specific_version.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cmake version is equal to 3.31.3" sh -c "cmake --version | grep '3.31.3'" -check "ctest version is equal to 3.31.3" sh -c "ctest --version | grep '3.31.3'" -check "cpack version is equal to 3.31.3" sh -c "cpack --version | grep '3.31.3'" - -reportResults diff --git a/test/codefresh-cli/scenarios.json b/test/codefresh-cli/scenarios.json deleted file mode 100644 index 8a6ce2f3a..000000000 --- a/test/codefresh-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "codefresh-cli": {} - } - } -} \ No newline at end of file diff --git a/test/codefresh-cli/test_defaults_debian.sh b/test/codefresh-cli/test_defaults_debian.sh deleted file mode 100755 index fb0736509..000000000 --- a/test/codefresh-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "codefresh version" codefresh version - -reportResults diff --git a/test/composer/scenarios.json b/test/composer/scenarios.json deleted file mode 100644 index a6fd652c6..000000000 --- a/test/composer/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/php", - "features": { - "composer": {} - } - } -} \ No newline at end of file diff --git a/test/composer/test_defaults_debian.sh b/test/composer/test_defaults_debian.sh deleted file mode 100755 index 4b57e5c9f..000000000 --- a/test/composer/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "composer --version" composer --version - -reportResults diff --git a/test/concurnas-sdkman/scenarios.json b/test/concurnas-sdkman/scenarios.json deleted file mode 100644 index f2dd7c8a4..000000000 --- a/test/concurnas-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "concurnas-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/concurnas-sdkman/test.sh b/test/concurnas-sdkman/test.sh deleted file mode 100755 index e6db58bc1..000000000 --- a/test/concurnas-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "conc --help" conc --help - -reportResults diff --git a/test/connor-sdkman/scenarios.json b/test/connor-sdkman/scenarios.json deleted file mode 100644 index 0c37ce4e7..000000000 --- a/test/connor-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "connor-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/connor-sdkman/test.sh b/test/connor-sdkman/test.sh deleted file mode 100755 index 8b56d0568..000000000 --- a/test/connor-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "connor --version" connor --version - -reportResults diff --git a/test/consul-asdf/scenarios.json b/test/consul-asdf/scenarios.json deleted file mode 100644 index c956a41d0..000000000 --- a/test/consul-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "consul-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/consul-asdf/test.sh b/test/consul-asdf/test.sh deleted file mode 100755 index 643d29b78..000000000 --- a/test/consul-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "consul --version" consul --version - -reportResults diff --git a/test/consul-exporter/scenarios.json b/test/consul-exporter/scenarios.json deleted file mode 100644 index 0e8009219..000000000 --- a/test/consul-exporter/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "consul-exporter": {} - } - } -} \ No newline at end of file diff --git a/test/consul-exporter/test_defaults_debian.sh b/test/consul-exporter/test_defaults_debian.sh deleted file mode 100755 index c07b8a8ea..000000000 --- a/test/consul-exporter/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "consul_exporter --help" consul_exporter --help - -reportResults diff --git a/test/cookiecutter/scenarios.json b/test/cookiecutter/scenarios.json deleted file mode 100644 index 9b2c28ed2..000000000 --- a/test/cookiecutter/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cookiecutter": {} - } - } -} \ No newline at end of file diff --git a/test/cookiecutter/test.sh b/test/cookiecutter/test.sh deleted file mode 100755 index 9c5f3da13..000000000 --- a/test/cookiecutter/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cookiecutter --version" cookiecutter --version - -reportResults diff --git a/test/copier/injections.sh b/test/copier/injections.sh deleted file mode 100755 index 76091881c..000000000 --- a/test/copier/injections.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "copier --version" copier --version -check "copier has jinja2-strcase extension available" bash -c 'find $(dirname $(dirname $(which copier))) -name "jinja2_strcase" | grep jinja2_strcase' - -reportResults diff --git a/test/copier/scenarios.json b/test/copier/scenarios.json deleted file mode 100644 index 3c05afd14..000000000 --- a/test/copier/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "copier": {} - } - }, - "injections": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "copier": { - "injections": "jinja2-strcase" - } - } - } -} \ No newline at end of file diff --git a/test/copier/test.sh b/test/copier/test.sh deleted file mode 100755 index 5bef6da60..000000000 --- a/test/copier/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "copier --version" copier --version - -reportResults diff --git a/test/corepack/scenarios.json b/test/corepack/scenarios.json deleted file mode 100644 index b7e689470..000000000 --- a/test/corepack/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "corepack": {} - } - } -} \ No newline at end of file diff --git a/test/corepack/test.sh b/test/corepack/test.sh deleted file mode 100755 index d48c606f5..000000000 --- a/test/corepack/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "corepack --version" corepack --version - -reportResults diff --git a/test/cosign/scenarios.json b/test/cosign/scenarios.json deleted file mode 100644 index 1b878da11..000000000 --- a/test/cosign/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cosign": {} - } - } -} \ No newline at end of file diff --git a/test/cosign/test_defaults_debian.sh b/test/cosign/test_defaults_debian.sh deleted file mode 100755 index 699c32b68..000000000 --- a/test/cosign/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cosign version" cosign version - -reportResults diff --git a/test/coverage-py/scenarios.json b/test/coverage-py/scenarios.json deleted file mode 100644 index c52ea4a8d..000000000 --- a/test/coverage-py/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "coverage-py": {} - } - } -} \ No newline at end of file diff --git a/test/coverage-py/test.sh b/test/coverage-py/test.sh deleted file mode 100755 index 1847641ad..000000000 --- a/test/coverage-py/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "coverage --version" coverage --version - -reportResults diff --git a/test/crystal-asdf/scenarios.json b/test/crystal-asdf/scenarios.json deleted file mode 100644 index a0a962b6d..000000000 --- a/test/crystal-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "crystal-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/crystal-asdf/test.sh b/test/crystal-asdf/test.sh deleted file mode 100755 index bec989b38..000000000 --- a/test/crystal-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "crystal --version" crystal --version - -reportResults diff --git a/test/cuba-sdkman/scenarios.json b/test/cuba-sdkman/scenarios.json deleted file mode 100644 index 6064c6e48..000000000 --- a/test/cuba-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cuba-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/cuba-sdkman/test.sh b/test/cuba-sdkman/test.sh deleted file mode 100755 index 5c15d345a..000000000 --- a/test/cuba-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "cuba-cli version" cuba-cli version - -reportResults diff --git a/test/curl-apt-get/scenarios.json b/test/curl-apt-get/scenarios.json deleted file mode 100644 index 57209b3d4..000000000 --- a/test/curl-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "curl-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/curl-apt-get/test.sh b/test/curl-apt-get/test.sh deleted file mode 100755 index 088b46f12..000000000 --- a/test/curl-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "curl --version" curl --version - -reportResults diff --git a/test/curl-homebrew/scenarios.json b/test/curl-homebrew/scenarios.json deleted file mode 100644 index 3a21b510f..000000000 --- a/test/curl-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "curl-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/curl-homebrew/test.sh b/test/curl-homebrew/test.sh deleted file mode 100755 index 088b46f12..000000000 --- a/test/curl-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "curl --version" curl --version - -reportResults diff --git a/test/cve-bin-tool/scenarios.json b/test/cve-bin-tool/scenarios.json deleted file mode 100644 index 9c3b7dd42..000000000 --- a/test/cve-bin-tool/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cve-bin-tool": {} - } - } -} \ No newline at end of file diff --git a/test/cve-bin-tool/test_defaults.sh b/test/cve-bin-tool/test_defaults.sh deleted file mode 100755 index 7adaa316d..000000000 --- a/test/cve-bin-tool/test_defaults.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type cve-bin-tool" type cve-bin-tool - -reportResults diff --git a/test/cxf-sdkman/scenarios.json b/test/cxf-sdkman/scenarios.json deleted file mode 100644 index 1629dd281..000000000 --- a/test/cxf-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cxf-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/cxf-sdkman/test.sh b/test/cxf-sdkman/test.sh deleted file mode 100755 index 54f7013b3..000000000 --- a/test/cxf-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type java2js && type wsdl2xml" type java2js && type wsdl2xml - -reportResults diff --git a/test/cyclonedx-cli/scenarios.json b/test/cyclonedx-cli/scenarios.json deleted file mode 100644 index 278bfa813..000000000 --- a/test/cyclonedx-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cyclonedx-cli": {} - } - } -} \ No newline at end of file diff --git a/test/cyclonedx-cli/test_defaults_debian.sh b/test/cyclonedx-cli/test_defaults_debian.sh deleted file mode 100755 index 4e781037f..000000000 --- a/test/cyclonedx-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cyclonedx --version" cyclonedx --version - -reportResults diff --git a/test/cyclonedx-python/scenarios.json b/test/cyclonedx-python/scenarios.json deleted file mode 100644 index f3520282b..000000000 --- a/test/cyclonedx-python/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cyclonedx-python": {} - } - } -} \ No newline at end of file diff --git a/test/cyclonedx-python/test_defaults.sh b/test/cyclonedx-python/test_defaults.sh deleted file mode 100755 index d6dc94f61..000000000 --- a/test/cyclonedx-python/test_defaults.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cyclonedx-py --help" cyclonedx-py --help - -reportResults diff --git a/test/cz-cli/scenarios.json b/test/cz-cli/scenarios.json deleted file mode 100644 index 48ea3443e..000000000 --- a/test/cz-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cz-cli": {} - } - } -} \ No newline at end of file diff --git a/test/cz-cli/test.sh b/test/cz-cli/test.sh deleted file mode 100755 index 71445789d..000000000 --- a/test/cz-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type cz" type cz - -reportResults diff --git a/test/d/scenarios.json b/test/d/scenarios.json deleted file mode 100644 index a1fee3e00..000000000 --- a/test/d/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "d": {} - } - } -} \ No newline at end of file diff --git a/test/d/test.sh b/test/d/test.sh deleted file mode 100755 index d5fc98ec1..000000000 --- a/test/d/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "dlang dir exists" ls /usr/local/lib/dlang - -reportResults diff --git a/test/dasel-asdf/scenarios.json b/test/dasel-asdf/scenarios.json deleted file mode 100644 index b24c66af0..000000000 --- a/test/dasel-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "dasel-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/dasel-asdf/test.sh b/test/dasel-asdf/test.sh deleted file mode 100755 index 0fef2ccf3..000000000 --- a/test/dasel-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "dasel --version" dasel --version - -reportResults diff --git a/test/dashlane-cli/scenarios.json b/test/dashlane-cli/scenarios.json deleted file mode 100644 index 87ef143f5..000000000 --- a/test/dashlane-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "dashlane-cli": {} - } - } -} \ No newline at end of file diff --git a/test/dashlane-cli/test_defaults_debian.sh b/test/dashlane-cli/test_defaults_debian.sh deleted file mode 100755 index 5971fe27b..000000000 --- a/test/dashlane-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "dcli --version" dcli --version - -reportResults diff --git a/test/datadog-ci-cli/scenarios.json b/test/datadog-ci-cli/scenarios.json deleted file mode 100644 index 2ad1091e8..000000000 --- a/test/datadog-ci-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "datadog-ci-cli": {} - } - } -} \ No newline at end of file diff --git a/test/datadog-ci-cli/test_defaults_debian.sh b/test/datadog-ci-cli/test_defaults_debian.sh deleted file mode 100755 index f51a1d7c4..000000000 --- a/test/datadog-ci-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "datadog-ci version" datadog-ci version - -reportResults diff --git a/test/datasette/scenarios.json b/test/datasette/scenarios.json deleted file mode 100644 index c7bf2594c..000000000 --- a/test/datasette/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "datasette": {} - } - } -} \ No newline at end of file diff --git a/test/datasette/test.sh b/test/datasette/test.sh deleted file mode 100755 index 135189013..000000000 --- a/test/datasette/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "datasette --version" datasette --version - -reportResults diff --git a/test/dbt-coverage/scenarios.json b/test/dbt-coverage/scenarios.json deleted file mode 100644 index 90aba0c4f..000000000 --- a/test/dbt-coverage/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "dbt-coverage": {} - } - } -} \ No newline at end of file diff --git a/test/dbt-coverage/test.sh b/test/dbt-coverage/test.sh deleted file mode 100755 index bed776a83..000000000 --- a/test/dbt-coverage/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "dbt-coverage --help" dbt-coverage --help - -reportResults diff --git a/test/ddgr-apt-get/scenarios.json b/test/ddgr-apt-get/scenarios.json deleted file mode 100644 index 2287d07a4..000000000 --- a/test/ddgr-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ddgr-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/ddgr-apt-get/test.sh b/test/ddgr-apt-get/test.sh deleted file mode 100755 index 69b5aca76..000000000 --- a/test/ddgr-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ddgr --version" ddgr --version - -reportResults diff --git a/test/ddgr-homebrew/scenarios.json b/test/ddgr-homebrew/scenarios.json deleted file mode 100644 index f6f7062d4..000000000 --- a/test/ddgr-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ddgr-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/ddgr-homebrew/test.sh b/test/ddgr-homebrew/test.sh deleted file mode 100755 index 69b5aca76..000000000 --- a/test/ddgr-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ddgr --version" ddgr --version - -reportResults diff --git a/test/deno-asdf/scenarios.json b/test/deno-asdf/scenarios.json deleted file mode 100644 index 316c1e85b..000000000 --- a/test/deno-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "deno-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/deno-asdf/test.sh b/test/deno-asdf/test.sh deleted file mode 100755 index 1cc6cbc10..000000000 --- a/test/deno-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "deno --version" deno --version - -reportResults diff --git a/test/deno/scenarios.json b/test/deno/scenarios.json deleted file mode 100644 index cc91bd2ba..000000000 --- a/test/deno/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "deno": {} - } - } -} \ No newline at end of file diff --git a/test/deno/test.sh b/test/deno/test.sh deleted file mode 100755 index 8cca813da..000000000 --- a/test/deno/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "deno version" deno --version - -reportResults diff --git a/test/devcontainers-cli/scenarios.json b/test/devcontainers-cli/scenarios.json deleted file mode 100644 index 48f2edcae..000000000 --- a/test/devcontainers-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "devcontainers-cli": {} - } - } -} \ No newline at end of file diff --git a/test/devcontainers-cli/test.sh b/test/devcontainers-cli/test.sh deleted file mode 100755 index 5c4fa32c0..000000000 --- a/test/devcontainers-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "devcontainer --version" devcontainer --version - -reportResults diff --git a/test/digitalocean-cli/scenarios.json b/test/digitalocean-cli/scenarios.json deleted file mode 100644 index d8eb7ff50..000000000 --- a/test/digitalocean-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "digitalocean-cli": {} - } - } -} \ No newline at end of file diff --git a/test/digitalocean-cli/test.sh b/test/digitalocean-cli/test.sh deleted file mode 100755 index 916de1501..000000000 --- a/test/digitalocean-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "doctl cli existance" doctl version - -reportResults diff --git a/test/direnv-asdf/scenarios.json b/test/direnv-asdf/scenarios.json deleted file mode 100644 index c88949de2..000000000 --- a/test/direnv-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "direnv-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/direnv-asdf/test.sh b/test/direnv-asdf/test.sh deleted file mode 100755 index 5e7e2aa54..000000000 --- a/test/direnv-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "direnv --version" direnv --version - -reportResults diff --git a/test/direnv/scenarios.json b/test/direnv/scenarios.json deleted file mode 100644 index d73612ead..000000000 --- a/test/direnv/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "direnv": {} - } - } -} \ No newline at end of file diff --git a/test/direnv/test_defaults_debian.sh b/test/direnv/test_defaults_debian.sh deleted file mode 100755 index 5e7e2aa54..000000000 --- a/test/direnv/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "direnv --version" direnv --version - -reportResults diff --git a/test/dive/scenarios.json b/test/dive/scenarios.json deleted file mode 100644 index cdf17fabe..000000000 --- a/test/dive/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "dive": {} - } - } -} \ No newline at end of file diff --git a/test/dive/test_defaults_debian.sh b/test/dive/test_defaults_debian.sh deleted file mode 100755 index b68ea3f8e..000000000 --- a/test/dive/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "dive --version" dive --version - -reportResults diff --git a/test/dnote/scenarios.json b/test/dnote/scenarios.json deleted file mode 100644 index fb73bb37d..000000000 --- a/test/dnote/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "dnote": {} - } - } -} \ No newline at end of file diff --git a/test/dnote/test_defaults_debian.sh b/test/dnote/test_defaults_debian.sh deleted file mode 100755 index fa403fa41..000000000 --- a/test/dnote/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "dnote version" dnote version - -reportResults diff --git a/test/doctoolchain-sdkman/scenarios.json b/test/doctoolchain-sdkman/scenarios.json deleted file mode 100644 index db27abba5..000000000 --- a/test/doctoolchain-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "doctoolchain-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/doctoolchain-sdkman/test.sh b/test/doctoolchain-sdkman/test.sh deleted file mode 100755 index a9078081b..000000000 --- a/test/doctoolchain-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type doctoolchain" type doctoolchain - -reportResults diff --git a/test/dprint-asdf/scenarios.json b/test/dprint-asdf/scenarios.json deleted file mode 100644 index d79a6a612..000000000 --- a/test/dprint-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "dprint-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/dprint-asdf/test.sh b/test/dprint-asdf/test.sh deleted file mode 100755 index 7c372173b..000000000 --- a/test/dprint-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "dprint --version" dprint --version - -reportResults diff --git a/test/driftctl/scenarios.json b/test/driftctl/scenarios.json deleted file mode 100644 index d774aacb2..000000000 --- a/test/driftctl/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "driftctl": {} - } - } -} \ No newline at end of file diff --git a/test/driftctl/test_defaults_debian.sh b/test/driftctl/test_defaults_debian.sh deleted file mode 100755 index 49baee587..000000000 --- a/test/driftctl/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "driftctl version" driftctl version - -reportResults diff --git a/test/drone-cli/scenarios.json b/test/drone-cli/scenarios.json deleted file mode 100644 index e4d488840..000000000 --- a/test/drone-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "drone-cli": {} - } - } -} \ No newline at end of file diff --git a/test/drone-cli/test_defaults_debian.sh b/test/drone-cli/test_defaults_debian.sh deleted file mode 100755 index 94e8b9e9b..000000000 --- a/test/drone-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "drone --version" drone --version - -reportResults diff --git a/test/dua/scenarios.json b/test/dua/scenarios.json deleted file mode 100644 index 246e7897c..000000000 --- a/test/dua/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "dua": {} - } - } -} \ No newline at end of file diff --git a/test/dua/test_defaults_debian.sh b/test/dua/test_defaults_debian.sh deleted file mode 100755 index 91627e3f3..000000000 --- a/test/dua/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "dua --version" dua --version - -reportResults diff --git a/test/duf/scenarios.json b/test/duf/scenarios.json deleted file mode 100644 index 212783492..000000000 --- a/test/duf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "duf": {} - } - } -} \ No newline at end of file diff --git a/test/duf/test_defaults_debian.sh b/test/duf/test_defaults_debian.sh deleted file mode 100755 index 366060f82..000000000 --- a/test/duf/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "duf --version" duf --version - -reportResults diff --git a/test/dufs/scenarios.json b/test/dufs/scenarios.json deleted file mode 100644 index 90e1bffb7..000000000 --- a/test/dufs/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "dufs": {} - } - } -} \ No newline at end of file diff --git a/test/dufs/test_defaults_debian.sh b/test/dufs/test_defaults_debian.sh deleted file mode 100755 index c307865ff..000000000 --- a/test/dufs/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "dufs --version" dufs --version - -reportResults diff --git a/test/eas-cli/scenarios.json b/test/eas-cli/scenarios.json deleted file mode 100644 index bf9e56e4e..000000000 --- a/test/eas-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "eas-cli": {} - } - } -} \ No newline at end of file diff --git a/test/eas-cli/test.sh b/test/eas-cli/test.sh deleted file mode 100755 index b202a6fc2..000000000 --- a/test/eas-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "eas --version" eas --version - -reportResults diff --git a/test/eget/scenarios.json b/test/eget/scenarios.json deleted file mode 100644 index c35ef1d22..000000000 --- a/test/eget/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "eget": {} - } - } -} \ No newline at end of file diff --git a/test/eget/test_defaults_debian.sh b/test/eget/test_defaults_debian.sh deleted file mode 100755 index 50c976cd0..000000000 --- a/test/eget/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "eget --version" eget --version - -reportResults diff --git a/test/elasticsearch-asdf/scenarios.json b/test/elasticsearch-asdf/scenarios.json deleted file mode 100644 index 0f132b249..000000000 --- a/test/elasticsearch-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "elasticsearch-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/elasticsearch-asdf/test.sh b/test/elasticsearch-asdf/test.sh deleted file mode 100755 index 4bf39add0..000000000 --- a/test/elasticsearch-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "elasticsearch --version" elasticsearch --version - -reportResults diff --git a/test/elm-asdf/scenarios.json b/test/elm-asdf/scenarios.json deleted file mode 100644 index 0ba003b55..000000000 --- a/test/elm-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "elm-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/elm-asdf/test.sh b/test/elm-asdf/test.sh deleted file mode 100755 index bd08c74ec..000000000 --- a/test/elm-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "elm --version" elm --version - -reportResults diff --git a/test/ember-cli/scenarios.json b/test/ember-cli/scenarios.json deleted file mode 100644 index 64722c167..000000000 --- a/test/ember-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ember-cli": {} - } - } -} \ No newline at end of file diff --git a/test/ember-cli/test.sh b/test/ember-cli/test.sh deleted file mode 100755 index e57997645..000000000 --- a/test/ember-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ember --version" ember --version - -reportResults diff --git a/test/envoy/scenarios.json b/test/envoy/scenarios.json deleted file mode 100644 index 45cb5d3ea..000000000 --- a/test/envoy/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "envoy": {} - } - } -} \ No newline at end of file diff --git a/test/envoy/test_defaults_debian.sh b/test/envoy/test_defaults_debian.sh deleted file mode 100755 index 90f400392..000000000 --- a/test/envoy/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "envoy --version" envoy --version - -reportResults diff --git a/test/epinio/scenarios.json b/test/epinio/scenarios.json deleted file mode 100644 index 16ec5032a..000000000 --- a/test/epinio/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "epinio": {} - } - } -} \ No newline at end of file diff --git a/test/epinio/test_defaults_debian.sh b/test/epinio/test_defaults_debian.sh deleted file mode 100755 index 4481c9cc7..000000000 --- a/test/epinio/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "epinio --version" epinio --version - -reportResults diff --git a/test/etcd/scenarios.json b/test/etcd/scenarios.json deleted file mode 100644 index 02fe58dec..000000000 --- a/test/etcd/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "etcd": {} - } - } -} \ No newline at end of file diff --git a/test/etcd/test_defaults_debian.sh b/test/etcd/test_defaults_debian.sh deleted file mode 100755 index aa4424c6e..000000000 --- a/test/etcd/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "etcd --version && etcdctl version" etcd --version && etcdctl version - -reportResults diff --git a/test/exa/scenarios.json b/test/exa/scenarios.json deleted file mode 100644 index 17e6ecce1..000000000 --- a/test/exa/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "exa": {} - } - } -} \ No newline at end of file diff --git a/test/exa/test_defaults_debian.sh b/test/exa/test_defaults_debian.sh deleted file mode 100755 index 83500a62d..000000000 --- a/test/exa/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "exa --version" exa --version - -reportResults diff --git a/test/exercism-cli/scenarios.json b/test/exercism-cli/scenarios.json deleted file mode 100644 index 636dda5d9..000000000 --- a/test/exercism-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "exercism-cli": {} - } - } -} \ No newline at end of file diff --git a/test/exercism-cli/test_defaults_debian.sh b/test/exercism-cli/test_defaults_debian.sh deleted file mode 100755 index 1b4a9163e..000000000 --- a/test/exercism-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "exercism version" exercism version - -reportResults diff --git a/test/expo-cli/scenarios.json b/test/expo-cli/scenarios.json deleted file mode 100644 index bb3a9ae68..000000000 --- a/test/expo-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "expo-cli": {} - } - } -} \ No newline at end of file diff --git a/test/expo-cli/test.sh b/test/expo-cli/test.sh deleted file mode 100755 index cc108c2ac..000000000 --- a/test/expo-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "expo --version" expo --version - -reportResults diff --git a/test/express-generator/scenarios.json b/test/express-generator/scenarios.json deleted file mode 100644 index 413c56f16..000000000 --- a/test/express-generator/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "express-generator": {} - } - } -} \ No newline at end of file diff --git a/test/express-generator/test.sh b/test/express-generator/test.sh deleted file mode 100755 index 7d0162681..000000000 --- a/test/express-generator/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "express --version" express --version - -reportResults diff --git a/test/fd/scenarios.json b/test/fd/scenarios.json deleted file mode 100644 index 5d89eb885..000000000 --- a/test/fd/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "fd": {} - } - } -} \ No newline at end of file diff --git a/test/fd/test_defaults_debian.sh b/test/fd/test_defaults_debian.sh deleted file mode 100755 index 52437a014..000000000 --- a/test/fd/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "fd --version" fd --version - -reportResults diff --git a/test/ffmpeg-apt-get/scenarios.json b/test/ffmpeg-apt-get/scenarios.json deleted file mode 100644 index d1f955369..000000000 --- a/test/ffmpeg-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ffmpeg-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/ffmpeg-apt-get/test.sh b/test/ffmpeg-apt-get/test.sh deleted file mode 100755 index b49360c4b..000000000 --- a/test/ffmpeg-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ffmpeg -version" ffmpeg -version - -reportResults diff --git a/test/firebase-cli/scenarios.json b/test/firebase-cli/scenarios.json deleted file mode 100644 index f52f446c1..000000000 --- a/test/firebase-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "firebase-cli": {} - } - } -} \ No newline at end of file diff --git a/test/firebase-cli/test.sh b/test/firebase-cli/test.sh deleted file mode 100755 index b1484f51c..000000000 --- a/test/firebase-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "firebase --version" firebase --version - -reportResults diff --git a/test/fish-apt-get/scenarios.json b/test/fish-apt-get/scenarios.json deleted file mode 100644 index 6fd1c9900..000000000 --- a/test/fish-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "fish-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/fish-apt-get/test.sh b/test/fish-apt-get/test.sh deleted file mode 100755 index 1c484e2de..000000000 --- a/test/fish-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "fish -version" fish -version - -reportResults diff --git a/test/fkill/scenarios.json b/test/fkill/scenarios.json deleted file mode 100644 index 94ae9e11b..000000000 --- a/test/fkill/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "fkill": {} - } - } -} \ No newline at end of file diff --git a/test/fkill/test.sh b/test/fkill/test.sh deleted file mode 100755 index 9eb72cc38..000000000 --- a/test/fkill/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "fkill --version" fkill --version - -reportResults diff --git a/test/flake8/scenarios.json b/test/flake8/scenarios.json deleted file mode 100644 index dc335c058..000000000 --- a/test/flake8/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "flake8": {} - } - } -} \ No newline at end of file diff --git a/test/flake8/test.sh b/test/flake8/test.sh deleted file mode 100755 index 6d072f3e2..000000000 --- a/test/flake8/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "flake8 --version" flake8 --version - -reportResults diff --git a/test/flink-sdkman/scenarios.json b/test/flink-sdkman/scenarios.json deleted file mode 100644 index f7b4b1e3f..000000000 --- a/test/flink-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "flink-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/flink-sdkman/test.sh b/test/flink-sdkman/test.sh deleted file mode 100755 index 268195695..000000000 --- a/test/flink-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "flink --version" flink --version - -reportResults diff --git a/test/flit/scenarios.json b/test/flit/scenarios.json deleted file mode 100644 index b475dfa08..000000000 --- a/test/flit/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "flit": {} - } - } -} \ No newline at end of file diff --git a/test/flit/test.sh b/test/flit/test.sh deleted file mode 100755 index 7d4f0cf5e..000000000 --- a/test/flit/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "flit --version" flit --version - -reportResults diff --git a/test/former2-cli/scenarios.json b/test/former2-cli/scenarios.json deleted file mode 100644 index 4a708c453..000000000 --- a/test/former2-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "former2-cli": {} - } - } -} \ No newline at end of file diff --git a/test/former2-cli/test.sh b/test/former2-cli/test.sh deleted file mode 100755 index 0dde9f368..000000000 --- a/test/former2-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "former2 --version" former2 --version - -reportResults diff --git a/test/fossil-apt-get/scenarios.json b/test/fossil-apt-get/scenarios.json deleted file mode 100644 index 97d6e6cac..000000000 --- a/test/fossil-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "fossil-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/fossil-apt-get/test.sh b/test/fossil-apt-get/test.sh deleted file mode 100755 index 04239e7b9..000000000 --- a/test/fossil-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "fossil version" fossil version - -reportResults diff --git a/test/fossil-homebrew/scenarios.json b/test/fossil-homebrew/scenarios.json deleted file mode 100644 index 3b262dd81..000000000 --- a/test/fossil-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "fossil-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/fossil-homebrew/test.sh b/test/fossil-homebrew/test.sh deleted file mode 100755 index 04239e7b9..000000000 --- a/test/fossil-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "fossil version" fossil version - -reportResults diff --git a/test/fulcio/scenarios.json b/test/fulcio/scenarios.json deleted file mode 100644 index cedec4857..000000000 --- a/test/fulcio/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "fulcio": {} - } - } -} \ No newline at end of file diff --git a/test/fulcio/test_defaults_debian.sh b/test/fulcio/test_defaults_debian.sh deleted file mode 100755 index 5d503808b..000000000 --- a/test/fulcio/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "fulcio version" fulcio version - -reportResults diff --git a/test/fzf/scenarios.json b/test/fzf/scenarios.json deleted file mode 100644 index 96088bf4a..000000000 --- a/test/fzf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "fzf": {} - } - } -} \ No newline at end of file diff --git a/test/fzf/test_defaults_debian.sh b/test/fzf/test_defaults_debian.sh deleted file mode 100755 index 846258bef..000000000 --- a/test/fzf/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "fzf --version" fzf --version - -reportResults diff --git a/test/gaiden-sdkman/scenarios.json b/test/gaiden-sdkman/scenarios.json deleted file mode 100644 index 0318e784c..000000000 --- a/test/gaiden-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gaiden-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/gaiden-sdkman/test.sh b/test/gaiden-sdkman/test.sh deleted file mode 100755 index 27ba12c86..000000000 --- a/test/gaiden-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "gaiden --version" gaiden --version - -reportResults diff --git a/test/ganache/scenarios.json b/test/ganache/scenarios.json deleted file mode 100644 index 821eea13a..000000000 --- a/test/ganache/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ganache": {} - } - } -} \ No newline at end of file diff --git a/test/ganache/test.sh b/test/ganache/test.sh deleted file mode 100755 index fcf05b696..000000000 --- a/test/ganache/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ganache --version" ganache --version - -reportResults diff --git a/test/gcovr/scenarios.json b/test/gcovr/scenarios.json deleted file mode 100644 index 7835fdeb0..000000000 --- a/test/gcovr/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gcovr": {} - } - }, - "test_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gcovr": { - "version": "8.1" - } - } - } -} \ No newline at end of file diff --git a/test/gcovr/test.sh b/test/gcovr/test.sh deleted file mode 100755 index e37d0dd93..000000000 --- a/test/gcovr/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gcovr is installed" gcovr --version - -reportResults diff --git a/test/gcovr/test_debian.sh b/test/gcovr/test_debian.sh deleted file mode 100755 index e37d0dd93..000000000 --- a/test/gcovr/test_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gcovr is installed" gcovr --version - -reportResults diff --git a/test/gcovr/test_specific_version.sh b/test/gcovr/test_specific_version.sh deleted file mode 100755 index 177c74690..000000000 --- a/test/gcovr/test_specific_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gcovr version is equal to 8.1" sh -c "gcovr --version | grep 'gcovr 8.1'" - -reportResults diff --git a/test/gdbgui/scenarios.json b/test/gdbgui/scenarios.json deleted file mode 100644 index 31404d55b..000000000 --- a/test/gdbgui/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gdbgui": {} - } - } -} \ No newline at end of file diff --git a/test/gdbgui/test.sh b/test/gdbgui/test.sh deleted file mode 100755 index 29a225ee0..000000000 --- a/test/gdbgui/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gdbgui --version" gdbgui --version - -reportResults diff --git a/test/gh-cli/scenarios.json b/test/gh-cli/scenarios.json deleted file mode 100644 index 627bb9851..000000000 --- a/test/gh-cli/scenarios.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gh-cli": {} - } - }, - "test_defaults_alpine": { - "image": "mcr.microsoft.com/devcontainers/base:alpine", - "features": { - "gh-cli": {} - } - } -} \ No newline at end of file diff --git a/test/gh-cli/test_defaults_alpine.sh b/test/gh-cli/test_defaults_alpine.sh deleted file mode 100755 index 0b0ba2fca..000000000 --- a/test/gh-cli/test_defaults_alpine.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gh --version" gh --version - -reportResults diff --git a/test/gh-cli/test_defaults_debian.sh b/test/gh-cli/test_defaults_debian.sh deleted file mode 100755 index 0b0ba2fca..000000000 --- a/test/gh-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gh --version" gh --version - -reportResults diff --git a/test/gh-release/scenarios.json b/test/gh-release/scenarios.json deleted file mode 100644 index 1b1aee84d..000000000 --- a/test/gh-release/scenarios.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gh-release": { - "version": "latest", - "repo": "cli/cli", - "binaryNames": "gh" - } - } - }, - "test_defaults_alpine": { - "image": "mcr.microsoft.com/devcontainers/base:alpine", - "features": { - "gh-release": { - "version": "latest", - "repo": "cli/cli", - "binaryNames": "gh" - } - } - }, - "test_act": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gh-release": { - "version": "latest", - "repo": "nektos/act", - "binaryNames": "act" - } - } - }, - "test_etcd": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gh-release": { - "version": "latest", - "repo": "etcd-io/etcd", - "binaryNames": "etcd,etcdctl", - "libName": "etcd" - } - } - }, - "test_powershell": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gh-release": { - "version": "latest", - "repo": "PowerShell/PowerShell", - "binaryNames": "pwsh", - "assetRegex": "^(?!.*(fxdependent))" - } - } - }, - "test_apiops": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gh-release": { - "version": "latest", - "repo": "Azure/apiops", - "binaryNames": "extractor", - "assetRegex": "^extractor-linux-.+\\.zip$", - "additionalFlags": "--no-filter-assets-by-platform" - } - } - }, - "test_no_git": { - "image": "ubuntu", - "features": { - "gh-release": { - "version": "latest", - "repo": "Azure/aztfexport", - "binaryNames": "aztfexport" - } - } - } -} \ No newline at end of file diff --git a/test/gh-release/test_act.sh b/test/gh-release/test_act.sh deleted file mode 100755 index d67d76e32..000000000 --- a/test/gh-release/test_act.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "act --version" act --version - -reportResults diff --git a/test/gh-release/test_apiops.sh b/test/gh-release/test_apiops.sh deleted file mode 100755 index 177286d15..000000000 --- a/test/gh-release/test_apiops.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type extractor" type extractor - -reportResults diff --git a/test/gh-release/test_defaults_alpine.sh b/test/gh-release/test_defaults_alpine.sh deleted file mode 100755 index 0b0ba2fca..000000000 --- a/test/gh-release/test_defaults_alpine.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gh --version" gh --version - -reportResults diff --git a/test/gh-release/test_defaults_debian.sh b/test/gh-release/test_defaults_debian.sh deleted file mode 100755 index 0b0ba2fca..000000000 --- a/test/gh-release/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gh --version" gh --version - -reportResults diff --git a/test/gh-release/test_etcd.sh b/test/gh-release/test_etcd.sh deleted file mode 100755 index 2c0f85627..000000000 --- a/test/gh-release/test_etcd.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "etcd --version" etcd --version - -reportResults diff --git a/test/gh-release/test_no_git.sh b/test/gh-release/test_no_git.sh deleted file mode 100755 index d84e0c774..000000000 --- a/test/gh-release/test_no_git.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "aztfexport --version" aztfexport --version - -reportResults diff --git a/test/gh-release/test_powershell.sh b/test/gh-release/test_powershell.sh deleted file mode 100755 index 653671159..000000000 --- a/test/gh-release/test_powershell.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pwsh --version" pwsh --version - -reportResults diff --git a/test/git-lfs/scenarios.json b/test/git-lfs/scenarios.json deleted file mode 100644 index 2eded579d..000000000 --- a/test/git-lfs/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "git-lfs": {} - } - } -} \ No newline at end of file diff --git a/test/git-lfs/test_defaults_debian.sh b/test/git-lfs/test_defaults_debian.sh deleted file mode 100755 index 30b9cbe20..000000000 --- a/test/git-lfs/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "git-lfs --version" git-lfs --version - -reportResults diff --git a/test/gitmux/scenarios.json b/test/gitmux/scenarios.json deleted file mode 100644 index 57e07fcb3..000000000 --- a/test/gitmux/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gitmux": {} - } - } -} \ No newline at end of file diff --git a/test/gitmux/test_defaults_debian.sh b/test/gitmux/test_defaults_debian.sh deleted file mode 100755 index 947077bc0..000000000 --- a/test/gitmux/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gitmux -V" gitmux -V - -reportResults diff --git a/test/gitomatic/scenarios.json b/test/gitomatic/scenarios.json deleted file mode 100644 index 399cbfb1b..000000000 --- a/test/gitomatic/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gitomatic": {} - } - } -} \ No newline at end of file diff --git a/test/gitomatic/test_defaults_debian.sh b/test/gitomatic/test_defaults_debian.sh deleted file mode 100755 index 162070137..000000000 --- a/test/gitomatic/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type gitomatic" type gitomatic - -reportResults diff --git a/test/gitsign-credential-cache/scenarios.json b/test/gitsign-credential-cache/scenarios.json deleted file mode 100644 index f406ae0b2..000000000 --- a/test/gitsign-credential-cache/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gitsign-credential-cache": {} - } - } -} \ No newline at end of file diff --git a/test/gitsign-credential-cache/test_defaults_debian.sh b/test/gitsign-credential-cache/test_defaults_debian.sh deleted file mode 100755 index 71aac0d79..000000000 --- a/test/gitsign-credential-cache/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gitsign-credential-cache --version" gitsign-credential-cache --version - -reportResults diff --git a/test/gitsign/scenarios.json b/test/gitsign/scenarios.json deleted file mode 100644 index c864cccd0..000000000 --- a/test/gitsign/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gitsign": {} - } - } -} \ No newline at end of file diff --git a/test/gitsign/test_defaults_debian.sh b/test/gitsign/test_defaults_debian.sh deleted file mode 100755 index 54b8985bb..000000000 --- a/test/gitsign/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gitsign version" gitsign version - -reportResults diff --git a/test/gitty/scenarios.json b/test/gitty/scenarios.json deleted file mode 100644 index 289b48fe9..000000000 --- a/test/gitty/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gitty": {} - } - } -} \ No newline at end of file diff --git a/test/gitty/test_defaults_debian.sh b/test/gitty/test_defaults_debian.sh deleted file mode 100755 index c606910a8..000000000 --- a/test/gitty/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gitty --version" gitty --version - -reportResults diff --git a/test/glances/scenarios.json b/test/glances/scenarios.json deleted file mode 100644 index 77b6d6b43..000000000 --- a/test/glances/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "glances": {} - } - } -} \ No newline at end of file diff --git a/test/glances/test.sh b/test/glances/test.sh deleted file mode 100755 index 146b96284..000000000 --- a/test/glances/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "glances --version" glances --version - -reportResults diff --git a/test/gleam/scenarios.json b/test/gleam/scenarios.json deleted file mode 100644 index 28fdc8240..000000000 --- a/test/gleam/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gleam": {} - } - } -} \ No newline at end of file diff --git a/test/gleam/test_defaults_debian.sh b/test/gleam/test_defaults_debian.sh deleted file mode 100755 index 8720ec969..000000000 --- a/test/gleam/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gleam --version" gleam --version - -reportResults diff --git a/test/go-task/scenarios.json b/test/go-task/scenarios.json deleted file mode 100644 index f1474d8d4..000000000 --- a/test/go-task/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "go-task": {} - } - } -} \ No newline at end of file diff --git a/test/go-task/test_defaults_debian.sh b/test/go-task/test_defaults_debian.sh deleted file mode 100755 index 43208ba4a..000000000 --- a/test/go-task/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "task --version" task --version - -reportResults diff --git a/test/graalvm-asdf/scenarios.json b/test/graalvm-asdf/scenarios.json deleted file mode 100644 index 37eca12f6..000000000 --- a/test/graalvm-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "graalvm-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/graalvm-asdf/test.sh b/test/graalvm-asdf/test.sh deleted file mode 100755 index 984b416e4..000000000 --- a/test/graalvm-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gu --help" gu --help - -reportResults diff --git a/test/gradle-sdkman/scenarios.json b/test/gradle-sdkman/scenarios.json deleted file mode 100644 index 7558ab0a9..000000000 --- a/test/gradle-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gradle-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/gradle-sdkman/test.sh b/test/gradle-sdkman/test.sh deleted file mode 100755 index 16251b560..000000000 --- a/test/gradle-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "gradle --version" gradle --version - -reportResults diff --git a/test/gradleprofiler-sdkman/scenarios.json b/test/gradleprofiler-sdkman/scenarios.json deleted file mode 100644 index c765b4188..000000000 --- a/test/gradleprofiler-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gradleprofiler-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/gradleprofiler-sdkman/test.sh b/test/gradleprofiler-sdkman/test.sh deleted file mode 100755 index f5ef5de5f..000000000 --- a/test/gradleprofiler-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "gradle-profiler --version" gradle-profiler --version - -reportResults diff --git a/test/grails-sdkman/scenarios.json b/test/grails-sdkman/scenarios.json deleted file mode 100644 index 7225f19e4..000000000 --- a/test/grails-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "grails-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/grails-sdkman/test.sh b/test/grails-sdkman/test.sh deleted file mode 100755 index 46a1e0525..000000000 --- a/test/grails-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "grails --version" grails --version - -reportResults diff --git a/test/graphite-exporter/scenarios.json b/test/graphite-exporter/scenarios.json deleted file mode 100644 index 3208adc4b..000000000 --- a/test/graphite-exporter/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "graphite-exporter": {} - } - } -} \ No newline at end of file diff --git a/test/graphite-exporter/test_defaults_debian.sh b/test/graphite-exporter/test_defaults_debian.sh deleted file mode 100755 index 067b38ae0..000000000 --- a/test/graphite-exporter/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "graphite_exporter --version" graphite_exporter --version - -reportResults diff --git a/test/groovy-sdkman/scenarios.json b/test/groovy-sdkman/scenarios.json deleted file mode 100644 index 4e688fc6b..000000000 --- a/test/groovy-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "groovy-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/groovy-sdkman/test.sh b/test/groovy-sdkman/test.sh deleted file mode 100755 index bdcceb22d..000000000 --- a/test/groovy-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "groovy --version" groovy --version - -reportResults diff --git a/test/groovyserv-sdkman/scenarios.json b/test/groovyserv-sdkman/scenarios.json deleted file mode 100644 index fa1714311..000000000 --- a/test/groovyserv-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "groovyserv-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/groovyserv-sdkman/test.sh b/test/groovyserv-sdkman/test.sh deleted file mode 100755 index 3bad12301..000000000 --- a/test/groovyserv-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type groovyclient" type groovyclient - -reportResults diff --git a/test/grpcurl-asdf/scenarios.json b/test/grpcurl-asdf/scenarios.json deleted file mode 100644 index ad042232d..000000000 --- a/test/grpcurl-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "grpcurl-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/grpcurl-asdf/test.sh b/test/grpcurl-asdf/test.sh deleted file mode 100755 index bbb76a545..000000000 --- a/test/grpcurl-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "grpcurl --version" grpcurl --version - -reportResults diff --git a/test/grype/scenarios.json b/test/grype/scenarios.json deleted file mode 100644 index 0c8af6ba4..000000000 --- a/test/grype/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "grype": {} - } - } -} \ No newline at end of file diff --git a/test/grype/test_defaults_debian.sh b/test/grype/test_defaults_debian.sh deleted file mode 100755 index 795b2c1e1..000000000 --- a/test/grype/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "grype version" grype version - -reportResults diff --git a/test/gulp-cli/scenarios.json b/test/gulp-cli/scenarios.json deleted file mode 100644 index 9be020e22..000000000 --- a/test/gulp-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "gulp-cli": {} - } - } -} \ No newline at end of file diff --git a/test/gulp-cli/test.sh b/test/gulp-cli/test.sh deleted file mode 100755 index 4edf2a07e..000000000 --- a/test/gulp-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "gulp --version" gulp --version - -reportResults diff --git a/test/hadoop-sdkman/scenarios.json b/test/hadoop-sdkman/scenarios.json deleted file mode 100644 index 804c77598..000000000 --- a/test/hadoop-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "hadoop-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/hadoop-sdkman/test.sh b/test/hadoop-sdkman/test.sh deleted file mode 100755 index 7fa9abe4e..000000000 --- a/test/hadoop-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "hadoop version" hadoop version - -reportResults diff --git a/test/haskell/scenarios.json b/test/haskell/scenarios.json deleted file mode 100644 index d5985ce5a..000000000 --- a/test/haskell/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "haskell": {} - } - }, - "test_libraries": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "haskell": { - "globalLibraries": "stm" - } - } - } -} \ No newline at end of file diff --git a/test/haskell/test.sh b/test/haskell/test.sh deleted file mode 100755 index ccb39ec2e..000000000 --- a/test/haskell/test.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -# we are simply checking existance for now. -# full operability depends on the existance of kubectl. -check "ghci existance" ghci --version -check "cabal existance" cabal --version - -reportResults diff --git a/test/haskell/test_libraries.sh b/test/haskell/test_libraries.sh deleted file mode 100755 index b624d68a9..000000000 --- a/test/haskell/test_libraries.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "cabal install --lib" ghc -e "import Control.Concurrent.STM" - -reportResults diff --git a/test/hatch/scenarios.json b/test/hatch/scenarios.json deleted file mode 100644 index 015fb1e21..000000000 --- a/test/hatch/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "hatch": {} - } - } -} \ No newline at end of file diff --git a/test/hatch/test.sh b/test/hatch/test.sh deleted file mode 100755 index 4f85deca1..000000000 --- a/test/hatch/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "hatch --version" hatch --version - -reportResults diff --git a/test/haxe-asdf/scenarios.json b/test/haxe-asdf/scenarios.json deleted file mode 100644 index f600ebd97..000000000 --- a/test/haxe-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "haxe-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/haxe-asdf/test.sh b/test/haxe-asdf/test.sh deleted file mode 100755 index b6ea98fb8..000000000 --- a/test/haxe-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "haxe --version" haxe --version - -reportResults diff --git a/test/helmfile/scenarios.json b/test/helmfile/scenarios.json deleted file mode 100644 index 1c7c9814f..000000000 --- a/test/helmfile/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "helmfile": {} - } - }, - "test_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "helmfile": { - "version": "0.169.0" - } - } - } -} \ No newline at end of file diff --git a/test/helmfile/test.sh b/test/helmfile/test.sh deleted file mode 100755 index 2b9f79580..000000000 --- a/test/helmfile/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "helmfile is installed" helmfile --version - -reportResults diff --git a/test/helmfile/test_debian.sh b/test/helmfile/test_debian.sh deleted file mode 100755 index 2b9f79580..000000000 --- a/test/helmfile/test_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "helmfile is installed" helmfile --version - -reportResults diff --git a/test/helmfile/test_specific_version.sh b/test/helmfile/test_specific_version.sh deleted file mode 100755 index c33b95bab..000000000 --- a/test/helmfile/test_specific_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "helmfile version is equal to 0.169.0" sh -c "helmfile --version | grep '0.169.0'" - -reportResults diff --git a/test/heroku-cli/scenarios.json b/test/heroku-cli/scenarios.json deleted file mode 100644 index 7fadba6c1..000000000 --- a/test/heroku-cli/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "heroku-cli": {} - } - }, - "test_non_latest_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "heroku-cli": { - "version": "9.3.1" - } - } - } -} \ No newline at end of file diff --git a/test/heroku-cli/test.sh b/test/heroku-cli/test.sh deleted file mode 100755 index a0110acf6..000000000 --- a/test/heroku-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "heroku existence" heroku version - -reportResults diff --git a/test/heroku-cli/test_non_latest_version.sh b/test/heroku-cli/test_non_latest_version.sh deleted file mode 100644 index b3e9e1007..000000000 --- a/test/heroku-cli/test_non_latest_version.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "heroku existence" heroku version -check "heroku CLI version is equal to 9.3.1" sh -c "heroku version | grep '9.3.1'" - -reportResults diff --git a/test/homebrew-package/scenarios.json b/test/homebrew-package/scenarios.json deleted file mode 100644 index 1996706ba..000000000 --- a/test/homebrew-package/scenarios.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "test_file_limit": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "homebrew-package": { - "version": "latest", - "package": "mysql" - } - } - }, - "test_latest": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "homebrew-package": { - "version": "latest", - "package": "grpcurl" - } - } - }, - "test_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "homebrew-package": { - "version": "22", - "package": "node" - } - } - }, - "test_universal": { - "image": "mcr.microsoft.com/devcontainers/universal:2", - "features": { - "homebrew-package": { - "version": "latest", - "package": "grpcurl" - } - } - } -} \ No newline at end of file diff --git a/test/homebrew-package/test_file_limit.sh b/test/homebrew-package/test_file_limit.sh deleted file mode 100755 index 4ea6f95a4..000000000 --- a/test/homebrew-package/test_file_limit.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "mysql --version" mysql --version - -reportResults diff --git a/test/homebrew-package/test_latest.sh b/test/homebrew-package/test_latest.sh deleted file mode 100755 index 9e5ba6c26..000000000 --- a/test/homebrew-package/test_latest.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "type grpcurl" type grpcurl - -reportResults diff --git a/test/homebrew-package/test_specific_version.sh b/test/homebrew-package/test_specific_version.sh deleted file mode 100755 index 88ae12191..000000000 --- a/test/homebrew-package/test_specific_version.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "type node" type node - -check "node version is 22" sh -c "node --version | grep 'v22.*'" - -reportResults diff --git a/test/homebrew-package/test_universal.sh b/test/homebrew-package/test_universal.sh deleted file mode 100755 index 9e5ba6c26..000000000 --- a/test/homebrew-package/test_universal.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "type grpcurl" type grpcurl - -reportResults diff --git a/test/hotel/scenarios.json b/test/hotel/scenarios.json deleted file mode 100644 index 4e965456f..000000000 --- a/test/hotel/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "hotel": {} - } - } -} \ No newline at end of file diff --git a/test/hotel/test.sh b/test/hotel/test.sh deleted file mode 100755 index 06288ede0..000000000 --- a/test/hotel/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "hotel --version" hotel --version - -reportResults diff --git a/test/how2/scenarios.json b/test/how2/scenarios.json deleted file mode 100644 index 5f19acc22..000000000 --- a/test/how2/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "how2": {} - } - } -} \ No newline at end of file diff --git a/test/how2/test_defaults_debian.sh b/test/how2/test_defaults_debian.sh deleted file mode 100755 index b8f3315b7..000000000 --- a/test/how2/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "how2 --version" how2 --version - -reportResults diff --git a/test/http-server/scenarios.json b/test/http-server/scenarios.json deleted file mode 100644 index b5f37bab4..000000000 --- a/test/http-server/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "http-server": {} - } - } -} \ No newline at end of file diff --git a/test/http-server/test.sh b/test/http-server/test.sh deleted file mode 100755 index 0ea1e5c0c..000000000 --- a/test/http-server/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "http-server --version" http-server --version - -reportResults diff --git a/test/http4k-sdkman/scenarios.json b/test/http4k-sdkman/scenarios.json deleted file mode 100644 index 705fa0003..000000000 --- a/test/http4k-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "http4k-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/http4k-sdkman/test.sh b/test/http4k-sdkman/test.sh deleted file mode 100755 index f724e13ca..000000000 --- a/test/http4k-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "http4k --version" http4k --version - -reportResults diff --git a/test/hyperfine/scenarios.json b/test/hyperfine/scenarios.json deleted file mode 100644 index 7e4ebee85..000000000 --- a/test/hyperfine/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "hyperfine": {} - } - } -} \ No newline at end of file diff --git a/test/hyperfine/test_defaults_debian.sh b/test/hyperfine/test_defaults_debian.sh deleted file mode 100755 index 9a321d905..000000000 --- a/test/hyperfine/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "hyperfine --version" hyperfine --version - -reportResults diff --git a/test/immuadmin-fips/scenarios.json b/test/immuadmin-fips/scenarios.json deleted file mode 100644 index 4d4218f2e..000000000 --- a/test/immuadmin-fips/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "immuadmin-fips": {} - } - } -} \ No newline at end of file diff --git a/test/immuadmin-fips/test_defaults_debian.sh b/test/immuadmin-fips/test_defaults_debian.sh deleted file mode 100755 index 8165fea06..000000000 --- a/test/immuadmin-fips/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "immuadmin version" immuadmin version - -reportResults diff --git a/test/immuadmin/scenarios.json b/test/immuadmin/scenarios.json deleted file mode 100644 index 11540e56e..000000000 --- a/test/immuadmin/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "immuadmin": {} - } - } -} \ No newline at end of file diff --git a/test/immuadmin/test_defaults_debian.sh b/test/immuadmin/test_defaults_debian.sh deleted file mode 100755 index 8165fea06..000000000 --- a/test/immuadmin/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "immuadmin version" immuadmin version - -reportResults diff --git a/test/immuclient-fips/scenarios.json b/test/immuclient-fips/scenarios.json deleted file mode 100644 index 641bb819c..000000000 --- a/test/immuclient-fips/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "immuclient-fips": {} - } - } -} \ No newline at end of file diff --git a/test/immuclient-fips/test_defaults_debian.sh b/test/immuclient-fips/test_defaults_debian.sh deleted file mode 100755 index 008269da6..000000000 --- a/test/immuclient-fips/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "immuclient version" immuclient version - -reportResults diff --git a/test/immuclient/scenarios.json b/test/immuclient/scenarios.json deleted file mode 100644 index 338cd2445..000000000 --- a/test/immuclient/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "immuclient": {} - } - } -} \ No newline at end of file diff --git a/test/immuclient/test_defaults_debian.sh b/test/immuclient/test_defaults_debian.sh deleted file mode 100755 index 008269da6..000000000 --- a/test/immuclient/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "immuclient version" immuclient version - -reportResults diff --git a/test/immudb-fips/scenarios.json b/test/immudb-fips/scenarios.json deleted file mode 100644 index f8288fa2e..000000000 --- a/test/immudb-fips/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "immudb-fips": {} - } - } -} \ No newline at end of file diff --git a/test/immudb-fips/test_defaults_debian.sh b/test/immudb-fips/test_defaults_debian.sh deleted file mode 100755 index a5ccd7d7c..000000000 --- a/test/immudb-fips/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "immudb version" immudb version - -reportResults diff --git a/test/immudb/scenarios.json b/test/immudb/scenarios.json deleted file mode 100644 index ef50f480c..000000000 --- a/test/immudb/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "immudb": {} - } - } -} \ No newline at end of file diff --git a/test/immudb/test_defaults_debian.sh b/test/immudb/test_defaults_debian.sh deleted file mode 100755 index a5ccd7d7c..000000000 --- a/test/immudb/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "immudb version" immudb version - -reportResults diff --git a/test/infracost/scenarios.json b/test/infracost/scenarios.json deleted file mode 100644 index 66861db64..000000000 --- a/test/infracost/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "infracost": {} - } - } -} \ No newline at end of file diff --git a/test/infracost/test_defaults_debian.sh b/test/infracost/test_defaults_debian.sh deleted file mode 100755 index 397092671..000000000 --- a/test/infracost/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "infracost --version" infracost --version - -reportResults diff --git a/test/infrastructor-sdkman/scenarios.json b/test/infrastructor-sdkman/scenarios.json deleted file mode 100644 index 80f0c3b89..000000000 --- a/test/infrastructor-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "infrastructor-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/infrastructor-sdkman/test.sh b/test/infrastructor-sdkman/test.sh deleted file mode 100755 index a832df6e8..000000000 --- a/test/infrastructor-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "infrastructor version" infrastructor version - -reportResults diff --git a/test/invoke/scenarios.json b/test/invoke/scenarios.json deleted file mode 100644 index 769c74853..000000000 --- a/test/invoke/scenarios.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "test_ubuntu": { - "image": "ubuntu:22.04", - "features": { - "invoke": {} - } - }, - "test_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "invoke": {} - } - } -} \ No newline at end of file diff --git a/test/invoke/test_debian.sh b/test/invoke/test_debian.sh deleted file mode 100755 index b20981359..000000000 --- a/test/invoke/test_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "invoke --version" invoke --version - -reportResults diff --git a/test/invoke/test_ubuntu.sh b/test/invoke/test_ubuntu.sh deleted file mode 100755 index b20981359..000000000 --- a/test/invoke/test_ubuntu.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "invoke --version" invoke --version - -reportResults diff --git a/test/ionic-cli/scenarios.json b/test/ionic-cli/scenarios.json deleted file mode 100644 index d3dcc1833..000000000 --- a/test/ionic-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ionic-cli": {} - } - } -} \ No newline at end of file diff --git a/test/ionic-cli/test.sh b/test/ionic-cli/test.sh deleted file mode 100755 index 8f5475d22..000000000 --- a/test/ionic-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ionic --help" ionic --help - -reportResults diff --git a/test/isort/scenarios.json b/test/isort/scenarios.json deleted file mode 100644 index 2eecf0ee7..000000000 --- a/test/isort/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "isort": {} - } - } -} \ No newline at end of file diff --git a/test/isort/test.sh b/test/isort/test.sh deleted file mode 100755 index 36161e593..000000000 --- a/test/isort/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "isort --version" isort --version - -reportResults diff --git a/test/istioctl/scenarios.json b/test/istioctl/scenarios.json deleted file mode 100644 index 4205a19fd..000000000 --- a/test/istioctl/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "istioctl": {} - } - } -} \ No newline at end of file diff --git a/test/istioctl/test_defaults_debian.sh b/test/istioctl/test_defaults_debian.sh deleted file mode 100755 index 9dbc19ed9..000000000 --- a/test/istioctl/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "istioctl version" istioctl version - -reportResults diff --git a/test/jake/scenarios.json b/test/jake/scenarios.json deleted file mode 100644 index 9cea7ef03..000000000 --- a/test/jake/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jake": {} - } - } -} \ No newline at end of file diff --git a/test/jake/test_defaults.sh b/test/jake/test_defaults.sh deleted file mode 100755 index 28193db60..000000000 --- a/test/jake/test_defaults.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jake --version" jake --version - -reportResults diff --git a/test/jbake-sdkman/scenarios.json b/test/jbake-sdkman/scenarios.json deleted file mode 100644 index 60db4a54e..000000000 --- a/test/jbake-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jbake-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/jbake-sdkman/test.sh b/test/jbake-sdkman/test.sh deleted file mode 100755 index 773a5a831..000000000 --- a/test/jbake-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "jbake --help" jbake --help - -reportResults diff --git a/test/jbang-sdkman/scenarios.json b/test/jbang-sdkman/scenarios.json deleted file mode 100644 index 633e328a3..000000000 --- a/test/jbang-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jbang-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/jbang-sdkman/test.sh b/test/jbang-sdkman/test.sh deleted file mode 100755 index ba7eb77d3..000000000 --- a/test/jbang-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "jbang --version" jbang --version - -reportResults diff --git a/test/jenkinsx-cli/scenarios.json b/test/jenkinsx-cli/scenarios.json deleted file mode 100644 index 36a2d6d12..000000000 --- a/test/jenkinsx-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jenkinsx-cli": {} - } - } -} \ No newline at end of file diff --git a/test/jenkinsx-cli/test_defaults_debian.sh b/test/jenkinsx-cli/test_defaults_debian.sh deleted file mode 100755 index 8bc79b35a..000000000 --- a/test/jenkinsx-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jx version" jx version - -reportResults diff --git a/test/jest/scenarios.json b/test/jest/scenarios.json deleted file mode 100644 index 5547fdb20..000000000 --- a/test/jest/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jest": {} - } - } -} \ No newline at end of file diff --git a/test/jest/test.sh b/test/jest/test.sh deleted file mode 100755 index 3289d0d16..000000000 --- a/test/jest/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jest --version" jest --version - -reportResults diff --git a/test/jfrog-cli-homebrew/scenarios.json b/test/jfrog-cli-homebrew/scenarios.json deleted file mode 100644 index 08c405067..000000000 --- a/test/jfrog-cli-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jfrog-cli-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/jfrog-cli-homebrew/test.sh b/test/jfrog-cli-homebrew/test.sh deleted file mode 100755 index 8c395d318..000000000 --- a/test/jfrog-cli-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jf --version" jf --version - -reportResults diff --git a/test/jfrog-cli-npm/scenarios.json b/test/jfrog-cli-npm/scenarios.json deleted file mode 100644 index fe9a21d3d..000000000 --- a/test/jfrog-cli-npm/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jfrog-cli-npm": {} - } - } -} \ No newline at end of file diff --git a/test/jfrog-cli-npm/test.sh b/test/jfrog-cli-npm/test.sh deleted file mode 100755 index 8c395d318..000000000 --- a/test/jfrog-cli-npm/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jf --version" jf --version - -reportResults diff --git a/test/jfrog-cli/scenarios.json b/test/jfrog-cli/scenarios.json deleted file mode 100644 index 1dbf44801..000000000 --- a/test/jfrog-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jfrog-cli": {} - } - } -} \ No newline at end of file diff --git a/test/jfrog-cli/test.sh b/test/jfrog-cli/test.sh deleted file mode 100755 index 8c395d318..000000000 --- a/test/jfrog-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jf --version" jf --version - -reportResults diff --git a/test/jira-cli/scenarios.json b/test/jira-cli/scenarios.json deleted file mode 100644 index e0b41affa..000000000 --- a/test/jira-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jira-cli": {} - } - } -} \ No newline at end of file diff --git a/test/jira-cli/test_defaults_debian.sh b/test/jira-cli/test_defaults_debian.sh deleted file mode 100755 index ba40f417c..000000000 --- a/test/jira-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jira version" jira version - -reportResults diff --git a/test/jmc-sdkman/scenarios.json b/test/jmc-sdkman/scenarios.json deleted file mode 100644 index 03afab7ea..000000000 --- a/test/jmc-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jmc-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/jmc-sdkman/test.sh b/test/jmc-sdkman/test.sh deleted file mode 100755 index 4ef30ea76..000000000 --- a/test/jmc-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type jmc" type jmc - -reportResults diff --git a/test/jmeter-sdkman/scenarios.json b/test/jmeter-sdkman/scenarios.json deleted file mode 100644 index 7ade29649..000000000 --- a/test/jmeter-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jmeter-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/jmeter-sdkman/test.sh b/test/jmeter-sdkman/test.sh deleted file mode 100755 index bcb133520..000000000 --- a/test/jmeter-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "jmeter --version" jmeter --version - -reportResults diff --git a/test/joern-sdkman/scenarios.json b/test/joern-sdkman/scenarios.json deleted file mode 100644 index 9a5b2d8a1..000000000 --- a/test/joern-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "joern-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/joern-sdkman/test.sh b/test/joern-sdkman/test.sh deleted file mode 100755 index 3615b4400..000000000 --- a/test/joern-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type joern-parse && type joern-flow && type joern-scan && type joern-export" type joern-parse && type joern-flow && type joern-scan && type joern-export - -reportResults diff --git a/test/jreleaser-sdkman/scenarios.json b/test/jreleaser-sdkman/scenarios.json deleted file mode 100644 index d6eafe310..000000000 --- a/test/jreleaser-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jreleaser-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/jreleaser-sdkman/test.sh b/test/jreleaser-sdkman/test.sh deleted file mode 100755 index e9c07acef..000000000 --- a/test/jreleaser-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "jreleaser --version" jreleaser --version - -reportResults diff --git a/test/jrnl/scenarios.json b/test/jrnl/scenarios.json deleted file mode 100644 index 18542a1ee..000000000 --- a/test/jrnl/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jrnl": {} - } - } -} \ No newline at end of file diff --git a/test/jrnl/test.sh b/test/jrnl/test.sh deleted file mode 100755 index 8e6fcebb8..000000000 --- a/test/jrnl/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jrnl --version" jrnl --version - -reportResults diff --git a/test/jshint/scenarios.json b/test/jshint/scenarios.json deleted file mode 100644 index e95d24379..000000000 --- a/test/jshint/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jshint": {} - } - } -} \ No newline at end of file diff --git a/test/jshint/test.sh b/test/jshint/test.sh deleted file mode 100755 index 03ba76e0c..000000000 --- a/test/jshint/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jshint --version" jshint --version - -reportResults diff --git a/test/jsii-diff/scenarios.json b/test/jsii-diff/scenarios.json deleted file mode 100644 index 158c4c57d..000000000 --- a/test/jsii-diff/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jsii-diff": {} - } - } -} \ No newline at end of file diff --git a/test/jsii-diff/test.sh b/test/jsii-diff/test.sh deleted file mode 100755 index e8ef17ccd..000000000 --- a/test/jsii-diff/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jsii-diff --version" jsii-diff --version - -reportResults diff --git a/test/jsii-pacmak/scenarios.json b/test/jsii-pacmak/scenarios.json deleted file mode 100644 index c2a9af60f..000000000 --- a/test/jsii-pacmak/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jsii-pacmak": {} - } - } -} \ No newline at end of file diff --git a/test/jsii-pacmak/test.sh b/test/jsii-pacmak/test.sh deleted file mode 100755 index 6d5507f4c..000000000 --- a/test/jsii-pacmak/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jsii-pacmak --version" jsii-pacmak --version - -reportResults diff --git a/test/jsii-rosetta/scenarios.json b/test/jsii-rosetta/scenarios.json deleted file mode 100644 index e0e6ac051..000000000 --- a/test/jsii-rosetta/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jsii-rosetta": {} - } - } -} \ No newline at end of file diff --git a/test/jsii-rosetta/test.sh b/test/jsii-rosetta/test.sh deleted file mode 100755 index 510eb06ac..000000000 --- a/test/jsii-rosetta/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jsii-rosetta --version" jsii-rosetta --version - -reportResults diff --git a/test/jsii/scenarios.json b/test/jsii/scenarios.json deleted file mode 100644 index 109e13ca9..000000000 --- a/test/jsii/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "jsii": {} - } - } -} \ No newline at end of file diff --git a/test/jsii/test.sh b/test/jsii/test.sh deleted file mode 100755 index 43e3f9e01..000000000 --- a/test/jsii/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "jsii --version" jsii --version - -reportResults diff --git a/test/json-server/scenarios.json b/test/json-server/scenarios.json deleted file mode 100644 index 901182d76..000000000 --- a/test/json-server/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "json-server": {} - } - } -} \ No newline at end of file diff --git a/test/json-server/test.sh b/test/json-server/test.sh deleted file mode 100755 index 178682f8a..000000000 --- a/test/json-server/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "json-server --version" json-server --version - -reportResults diff --git a/test/k2tf/scenarios.json b/test/k2tf/scenarios.json deleted file mode 100644 index 7fed50897..000000000 --- a/test/k2tf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "k2tf": {} - } - } -} \ No newline at end of file diff --git a/test/k2tf/test_defaults_debian.sh b/test/k2tf/test_defaults_debian.sh deleted file mode 100755 index de7b3a743..000000000 --- a/test/k2tf/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "k2tf --version" k2tf --version - -reportResults diff --git a/test/k6/scenarios.json b/test/k6/scenarios.json deleted file mode 100644 index 55ffdd49a..000000000 --- a/test/k6/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "k6": {} - } - } -} \ No newline at end of file diff --git a/test/k6/test_defaults_debian.sh b/test/k6/test_defaults_debian.sh deleted file mode 100755 index 8fb6ff98f..000000000 --- a/test/k6/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "k6 version" k6 version - -reportResults diff --git a/test/karaf-sdkman/scenarios.json b/test/karaf-sdkman/scenarios.json deleted file mode 100644 index 23b778c94..000000000 --- a/test/karaf-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "karaf-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/karaf-sdkman/test.sh b/test/karaf-sdkman/test.sh deleted file mode 100755 index be21bf891..000000000 --- a/test/karaf-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type karaf" type karaf - -reportResults diff --git a/test/keepercommander/scenarios.json b/test/keepercommander/scenarios.json deleted file mode 100644 index 37d17dbfa..000000000 --- a/test/keepercommander/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "keepercommander": {} - } - } -} \ No newline at end of file diff --git a/test/keepercommander/test.sh b/test/keepercommander/test.sh deleted file mode 100755 index b2de444d1..000000000 --- a/test/keepercommander/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "keeper --version" keeper --version - -reportResults diff --git a/test/ki-sdkman/scenarios.json b/test/ki-sdkman/scenarios.json deleted file mode 100644 index 338afcb75..000000000 --- a/test/ki-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ki-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/ki-sdkman/test.sh b/test/ki-sdkman/test.sh deleted file mode 100755 index 8b67b4527..000000000 --- a/test/ki-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "ki --version" ki --version - -reportResults diff --git a/test/kind/scenarios.json b/test/kind/scenarios.json deleted file mode 100644 index 69ea4f623..000000000 --- a/test/kind/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kind": {} - } - } -} \ No newline at end of file diff --git a/test/kind/test_defaults_debian.sh b/test/kind/test_defaults_debian.sh deleted file mode 100755 index bd569db4f..000000000 --- a/test/kind/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "kind --version" kind --version - -reportResults diff --git a/test/kobweb-sdkman/scenarios.json b/test/kobweb-sdkman/scenarios.json deleted file mode 100644 index 8785e79c6..000000000 --- a/test/kobweb-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kobweb-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/kobweb-sdkman/test.sh b/test/kobweb-sdkman/test.sh deleted file mode 100755 index ac033bd76..000000000 --- a/test/kobweb-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "kobweb --version" kobweb --version - -reportResults diff --git a/test/kops/scenarios.json b/test/kops/scenarios.json deleted file mode 100644 index 2ff1e23d4..000000000 --- a/test/kops/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kops": {} - } - } -} \ No newline at end of file diff --git a/test/kops/test_defaults_debian.sh b/test/kops/test_defaults_debian.sh deleted file mode 100755 index 9dba69de9..000000000 --- a/test/kops/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "kops version" kops version - -reportResults diff --git a/test/kotlin-sdkman/scenarios.json b/test/kotlin-sdkman/scenarios.json deleted file mode 100644 index 6303823be..000000000 --- a/test/kotlin-sdkman/scenarios.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "test_universal": { - "image": "mcr.microsoft.com/devcontainers/universal:linux", - "features": { - "kotlin-sdkman": {} - } - }, - "test_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kotlin-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/kotlin-sdkman/test.sh b/test/kotlin-sdkman/test.sh deleted file mode 100755 index 98afbbfd6..000000000 --- a/test/kotlin-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type kotlin" type kotlin - -reportResults diff --git a/test/kotlin-sdkman/test_debian.sh b/test/kotlin-sdkman/test_debian.sh deleted file mode 100755 index 98afbbfd6..000000000 --- a/test/kotlin-sdkman/test_debian.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type kotlin" type kotlin - -reportResults diff --git a/test/kotlin-sdkman/test_universal.sh b/test/kotlin-sdkman/test_universal.sh deleted file mode 100755 index 98afbbfd6..000000000 --- a/test/kotlin-sdkman/test_universal.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type kotlin" type kotlin - -reportResults diff --git a/test/kscript-sdkman/scenarios.json b/test/kscript-sdkman/scenarios.json deleted file mode 100644 index 3319b4473..000000000 --- a/test/kscript-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kscript-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/kscript-sdkman/test.sh b/test/kscript-sdkman/test.sh deleted file mode 100755 index 4ff1c83fa..000000000 --- a/test/kscript-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "kscript --help" kscript --help - -reportResults diff --git a/test/kubeclarity-cli/scenarios.json b/test/kubeclarity-cli/scenarios.json deleted file mode 100644 index 0ff29720e..000000000 --- a/test/kubeclarity-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kubeclarity-cli": {} - } - } -} \ No newline at end of file diff --git a/test/kubeclarity-cli/test_defaults_debian.sh b/test/kubeclarity-cli/test_defaults_debian.sh deleted file mode 100755 index 94687fcb0..000000000 --- a/test/kubeclarity-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "kubeclarity-cli --version" kubeclarity-cli --version - -reportResults diff --git a/test/kubectl-asdf/scenarios.json b/test/kubectl-asdf/scenarios.json deleted file mode 100644 index cb2ab0230..000000000 --- a/test/kubectl-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kubectl-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/kubectl-asdf/test.sh b/test/kubectl-asdf/test.sh deleted file mode 100755 index 6ee87451d..000000000 --- a/test/kubectl-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "kubectl --help" kubectl --help - -reportResults diff --git a/test/kubectx-kubens/scenarios.json b/test/kubectx-kubens/scenarios.json deleted file mode 100644 index 5eecc52d8..000000000 --- a/test/kubectx-kubens/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kubectx-kubens": {} - } - } -} \ No newline at end of file diff --git a/test/kubectx-kubens/test.sh b/test/kubectx-kubens/test.sh deleted file mode 100755 index 10fa7197c..000000000 --- a/test/kubectx-kubens/test.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "kubectx --version" kubectx --version - -check "kubens --version" kubens --version - -reportResults diff --git a/test/kubie/scenarios.json b/test/kubie/scenarios.json deleted file mode 100644 index 7403a1567..000000000 --- a/test/kubie/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kubie": {} - } - } -} \ No newline at end of file diff --git a/test/kubie/test.sh b/test/kubie/test.sh deleted file mode 100755 index e01709014..000000000 --- a/test/kubie/test.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -# The 'check' command comes from the dev-container-features-test-lib. -check "version" kubie --version - -reportResults diff --git a/test/kyverno-cli/scenarios.json b/test/kyverno-cli/scenarios.json deleted file mode 100644 index 6479786a2..000000000 --- a/test/kyverno-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kyverno-cli": {} - } - } -} \ No newline at end of file diff --git a/test/kyverno-cli/test_defaults_debian.sh b/test/kyverno-cli/test_defaults_debian.sh deleted file mode 100755 index f6f4165e1..000000000 --- a/test/kyverno-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "kyverno version" kyverno version - -reportResults diff --git a/test/lastpass-cli-homebrew/scenarios.json b/test/lastpass-cli-homebrew/scenarios.json deleted file mode 100644 index 67abea039..000000000 --- a/test/lastpass-cli-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "lastpass-cli-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/lastpass-cli-homebrew/test.sh b/test/lastpass-cli-homebrew/test.sh deleted file mode 100755 index 43c25130f..000000000 --- a/test/lastpass-cli-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type lpass" type lpass - -reportResults diff --git a/test/layrry-sdkman/scenarios.json b/test/layrry-sdkman/scenarios.json deleted file mode 100644 index 3fd66a0bc..000000000 --- a/test/layrry-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "layrry-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/layrry-sdkman/test.sh b/test/layrry-sdkman/test.sh deleted file mode 100755 index 1a9ed0803..000000000 --- a/test/layrry-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "layrry --version" layrry --version - -reportResults diff --git a/test/lean-asdf/scenarios.json b/test/lean-asdf/scenarios.json deleted file mode 100644 index 1eb141d7e..000000000 --- a/test/lean-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "lean-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/lean-asdf/test.sh b/test/lean-asdf/test.sh deleted file mode 100755 index fed219f12..000000000 --- a/test/lean-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "lean --version" lean --version - -reportResults diff --git a/test/lefthook-asdf/scenarios.json b/test/lefthook-asdf/scenarios.json deleted file mode 100644 index aa37c9933..000000000 --- a/test/lefthook-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "lefthook-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/lefthook-asdf/test.sh b/test/lefthook-asdf/test.sh deleted file mode 100755 index 171b84a8a..000000000 --- a/test/lefthook-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "lefthook --help" lefthook --help - -reportResults diff --git a/test/leiningen-sdkman/scenarios.json b/test/leiningen-sdkman/scenarios.json deleted file mode 100644 index c48dafe02..000000000 --- a/test/leiningen-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "leiningen-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/leiningen-sdkman/test.sh b/test/leiningen-sdkman/test.sh deleted file mode 100755 index 64ccf0b96..000000000 --- a/test/leiningen-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "lein --version" lein --version - -reportResults diff --git a/test/lektor/scenarios.json b/test/lektor/scenarios.json deleted file mode 100644 index 1fd4717ec..000000000 --- a/test/lektor/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "lektor": {} - } - } -} \ No newline at end of file diff --git a/test/lektor/test.sh b/test/lektor/test.sh deleted file mode 100755 index bbe95ca06..000000000 --- a/test/lektor/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "lektor --version" lektor --version - -reportResults diff --git a/test/lerna-npm/scenarios.json b/test/lerna-npm/scenarios.json deleted file mode 100644 index eef78998a..000000000 --- a/test/lerna-npm/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "lerna-npm": {} - } - } -} \ No newline at end of file diff --git a/test/lerna-npm/test.sh b/test/lerna-npm/test.sh deleted file mode 100755 index befa5235d..000000000 --- a/test/lerna-npm/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "lerna --version" lerna --version - -reportResults diff --git a/test/less/scenarios.json b/test/less/scenarios.json deleted file mode 100644 index 9592d2c6e..000000000 --- a/test/less/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "less": {} - } - } -} \ No newline at end of file diff --git a/test/less/test.sh b/test/less/test.sh deleted file mode 100755 index 76e05c3ec..000000000 --- a/test/less/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "less --version" less --version - -reportResults diff --git a/test/levant-asdf/scenarios.json b/test/levant-asdf/scenarios.json deleted file mode 100644 index 5477ddf15..000000000 --- a/test/levant-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "levant-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/levant-asdf/test.sh b/test/levant-asdf/test.sh deleted file mode 100755 index 5eb29faad..000000000 --- a/test/levant-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "levant --version" levant --version - -reportResults diff --git a/test/lighthouse-cli/scenarios.json b/test/lighthouse-cli/scenarios.json deleted file mode 100644 index 388d10b00..000000000 --- a/test/lighthouse-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "lighthouse-cli": {} - } - } -} \ No newline at end of file diff --git a/test/lighthouse-cli/test.sh b/test/lighthouse-cli/test.sh deleted file mode 100755 index 166d32220..000000000 --- a/test/lighthouse-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "lighthouse --version" lighthouse --version - -reportResults diff --git a/test/linkerd2-cli-edge/scenarios.json b/test/linkerd2-cli-edge/scenarios.json deleted file mode 100644 index ccc5c033f..000000000 --- a/test/linkerd2-cli-edge/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "linkerd2-cli-edge": {} - } - } -} \ No newline at end of file diff --git a/test/linkerd2-cli-edge/test_defaults_debian.sh b/test/linkerd2-cli-edge/test_defaults_debian.sh deleted file mode 100755 index b28de35bc..000000000 --- a/test/linkerd2-cli-edge/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "linkerd --help" linkerd --help - -reportResults diff --git a/test/linkerd2-cli-stable/scenarios.json b/test/linkerd2-cli-stable/scenarios.json deleted file mode 100644 index 2e2b64cc6..000000000 --- a/test/linkerd2-cli-stable/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "linkerd2-cli-stable": {} - } - } -} \ No newline at end of file diff --git a/test/linkerd2-cli-stable/test_defaults_debian.sh b/test/linkerd2-cli-stable/test_defaults_debian.sh deleted file mode 100755 index b28de35bc..000000000 --- a/test/linkerd2-cli-stable/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "linkerd --help" linkerd --help - -reportResults diff --git a/test/linode-cli/scenarios.json b/test/linode-cli/scenarios.json deleted file mode 100644 index 6b3682f44..000000000 --- a/test/linode-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "linode-cli": {} - } - } -} \ No newline at end of file diff --git a/test/linode-cli/test.sh b/test/linode-cli/test.sh deleted file mode 100755 index 8e5547f47..000000000 --- a/test/linode-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "linode-cli --version" linode-cli --version - -reportResults diff --git a/test/lite-server/scenarios.json b/test/lite-server/scenarios.json deleted file mode 100644 index bf0a16c0d..000000000 --- a/test/lite-server/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "lite-server": {} - } - } -} \ No newline at end of file diff --git a/test/lite-server/test.sh b/test/lite-server/test.sh deleted file mode 100755 index 7a9e6e460..000000000 --- a/test/lite-server/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type lite-server" type lite-server - -reportResults diff --git a/test/live-server/scenarios.json b/test/live-server/scenarios.json deleted file mode 100644 index 8e4a8361a..000000000 --- a/test/live-server/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "live-server": {} - } - } -} \ No newline at end of file diff --git a/test/live-server/test.sh b/test/live-server/test.sh deleted file mode 100755 index 8109139f1..000000000 --- a/test/live-server/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "live-server --version" live-server --version - -reportResults diff --git a/test/localstack/scenarios.json b/test/localstack/scenarios.json deleted file mode 100644 index 8bed2507f..000000000 --- a/test/localstack/scenarios.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "localstack": {} - } - }, - "test_with_python_feature": { - "image": "mcr.microsoft.com/devcontainers/base:jammy", - "features": { - "localstack": {}, - "ghcr.io/devcontainers/features/python:1.1.0": {} - } - } -} \ No newline at end of file diff --git a/test/localstack/test.sh b/test/localstack/test.sh deleted file mode 100755 index e3f1a49a2..000000000 --- a/test/localstack/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sleep 5 && docker ps && localstack --version && localstack start -d && sleep 10 && localstack status docker && localstack status services && localstack stop" sleep 5 && docker ps && localstack --version && localstack start -d && sleep 10 && localstack status docker && localstack status services && localstack stop - -reportResults diff --git a/test/localstack/test_with_python_feature.sh b/test/localstack/test_with_python_feature.sh deleted file mode 100755 index e3f1a49a2..000000000 --- a/test/localstack/test_with_python_feature.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sleep 5 && docker ps && localstack --version && localstack start -d && sleep 10 && localstack status docker && localstack status services && localstack stop" sleep 5 && docker ps && localstack --version && localstack start -d && sleep 10 && localstack status docker && localstack status services && localstack stop - -reportResults diff --git a/test/localtunnel-npm/scenarios.json b/test/localtunnel-npm/scenarios.json deleted file mode 100644 index aeb82cb0c..000000000 --- a/test/localtunnel-npm/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "localtunnel-npm": {} - } - } -} \ No newline at end of file diff --git a/test/localtunnel-npm/test.sh b/test/localtunnel-npm/test.sh deleted file mode 100755 index 86a61dc12..000000000 --- a/test/localtunnel-npm/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "lt --version" lt --version - -reportResults diff --git a/test/mackup/scenarios.json b/test/mackup/scenarios.json deleted file mode 100644 index 6cb1be093..000000000 --- a/test/mackup/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mackup": {} - } - } -} \ No newline at end of file diff --git a/test/mackup/test.sh b/test/mackup/test.sh deleted file mode 100755 index fd0414ca7..000000000 --- a/test/mackup/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mackup --version" mackup --version - -reportResults diff --git a/test/markdownlint-cli/scenarios.json b/test/markdownlint-cli/scenarios.json deleted file mode 100644 index ad7c66134..000000000 --- a/test/markdownlint-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "markdownlint-cli": {} - } - } -} \ No newline at end of file diff --git a/test/markdownlint-cli/test.sh b/test/markdownlint-cli/test.sh deleted file mode 100755 index 1c5855d44..000000000 --- a/test/markdownlint-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "markdownlint --version" markdownlint --version - -reportResults diff --git a/test/markdownlint-cli2/scenarios.json b/test/markdownlint-cli2/scenarios.json deleted file mode 100644 index c1a7eae85..000000000 --- a/test/markdownlint-cli2/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "markdownlint-cli2": {} - } - } -} \ No newline at end of file diff --git a/test/markdownlint-cli2/test.sh b/test/markdownlint-cli2/test.sh deleted file mode 100755 index a811c74d6..000000000 --- a/test/markdownlint-cli2/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "hash markdownlint-cli2" hash markdownlint-cli2 - -reportResults diff --git a/test/maven-sdkman/scenarios.json b/test/maven-sdkman/scenarios.json deleted file mode 100644 index aa9a7efed..000000000 --- a/test/maven-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "maven-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/maven-sdkman/test.sh b/test/maven-sdkman/test.sh deleted file mode 100755 index f28a7a494..000000000 --- a/test/maven-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "mvn --version" mvn --version - -reportResults diff --git a/test/meltano/scenarios.json b/test/meltano/scenarios.json deleted file mode 100644 index c58b95e15..000000000 --- a/test/meltano/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "meltano": {} - } - } -} \ No newline at end of file diff --git a/test/meltano/test.sh b/test/meltano/test.sh deleted file mode 100755 index acfa2d890..000000000 --- a/test/meltano/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "meltano --version" meltano --version - -reportResults diff --git a/test/memcached-exporter/scenarios.json b/test/memcached-exporter/scenarios.json deleted file mode 100644 index 2d189e392..000000000 --- a/test/memcached-exporter/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "memcached-exporter": {} - } - } -} \ No newline at end of file diff --git a/test/memcached-exporter/test_defaults_debian.sh b/test/memcached-exporter/test_defaults_debian.sh deleted file mode 100755 index 6840c8f09..000000000 --- a/test/memcached-exporter/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "memcached_exporter --version" memcached_exporter --version - -reportResults diff --git a/test/micro/scenarios.json b/test/micro/scenarios.json deleted file mode 100644 index 4e74da83f..000000000 --- a/test/micro/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "micro": {} - } - } -} \ No newline at end of file diff --git a/test/micro/test_defaults_debian.sh b/test/micro/test_defaults_debian.sh deleted file mode 100755 index b482720da..000000000 --- a/test/micro/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "micro --version" micro --version - -reportResults diff --git a/test/micronaut-sdkman/scenarios.json b/test/micronaut-sdkman/scenarios.json deleted file mode 100644 index 3d92c1d90..000000000 --- a/test/micronaut-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", - "features": { - "micronaut-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/micronaut-sdkman/test.sh b/test/micronaut-sdkman/test.sh deleted file mode 100755 index eca872001..000000000 --- a/test/micronaut-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "mn --help" mn --help - -reportResults diff --git a/test/mise/scenarios.json b/test/mise/scenarios.json deleted file mode 100644 index f4949ca9a..000000000 --- a/test/mise/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mise": {} - } - }, - "ubuntu_with_version": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", - "features": { - "mise": { - "version": "2025.2.0" - } - } - } - } \ No newline at end of file diff --git a/test/mise/test.sh b/test/mise/test.sh deleted file mode 100755 index ecf64bc57..000000000 --- a/test/mise/test.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Optional: Import test library -source dev-container-features-test-lib - -# Definition specific tests -check "version" mise -v - -# Report result -reportResults \ No newline at end of file diff --git a/test/mise/ubuntu_with_version.sh b/test/mise/ubuntu_with_version.sh deleted file mode 100644 index 1ba2ecd3a..000000000 --- a/test/mise/ubuntu_with_version.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Optional: Import test library -source dev-container-features-test-lib - -# Definition specific tests -check "mise version is equal to 2025.2.0" sh -c "mise -v | grep '2025.2.0'" - -# Report result -reportResults \ No newline at end of file diff --git a/test/mitmproxy/scenarios.json b/test/mitmproxy/scenarios.json deleted file mode 100644 index 89d07dd56..000000000 --- a/test/mitmproxy/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mitmproxy": {} - } - } -} \ No newline at end of file diff --git a/test/mitmproxy/test.sh b/test/mitmproxy/test.sh deleted file mode 100755 index 4e4163368..000000000 --- a/test/mitmproxy/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mitmproxy --version" mitmproxy --version - -reportResults diff --git a/test/mkcert/scenarios.json b/test/mkcert/scenarios.json deleted file mode 100644 index 8cf212327..000000000 --- a/test/mkcert/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mkcert": {} - } - } -} \ No newline at end of file diff --git a/test/mkcert/test_defaults_debian.sh b/test/mkcert/test_defaults_debian.sh deleted file mode 100755 index be35ab213..000000000 --- a/test/mkcert/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mkcert --version" mkcert --version - -reportResults diff --git a/test/mkdocs/scenarios.json b/test/mkdocs/scenarios.json deleted file mode 100644 index 82ed30a97..000000000 --- a/test/mkdocs/scenarios.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mkdocs": {} - } - }, - "test_ubuntu": { - "image": "mcr.microsoft.com/vscode/devcontainers/base:ubuntu-22.04", - "features": { - "mkdocs": {} - } - } -} \ No newline at end of file diff --git a/test/mkdocs/test.sh b/test/mkdocs/test.sh deleted file mode 100755 index 79c56dcac..000000000 --- a/test/mkdocs/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mkdocs --version" mkdocs --version - -reportResults diff --git a/test/mkdocs/test_ubuntu.sh b/test/mkdocs/test_ubuntu.sh deleted file mode 100755 index 79c56dcac..000000000 --- a/test/mkdocs/test_ubuntu.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mkdocs --version" mkdocs --version - -reportResults diff --git a/test/mlocate-apt-get/scenarios.json b/test/mlocate-apt-get/scenarios.json deleted file mode 100644 index 35399c8a4..000000000 --- a/test/mlocate-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mlocate-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/mlocate-apt-get/test.sh b/test/mlocate-apt-get/test.sh deleted file mode 100755 index eda523804..000000000 --- a/test/mlocate-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "locate --version" locate --version - -reportResults diff --git a/test/mocha/scenarios.json b/test/mocha/scenarios.json deleted file mode 100644 index a39001334..000000000 --- a/test/mocha/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mocha": {} - } - } -} \ No newline at end of file diff --git a/test/mocha/test.sh b/test/mocha/test.sh deleted file mode 100755 index 797995737..000000000 --- a/test/mocha/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mocha --version" mocha --version - -reportResults diff --git a/test/mongodb-atlas-cli-homebrew/scenarios.json b/test/mongodb-atlas-cli-homebrew/scenarios.json deleted file mode 100644 index 94423622f..000000000 --- a/test/mongodb-atlas-cli-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mongodb-atlas-cli-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/mongodb-atlas-cli-homebrew/test.sh b/test/mongodb-atlas-cli-homebrew/test.sh deleted file mode 100755 index c91262427..000000000 --- a/test/mongodb-atlas-cli-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type atlas" type atlas - -reportResults diff --git a/test/mongosh-homebrew/scenarios.json b/test/mongosh-homebrew/scenarios.json deleted file mode 100644 index 083d76b3a..000000000 --- a/test/mongosh-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mongosh-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/mongosh-homebrew/test.sh b/test/mongosh-homebrew/test.sh deleted file mode 100755 index e3288016e..000000000 --- a/test/mongosh-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mongosh --version" mongosh --version - -reportResults diff --git a/test/mosh-apt-get/scenarios.json b/test/mosh-apt-get/scenarios.json deleted file mode 100644 index 81e16bb24..000000000 --- a/test/mosh-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mosh-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/mosh-apt-get/test.sh b/test/mosh-apt-get/test.sh deleted file mode 100755 index d45b7758d..000000000 --- a/test/mosh-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mosh --version" mosh --version - -reportResults diff --git a/test/mosh-homebrew/scenarios.json b/test/mosh-homebrew/scenarios.json deleted file mode 100644 index 5b49fad48..000000000 --- a/test/mosh-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mosh-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/mosh-homebrew/test.sh b/test/mosh-homebrew/test.sh deleted file mode 100755 index d45b7758d..000000000 --- a/test/mosh-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mosh --version" mosh --version - -reportResults diff --git a/test/mulefd-sdkman/scenarios.json b/test/mulefd-sdkman/scenarios.json deleted file mode 100644 index 0256f2eb4..000000000 --- a/test/mulefd-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mulefd-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/mulefd-sdkman/test.sh b/test/mulefd-sdkman/test.sh deleted file mode 100755 index 276afb179..000000000 --- a/test/mulefd-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "mulefd --version" mulefd --version - -reportResults diff --git a/test/mvnd-sdkman/scenarios.json b/test/mvnd-sdkman/scenarios.json deleted file mode 100644 index 1b6d73596..000000000 --- a/test/mvnd-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mvnd-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/mvnd-sdkman/test.sh b/test/mvnd-sdkman/test.sh deleted file mode 100755 index 431035971..000000000 --- a/test/mvnd-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "mvnd --version" mvnd --version - -reportResults diff --git a/test/mybatis-sdkman/scenarios.json b/test/mybatis-sdkman/scenarios.json deleted file mode 100644 index 94f86a392..000000000 --- a/test/mybatis-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mybatis-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/mybatis-sdkman/test.sh b/test/mybatis-sdkman/test.sh deleted file mode 100755 index d69ecbf2d..000000000 --- a/test/mybatis-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "migrate --help" migrate --help - -reportResults diff --git a/test/mypy/scenarios.json b/test/mypy/scenarios.json deleted file mode 100644 index 337cfb6e6..000000000 --- a/test/mypy/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mypy": {} - } - } -} \ No newline at end of file diff --git a/test/mypy/test.sh b/test/mypy/test.sh deleted file mode 100755 index c6d0f28c8..000000000 --- a/test/mypy/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mypy --version" mypy --version - -reportResults diff --git a/test/mysql-homebrew/scenarios.json b/test/mysql-homebrew/scenarios.json deleted file mode 100644 index 5df5e87ae..000000000 --- a/test/mysql-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mysql-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/mysql-homebrew/test.sh b/test/mysql-homebrew/test.sh deleted file mode 100755 index 81e8934bd..000000000 --- a/test/mysql-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mysql --version" mysql --version - -reportResults diff --git a/test/mysqld-exporter/scenarios.json b/test/mysqld-exporter/scenarios.json deleted file mode 100644 index 8e90aaa46..000000000 --- a/test/mysqld-exporter/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mysqld-exporter": {} - } - } -} \ No newline at end of file diff --git a/test/mysqld-exporter/test_defaults_debian.sh b/test/mysqld-exporter/test_defaults_debian.sh deleted file mode 100755 index 3f54b7862..000000000 --- a/test/mysqld-exporter/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mysqld_exporter --version" mysqld_exporter --version - -reportResults diff --git a/test/n8n/scenarios.json b/test/n8n/scenarios.json deleted file mode 100644 index 43ead6274..000000000 --- a/test/n8n/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "n8n": {} - } - } -} \ No newline at end of file diff --git a/test/n8n/test.sh b/test/n8n/test.sh deleted file mode 100755 index 884f91226..000000000 --- a/test/n8n/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "n8n --version" n8n --version - -reportResults diff --git a/test/namespace-cli/scenarios.json b/test/namespace-cli/scenarios.json deleted file mode 100644 index 54688441a..000000000 --- a/test/namespace-cli/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "namespace-cli": {} - } - }, - "test_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "namespace-cli": { - "version": "v0.0.393" - } - } - } -} \ No newline at end of file diff --git a/test/namespace-cli/test.sh b/test/namespace-cli/test.sh deleted file mode 100644 index bf05e8c6c..000000000 --- a/test/namespace-cli/test.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "namespace-cli is installed" nsc version -check "namespace-cli docker credential helper is installed" docker-credential-nsc --help - -reportResults diff --git a/test/namespace-cli/test_specific_version.sh b/test/namespace-cli/test_specific_version.sh deleted file mode 100644 index e35848959..000000000 --- a/test/namespace-cli/test_specific_version.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "namespace-cli version is equal to v0.0.393" sh -c "nsc version | grep 'v0.0.393'" -# docker-credential-nsc doesn't have a version indicator as of v0.0.393 -# check "namespace-cli docker credential helper version is equal to v0.0.393" sh -c "docker-credential-nsc --help | grep 'v0.0.393'" - -reportResults \ No newline at end of file diff --git a/test/nancy/scenarios.json b/test/nancy/scenarios.json deleted file mode 100644 index 730661ba4..000000000 --- a/test/nancy/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nancy": {} - } - } -} \ No newline at end of file diff --git a/test/nancy/test_defaults_debian.sh b/test/nancy/test_defaults_debian.sh deleted file mode 100755 index f9d13d0f7..000000000 --- a/test/nancy/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nancy --version" nancy --version - -reportResults diff --git a/test/navi/scenarios.json b/test/navi/scenarios.json deleted file mode 100644 index 3a19dc9d6..000000000 --- a/test/navi/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "navi": {} - } - } -} \ No newline at end of file diff --git a/test/navi/test_defaults_debian.sh b/test/navi/test_defaults_debian.sh deleted file mode 100755 index ecbab95c8..000000000 --- a/test/navi/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "navi --version" navi --version - -reportResults diff --git a/test/ncdu/scenarios.json b/test/ncdu/scenarios.json deleted file mode 100644 index 305a9e8ab..000000000 --- a/test/ncdu/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ncdu": {} - } - } -} \ No newline at end of file diff --git a/test/ncdu/test_defaults_debian.sh b/test/ncdu/test_defaults_debian.sh deleted file mode 100755 index f9cdf5943..000000000 --- a/test/ncdu/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ncdu --version" ncdu --version - -reportResults diff --git a/test/neko-asdf/scenarios.json b/test/neko-asdf/scenarios.json deleted file mode 100644 index 78b44a4cc..000000000 --- a/test/neko-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "neko-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/neko-asdf/test.sh b/test/neko-asdf/test.sh deleted file mode 100755 index 93e93b662..000000000 --- a/test/neko-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "neko -version" neko -version - -reportResults diff --git a/test/neo4jmigrations-sdkman/scenarios.json b/test/neo4jmigrations-sdkman/scenarios.json deleted file mode 100644 index 9875befb6..000000000 --- a/test/neo4jmigrations-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", - "features": { - "neo4jmigrations-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/neo4jmigrations-sdkman/test.sh b/test/neo4jmigrations-sdkman/test.sh deleted file mode 100755 index e53b11682..000000000 --- a/test/neo4jmigrations-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "neo4j-migrations --help" neo4j-migrations --help - -reportResults diff --git a/test/neofetch/scenarios.json b/test/neofetch/scenarios.json deleted file mode 100644 index e3b72da9e..000000000 --- a/test/neofetch/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "neofetch": {} - } - } -} \ No newline at end of file diff --git a/test/neofetch/test_defaults_debian.sh b/test/neofetch/test_defaults_debian.sh deleted file mode 100755 index f5a75d46c..000000000 --- a/test/neofetch/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "neofetch --print_config" neofetch --print_config - -reportResults diff --git a/test/neovim-apt-get/scenarios.json b/test/neovim-apt-get/scenarios.json deleted file mode 100644 index 90a2442b8..000000000 --- a/test/neovim-apt-get/scenarios.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "test_ubuntu": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", - "features": { - "neovim-apt-get": {} - } - }, - "test_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "neovim-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/neovim-apt-get/test_debian.sh b/test/neovim-apt-get/test_debian.sh deleted file mode 100755 index f9e3e5444..000000000 --- a/test/neovim-apt-get/test_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nvim --version" nvim --version - -reportResults diff --git a/test/neovim-apt-get/test_ubuntu.sh b/test/neovim-apt-get/test_ubuntu.sh deleted file mode 100755 index f9e3e5444..000000000 --- a/test/neovim-apt-get/test_ubuntu.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nvim --version" nvim --version - -reportResults diff --git a/test/neovim-homebrew/scenarios.json b/test/neovim-homebrew/scenarios.json deleted file mode 100644 index 43aa71db6..000000000 --- a/test/neovim-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "neovim-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/neovim-homebrew/test.sh b/test/neovim-homebrew/test.sh deleted file mode 100755 index f9e3e5444..000000000 --- a/test/neovim-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nvim --version" nvim --version - -reportResults diff --git a/test/nestjs-cli/scenarios.json b/test/nestjs-cli/scenarios.json deleted file mode 100644 index f4d5161eb..000000000 --- a/test/nestjs-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nestjs-cli": {} - } - } -} \ No newline at end of file diff --git a/test/nestjs-cli/test.sh b/test/nestjs-cli/test.sh deleted file mode 100755 index 8b7a4ac9c..000000000 --- a/test/nestjs-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nest --version" nest --version - -reportResults diff --git a/test/netdata/scenarios.json b/test/netdata/scenarios.json deleted file mode 100644 index 273281ecc..000000000 --- a/test/netdata/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "netdata": {} - } - } -} \ No newline at end of file diff --git a/test/netdata/test.sh b/test/netdata/test.sh deleted file mode 100755 index e3c385078..000000000 --- a/test/netdata/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "netdata -version" netdata -version - -reportResults diff --git a/test/netlify-cli/scenarios.json b/test/netlify-cli/scenarios.json deleted file mode 100644 index 624a2fd6f..000000000 --- a/test/netlify-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "netlify-cli": {} - } - } -} \ No newline at end of file diff --git a/test/netlify-cli/test.sh b/test/netlify-cli/test.sh deleted file mode 100755 index 0ea5022d9..000000000 --- a/test/netlify-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "netlify --version" netlify --version - -reportResults diff --git a/test/nim-asdf/scenarios.json b/test/nim-asdf/scenarios.json deleted file mode 100644 index a7001698e..000000000 --- a/test/nim-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nim-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/nim-asdf/test.sh b/test/nim-asdf/test.sh deleted file mode 100755 index 095adfc56..000000000 --- a/test/nim-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nim --version" nim --version - -reportResults diff --git a/test/ninja-asdf/scenarios.json b/test/ninja-asdf/scenarios.json deleted file mode 100644 index 1f961320b..000000000 --- a/test/ninja-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ninja-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/ninja-asdf/test.sh b/test/ninja-asdf/test.sh deleted file mode 100755 index 5ac3f5246..000000000 --- a/test/ninja-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ninja --version" ninja --version - -reportResults diff --git a/test/nmap-apt-get/scenarios.json b/test/nmap-apt-get/scenarios.json deleted file mode 100644 index c8db058ad..000000000 --- a/test/nmap-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nmap-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/nmap-apt-get/test.sh b/test/nmap-apt-get/test.sh deleted file mode 100755 index 58abacf89..000000000 --- a/test/nmap-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nmap --version" nmap --version - -reportResults diff --git a/test/nmap-homebrew/scenarios.json b/test/nmap-homebrew/scenarios.json deleted file mode 100644 index eecb8648d..000000000 --- a/test/nmap-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nmap-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/nmap-homebrew/test.sh b/test/nmap-homebrew/test.sh deleted file mode 100755 index 58abacf89..000000000 --- a/test/nmap-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nmap --version" nmap --version - -reportResults diff --git a/test/nnn-apt-get/scenarios.json b/test/nnn-apt-get/scenarios.json deleted file mode 100644 index c81b50da2..000000000 --- a/test/nnn-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nnn-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/nnn-apt-get/test.sh b/test/nnn-apt-get/test.sh deleted file mode 100755 index 0438374e4..000000000 --- a/test/nnn-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nnn -V" nnn -V - -reportResults diff --git a/test/nnn-homebrew/scenarios.json b/test/nnn-homebrew/scenarios.json deleted file mode 100644 index 2f6c549d0..000000000 --- a/test/nnn-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nnn-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/nnn-homebrew/test.sh b/test/nnn-homebrew/test.sh deleted file mode 100755 index 0438374e4..000000000 --- a/test/nnn-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nnn -V" nnn -V - -reportResults diff --git a/test/node-asdf/scenarios.json b/test/node-asdf/scenarios.json deleted file mode 100644 index 64baed0a5..000000000 --- a/test/node-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "node-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/node-asdf/test.sh b/test/node-asdf/test.sh deleted file mode 100755 index 04d9aa6da..000000000 --- a/test/node-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "node --version" node --version - -reportResults diff --git a/test/node-exporter/scenarios.json b/test/node-exporter/scenarios.json deleted file mode 100644 index 1a18ed8f0..000000000 --- a/test/node-exporter/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "node-exporter": {} - } - } -} \ No newline at end of file diff --git a/test/node-exporter/test_defaults_debian.sh b/test/node-exporter/test_defaults_debian.sh deleted file mode 100755 index ab96c9bfc..000000000 --- a/test/node-exporter/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "node_exporter --version" node_exporter --version - -reportResults diff --git a/test/nomad-asdf/scenarios.json b/test/nomad-asdf/scenarios.json deleted file mode 100644 index 8e031698d..000000000 --- a/test/nomad-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nomad-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/nomad-asdf/test.sh b/test/nomad-asdf/test.sh deleted file mode 100755 index 411a04cab..000000000 --- a/test/nomad-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nomad --version" nomad --version - -reportResults diff --git a/test/nox/scenarios.json b/test/nox/scenarios.json deleted file mode 100644 index dc2cb49d9..000000000 --- a/test/nox/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nox": {} - } - } -} \ No newline at end of file diff --git a/test/nox/test.sh b/test/nox/test.sh deleted file mode 100755 index 4fc72aa13..000000000 --- a/test/nox/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nox --version" nox --version - -reportResults diff --git a/test/npm-package/install_angular_cli.sh b/test/npm-package/install_angular_cli.sh deleted file mode 100755 index ed0682040..000000000 --- a/test/npm-package/install_angular_cli.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "npm list --global --parseable --depth 0 --omit dev | grep @angular/cli" npm list --global --parseable --depth 0 --omit dev | grep "@angular/cli" - -reportResults diff --git a/test/npm-package/install_typescript.sh b/test/npm-package/install_typescript.sh deleted file mode 100755 index 423a71a55..000000000 --- a/test/npm-package/install_typescript.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "npm list --global --parseable --depth 0 --omit dev | grep typescript" npm list --global --parseable --depth 0 --omit dev | grep "typescript" - -reportResults diff --git a/test/npm-package/scenarios.json b/test/npm-package/scenarios.json deleted file mode 100644 index 1814d53a2..000000000 --- a/test/npm-package/scenarios.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "install_angular_cli": { - "image": "debian:bullseye", - "features": { - "npm-package": { - "version": "latest", - "package": "@angular/cli" - } - } - }, - "install_typescript": { - "image": "debian:bullseye", - "features": { - "npm-package": { - "version": "latest", - "package": "typescript" - } - } - }, - "test_existing_installation": { - "image": "mcr.microsoft.com/devcontainers/typescript-node:18-bullseye", - "features": { - "npm-package": { - "version": "8.3.1", - "package": "pnpm" - } - } - }, - "test_existing_installation_different_version": { - "image": "mcr.microsoft.com/devcontainers/typescript-node:18-bullseye", - "features": { - "npm-package": { - "version": "7.26.3", - "package": "pnpm" - } - } - } -} \ No newline at end of file diff --git a/test/npm-package/test_existing_installation.sh b/test/npm-package/test_existing_installation.sh deleted file mode 100755 index 0c76f83bc..000000000 --- a/test/npm-package/test_existing_installation.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check " pnpm -v | grep 8.3.1" pnpm -v | grep 8.3.1 - -reportResults diff --git a/test/npm-package/test_existing_installation_different_version.sh b/test/npm-package/test_existing_installation_different_version.sh deleted file mode 100755 index 88850d858..000000000 --- a/test/npm-package/test_existing_installation_different_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check " pnpm -v | grep 7.26.3" pnpm -v | grep 7.26.3 - -reportResults diff --git a/test/npm-packages/scenarios.json b/test/npm-packages/scenarios.json deleted file mode 100644 index d5363099d..000000000 --- a/test/npm-packages/scenarios.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "test_debian_versions": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "npm-packages": { - "packages": "eslint@9.20.1,nodemon,prettier@3.5.2" - } - } - } -} \ No newline at end of file diff --git a/test/npm-packages/test.sh b/test/npm-packages/test.sh deleted file mode 100755 index cc1baded6..000000000 --- a/test/npm-packages/test.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -reportResults diff --git a/test/npm-packages/test_debian_versions.sh b/test/npm-packages/test_debian_versions.sh deleted file mode 100755 index 4463caa7e..000000000 --- a/test/npm-packages/test_debian_versions.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "eslint version is equal to 9.20.1" bash -c "eslint --version | grep 'v9.20.1'" -check "nodemon is installed" nodemon --version -check "prettier version is equal to 3.5.2" bash -c "prettier --version | grep '3.5.2'" - -reportResults diff --git a/test/nx-npm/scenarios.json b/test/nx-npm/scenarios.json deleted file mode 100644 index 7cdade5a7..000000000 --- a/test/nx-npm/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nx-npm": {} - } - } -} \ No newline at end of file diff --git a/test/nx-npm/test.sh b/test/nx-npm/test.sh deleted file mode 100755 index 91717c85d..000000000 --- a/test/nx-npm/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type nx" type nx - -reportResults diff --git a/test/ocaml-asdf/scenarios.json b/test/ocaml-asdf/scenarios.json deleted file mode 100644 index bdfa0b71b..000000000 --- a/test/ocaml-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ocaml-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/ocaml-asdf/test.sh b/test/ocaml-asdf/test.sh deleted file mode 100755 index 623a93177..000000000 --- a/test/ocaml-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ocaml --version" ocaml --version - -reportResults diff --git a/test/ocaml-opam/scenarios.json b/test/ocaml-opam/scenarios.json deleted file mode 100644 index d83b39ddb..000000000 --- a/test/ocaml-opam/scenarios.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "test_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ocaml-opam": {} - } - }, - "test_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ocaml-opam": { - "version": "4.14.2" - } - } - }, - "test_no_platform_tools": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ocaml-opam": { - "installPlatformTools": false - } - } - } -} diff --git a/test/ocaml-opam/test_debian.sh b/test/ocaml-opam/test_debian.sh deleted file mode 100755 index 8237241c3..000000000 --- a/test/ocaml-opam/test_debian.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "opam is installed" opam --version -check "OCaml is installed" ocamlc --version -check "UTop is installed" utop -version - -check "no opam warning" sh -c "test $(opam switch 2>&1 | grep --count 'WARNING') -eq 0" - -reportResults diff --git a/test/ocaml-opam/test_no_platform_tools.sh b/test/ocaml-opam/test_no_platform_tools.sh deleted file mode 100755 index 69e7b5c19..000000000 --- a/test/ocaml-opam/test_no_platform_tools.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "no utop" sh -c "! command -v utop" - -reportResults diff --git a/test/ocaml-opam/test_specific_version.sh b/test/ocaml-opam/test_specific_version.sh deleted file mode 100755 index 279689b1a..000000000 --- a/test/ocaml-opam/test_specific_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "OCaml version is equal to 4.14.2" sh -c "ocamlc --version | grep '4.14.2'" - -reportResults diff --git a/test/oclif/scenarios.json b/test/oclif/scenarios.json deleted file mode 100644 index cff42bd20..000000000 --- a/test/oclif/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "oclif": {} - } - } -} \ No newline at end of file diff --git a/test/oclif/test.sh b/test/oclif/test.sh deleted file mode 100755 index 56fcbc5a6..000000000 --- a/test/oclif/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "oclif --version" oclif --version - -reportResults diff --git a/test/opa/scenarios.json b/test/opa/scenarios.json deleted file mode 100644 index 8e686cb4d..000000000 --- a/test/opa/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "opa": {} - } - } -} \ No newline at end of file diff --git a/test/opa/test_defaults_debian.sh b/test/opa/test_defaults_debian.sh deleted file mode 100755 index 5a008076c..000000000 --- a/test/opa/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "opa version" opa version - -reportResults diff --git a/test/opam-asdf/scenarios.json b/test/opam-asdf/scenarios.json deleted file mode 100644 index c1de4631d..000000000 --- a/test/opam-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "opam-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/opam-asdf/test.sh b/test/opam-asdf/test.sh deleted file mode 100755 index 7f9feccb2..000000000 --- a/test/opam-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "opam --version" opam --version - -reportResults diff --git a/test/ory-cli/scenarios.json b/test/ory-cli/scenarios.json deleted file mode 100644 index 6b537da55..000000000 --- a/test/ory-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ory-cli": {} - } - } -} \ No newline at end of file diff --git a/test/ory-cli/test_defaults_debian.sh b/test/ory-cli/test_defaults_debian.sh deleted file mode 100755 index f14aa594c..000000000 --- a/test/ory-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ory version" ory version - -reportResults diff --git a/test/ory-hydra/scenarios.json b/test/ory-hydra/scenarios.json deleted file mode 100644 index 87229707e..000000000 --- a/test/ory-hydra/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ory-hydra": {} - } - } -} \ No newline at end of file diff --git a/test/ory-hydra/test_defaults_debian.sh b/test/ory-hydra/test_defaults_debian.sh deleted file mode 100755 index cf94f5411..000000000 --- a/test/ory-hydra/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "hydra version" hydra version - -reportResults diff --git a/test/ory-kratos/scenarios.json b/test/ory-kratos/scenarios.json deleted file mode 100644 index 74b0010f0..000000000 --- a/test/ory-kratos/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ory-kratos": {} - } - } -} \ No newline at end of file diff --git a/test/ory-kratos/test_defaults_debian.sh b/test/ory-kratos/test_defaults_debian.sh deleted file mode 100755 index 987862fc5..000000000 --- a/test/ory-kratos/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "kratos version" kratos version - -reportResults diff --git a/test/ory-oathkeeper/scenarios.json b/test/ory-oathkeeper/scenarios.json deleted file mode 100644 index e5b8d7330..000000000 --- a/test/ory-oathkeeper/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ory-oathkeeper": {} - } - } -} \ No newline at end of file diff --git a/test/ory-oathkeeper/test_defaults_debian.sh b/test/ory-oathkeeper/test_defaults_debian.sh deleted file mode 100755 index eac3ce469..000000000 --- a/test/ory-oathkeeper/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "oathkeeper version" oathkeeper version - -reportResults diff --git a/test/packer-asdf/scenarios.json b/test/packer-asdf/scenarios.json deleted file mode 100644 index 3dcd2dea6..000000000 --- a/test/packer-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "packer-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/packer-asdf/test.sh b/test/packer-asdf/test.sh deleted file mode 100755 index d8c682f42..000000000 --- a/test/packer-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "packer --version" packer --version - -reportResults diff --git a/test/pandoc/scenarios.json b/test/pandoc/scenarios.json deleted file mode 100644 index 679449f66..000000000 --- a/test/pandoc/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pandoc": {} - } - } -} \ No newline at end of file diff --git a/test/pandoc/test_defaults_debian.sh b/test/pandoc/test_defaults_debian.sh deleted file mode 100755 index 99dbc8916..000000000 --- a/test/pandoc/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pandoc --version" pandoc --version - -reportResults diff --git a/test/pass-apt-get/scenarios.json b/test/pass-apt-get/scenarios.json deleted file mode 100644 index a74ec4570..000000000 --- a/test/pass-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pass-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/pass-apt-get/test.sh b/test/pass-apt-get/test.sh deleted file mode 100755 index f1cdef759..000000000 --- a/test/pass-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pass --version" pass --version - -reportResults diff --git a/test/pdm/scenarios.json b/test/pdm/scenarios.json deleted file mode 100644 index c79726a82..000000000 --- a/test/pdm/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pdm": {} - } - } -} \ No newline at end of file diff --git a/test/pdm/test.sh b/test/pdm/test.sh deleted file mode 100755 index 6c68e8425..000000000 --- a/test/pdm/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pdm --version" pdm --version - -reportResults diff --git a/test/peco-asdf/scenarios.json b/test/peco-asdf/scenarios.json deleted file mode 100644 index cf8c46082..000000000 --- a/test/peco-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "peco-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/peco-asdf/test.sh b/test/peco-asdf/test.sh deleted file mode 100755 index cc73bcf50..000000000 --- a/test/peco-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "peco --version" peco --version - -reportResults diff --git a/test/perl-asdf/scenarios.json b/test/perl-asdf/scenarios.json deleted file mode 100644 index 067eac56a..000000000 --- a/test/perl-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "perl-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/perl-asdf/test.sh b/test/perl-asdf/test.sh deleted file mode 100755 index 7052c53ef..000000000 --- a/test/perl-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "perl --version" perl --version - -reportResults diff --git a/test/pierrot-sdkman/scenarios.json b/test/pierrot-sdkman/scenarios.json deleted file mode 100644 index 5e89ef583..000000000 --- a/test/pierrot-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pierrot-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/pierrot-sdkman/test.sh b/test/pierrot-sdkman/test.sh deleted file mode 100755 index e65f806dd..000000000 --- a/test/pierrot-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "pierrot --version" pierrot --version - -reportResults diff --git a/test/pipenv/scenarios.json b/test/pipenv/scenarios.json deleted file mode 100644 index b8fa08ecd..000000000 --- a/test/pipenv/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pipenv": {} - } - } -} \ No newline at end of file diff --git a/test/pipenv/test.sh b/test/pipenv/test.sh deleted file mode 100755 index e80b328f1..000000000 --- a/test/pipenv/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pipenv --version" pipenv --version - -reportResults diff --git a/test/pipx-package/install_ansible_specific_version.sh b/test/pipx-package/install_ansible_specific_version.sh deleted file mode 100755 index 9c9b888a8..000000000 --- a/test/pipx-package/install_ansible_specific_version.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -ansible --version -check "ansible-core version is equal to 2.16.11" bash -c 'ansible --version | grep "core 2.16.11"' -check "ansible version is equal to 9.10.x" bash -c 'pipx list --include-injected | grep "ansible 9.10."' - -reportResults diff --git a/test/pipx-package/install_black.sh b/test/pipx-package/install_black.sh deleted file mode 100755 index efde0bc8a..000000000 --- a/test/pipx-package/install_black.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "pipx list --short | grep black" pipx list --short | grep "black" - - -reportResults diff --git a/test/pipx-package/install_black_custom_interpreter.sh b/test/pipx-package/install_black_custom_interpreter.sh deleted file mode 100755 index 6a83c5490..000000000 --- a/test/pipx-package/install_black_custom_interpreter.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib -ls /usr/local/python -l -check "pipx list --short | grep black" pipx list --short | grep "black" - - -reportResults diff --git a/test/pipx-package/install_black_debian_bookworm.sh b/test/pipx-package/install_black_debian_bookworm.sh deleted file mode 100755 index efde0bc8a..000000000 --- a/test/pipx-package/install_black_debian_bookworm.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "pipx list --short | grep black" pipx list --short | grep "black" - - -reportResults diff --git a/test/pipx-package/install_precommit.sh b/test/pipx-package/install_precommit.sh deleted file mode 100755 index 5b846754a..000000000 --- a/test/pipx-package/install_precommit.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "pipx list --short | grep pre-commit" pipx list --short | grep "pre-commit" - -check "type pre-commit" type pre-commit - -reportResults diff --git a/test/pipx-package/scenarios.json b/test/pipx-package/scenarios.json deleted file mode 100644 index ae3cf15ae..000000000 --- a/test/pipx-package/scenarios.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "install_black_debian_bookworm": { - "image": "mcr.microsoft.com/devcontainers/base:bookworm", - "features": { - "pipx-package": { - "version": "latest", - "package": "black", - "injections": "tqdm pylint" - } - } - }, - "install_black": { - "image": "debian:bullseye", - "features": { - "pipx-package": { - "version": "latest", - "package": "black", - "injections": "tqdm pylint" - } - } - }, - "install_precommit": { - "image": "mcr.microsoft.com/devcontainers/python:1-3.11-bullseye", - "features": { - "pipx-package": { - "version": "latest", - "package": "pre-commit" - } - } - }, - "install_black_custom_interpreter": { - "image": "debian:bullseye", - "features": { - "ghcr.io/devcontainers/features/python:1": { - "version": "3.8.10" - }, - "pipx-package": { - "interpreter": "/usr/local/python/3.8.10/bin/python3", - "version": "latest", - "package": "black", - "injections": "tqdm pylint" - } - } - }, - "install_ansible_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:bookworm", - "features": { - "pipx-package": { - "version": "2.16.11", - "package": "ansible-core", - "injections": "ansible" - } - } - } -} \ No newline at end of file diff --git a/test/pnpm/scenarios.json b/test/pnpm/scenarios.json deleted file mode 100644 index 33ff089e6..000000000 --- a/test/pnpm/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pnpm": {} - } - }, - "test_existing_but_different_version": { - "image": "mcr.microsoft.com/devcontainers/typescript-node:18-bullseye", - "features": { - "pnpm": { - "version": "7.26.3" - } - } - } -} \ No newline at end of file diff --git a/test/pnpm/test.sh b/test/pnpm/test.sh deleted file mode 100755 index fd19043fa..000000000 --- a/test/pnpm/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pnpm -v" pnpm -v - -reportResults diff --git a/test/pnpm/test_existing_but_different_version.sh b/test/pnpm/test_existing_but_different_version.sh deleted file mode 100755 index ba32f55ca..000000000 --- a/test/pnpm/test_existing_but_different_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pnpm -v | grep 7.26.3" pnpm -v | grep 7.26.3 - -reportResults diff --git a/test/podman-homebrew/scenarios.json b/test/podman-homebrew/scenarios.json deleted file mode 100644 index f360dde05..000000000 --- a/test/podman-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "podman-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/podman-homebrew/test.sh b/test/podman-homebrew/test.sh deleted file mode 100755 index b6efd813e..000000000 --- a/test/podman-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "podman --version" podman --version - -reportResults diff --git a/test/poetry/scenarios.json b/test/poetry/scenarios.json deleted file mode 100644 index 6375ace89..000000000 --- a/test/poetry/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "poetry": {} - } - } -} \ No newline at end of file diff --git a/test/poetry/test.sh b/test/poetry/test.sh deleted file mode 100755 index 6a166752e..000000000 --- a/test/poetry/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "poetry --version" poetry --version - -reportResults diff --git a/test/pomchecker-sdkman/scenarios.json b/test/pomchecker-sdkman/scenarios.json deleted file mode 100644 index 880af77cc..000000000 --- a/test/pomchecker-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pomchecker-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/pomchecker-sdkman/test.sh b/test/pomchecker-sdkman/test.sh deleted file mode 100755 index e7c5f404b..000000000 --- a/test/pomchecker-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "pomchecker --version" pomchecker --version - -reportResults diff --git a/test/poppler-utils-apt-get/scenarios.json b/test/poppler-utils-apt-get/scenarios.json deleted file mode 100644 index 50b1a4228..000000000 --- a/test/poppler-utils-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "poppler-utils-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/poppler-utils-apt-get/test.sh b/test/poppler-utils-apt-get/test.sh deleted file mode 100755 index 3cbadb87c..000000000 --- a/test/poppler-utils-apt-get/test.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type pdfattach" type pdfattach - -check "type pdfdetach" type pdfdetach - -check "type pdffonts" type pdffonts - -check "type pdfimages" type pdfimages - -check "type pdfinfo" type pdfinfo - -check "type pdfseparate" type pdfseparate - -check "type pdftocairo" type pdftocairo - -check "type pdftohtml" type pdftohtml - -check "type pdftoppm" type pdftoppm - -check "type pdftops" type pdftops - -check "type pdftotext" type pdftotext - -check "type pdfunite" type pdfunite - -reportResults diff --git a/test/powerbi-visuals-tools/scenarios.json b/test/powerbi-visuals-tools/scenarios.json deleted file mode 100644 index f12c083b1..000000000 --- a/test/powerbi-visuals-tools/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "powerbi-visuals-tools": {} - } - } -} \ No newline at end of file diff --git a/test/powerbi-visuals-tools/test.sh b/test/powerbi-visuals-tools/test.sh deleted file mode 100755 index 3e62c0117..000000000 --- a/test/powerbi-visuals-tools/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pbiviz --version" pbiviz --version - -reportResults diff --git a/test/powershell/scenarios.json b/test/powershell/scenarios.json deleted file mode 100644 index 1e4cd6bb0..000000000 --- a/test/powershell/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "powershell": {} - } - } -} \ No newline at end of file diff --git a/test/powershell/test_defaults_debian.sh b/test/powershell/test_defaults_debian.sh deleted file mode 100755 index 653671159..000000000 --- a/test/powershell/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pwsh --version" pwsh --version - -reportResults diff --git a/test/pre-commit/scenarios.json b/test/pre-commit/scenarios.json deleted file mode 100644 index ca501aee5..000000000 --- a/test/pre-commit/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/python:1-3.11-bullseye", - "features": { - "pre-commit": {} - } - } -} \ No newline at end of file diff --git a/test/pre-commit/test.sh b/test/pre-commit/test.sh deleted file mode 100755 index a7d906183..000000000 --- a/test/pre-commit/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pre-commit --version" pre-commit --version - -reportResults diff --git a/test/prettier/scenarios.json b/test/prettier/scenarios.json deleted file mode 100644 index 3337bab98..000000000 --- a/test/prettier/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "prettier": {} - } - } -} \ No newline at end of file diff --git a/test/prettier/test.sh b/test/prettier/test.sh deleted file mode 100755 index beab87074..000000000 --- a/test/prettier/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "prettier --version" prettier --version - -reportResults diff --git a/test/prisma/scenarios.json b/test/prisma/scenarios.json deleted file mode 100644 index 4515c500f..000000000 --- a/test/prisma/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "prisma": {} - } - } -} \ No newline at end of file diff --git a/test/prisma/test.sh b/test/prisma/test.sh deleted file mode 100755 index f64d674b7..000000000 --- a/test/prisma/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "prisma --help" prisma --help - -reportResults diff --git a/test/projen/scenarios.json b/test/projen/scenarios.json deleted file mode 100644 index 600a83eee..000000000 --- a/test/projen/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "projen": {} - } - } -} \ No newline at end of file diff --git a/test/projen/test.sh b/test/projen/test.sh deleted file mode 100755 index 87d8668e0..000000000 --- a/test/projen/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "projen --version" projen --version - -reportResults diff --git a/test/prometheus/scenarios.json b/test/prometheus/scenarios.json deleted file mode 100644 index 5687aca2c..000000000 --- a/test/prometheus/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "prometheus": {} - } - } -} \ No newline at end of file diff --git a/test/prometheus/test_defaults_debian.sh b/test/prometheus/test_defaults_debian.sh deleted file mode 100755 index e500eb51c..000000000 --- a/test/prometheus/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "prometheus --version" prometheus --version - -reportResults diff --git a/test/promlens/scenarios.json b/test/promlens/scenarios.json deleted file mode 100644 index 0e216c88e..000000000 --- a/test/promlens/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "promlens": {} - } - } -} \ No newline at end of file diff --git a/test/promlens/test_defaults_debian.sh b/test/promlens/test_defaults_debian.sh deleted file mode 100755 index ef2b22896..000000000 --- a/test/promlens/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "promlens --version" promlens --version - -reportResults diff --git a/test/protoc-asdf/scenarios.json b/test/protoc-asdf/scenarios.json deleted file mode 100644 index 7bdd3292e..000000000 --- a/test/protoc-asdf/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test_latest_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "protoc-asdf": {} - } - }, - "test_specified_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "protoc-asdf": { - "version": "3.14.0" - } - } - } -} \ No newline at end of file diff --git a/test/protoc-asdf/test_latest_version.sh b/test/protoc-asdf/test_latest_version.sh deleted file mode 100755 index 7531b00da..000000000 --- a/test/protoc-asdf/test_latest_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "protoc --version" protoc --version - -reportResults diff --git a/test/protoc-asdf/test_specified_version.sh b/test/protoc-asdf/test_specified_version.sh deleted file mode 100755 index 7531b00da..000000000 --- a/test/protoc-asdf/test_specified_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "protoc --version" protoc --version - -reportResults diff --git a/test/protoc/scenarios.json b/test/protoc/scenarios.json deleted file mode 100644 index c452471b1..000000000 --- a/test/protoc/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "protoc": {} - } - } -} \ No newline at end of file diff --git a/test/protoc/test_defaults_debian.sh b/test/protoc/test_defaults_debian.sh deleted file mode 100755 index 7531b00da..000000000 --- a/test/protoc/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "protoc --version" protoc --version - -reportResults diff --git a/test/pulumi/scenarios.json b/test/pulumi/scenarios.json deleted file mode 100644 index dc5c020eb..000000000 --- a/test/pulumi/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pulumi": {} - } - } -} \ No newline at end of file diff --git a/test/pulumi/test.sh b/test/pulumi/test.sh deleted file mode 100755 index 95a827316..000000000 --- a/test/pulumi/test.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -# The 'check' command comes from the dev-container-features-test-lib. -check "version" pulumi version - -reportResults diff --git a/test/pushgateway/scenarios.json b/test/pushgateway/scenarios.json deleted file mode 100644 index 038ce0639..000000000 --- a/test/pushgateway/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pushgateway": {} - } - } -} \ No newline at end of file diff --git a/test/pushgateway/test_defaults_debian.sh b/test/pushgateway/test_defaults_debian.sh deleted file mode 100755 index 0aa2d3936..000000000 --- a/test/pushgateway/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pushgateway --version" pushgateway --version - -reportResults diff --git a/test/pyinfra/scenarios.json b/test/pyinfra/scenarios.json deleted file mode 100644 index 02be34415..000000000 --- a/test/pyinfra/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pyinfra": {} - } - } -} \ No newline at end of file diff --git a/test/pyinfra/test.sh b/test/pyinfra/test.sh deleted file mode 100755 index d60463e1d..000000000 --- a/test/pyinfra/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pyinfra --version" pyinfra --version - -reportResults diff --git a/test/pylint/scenarios.json b/test/pylint/scenarios.json deleted file mode 100644 index 8eacd59fc..000000000 --- a/test/pylint/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pylint": {} - } - } -} \ No newline at end of file diff --git a/test/pylint/test.sh b/test/pylint/test.sh deleted file mode 100755 index a9f4c805a..000000000 --- a/test/pylint/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pylint --version" pylint --version - -reportResults diff --git a/test/pyoxidizer/scenarios.json b/test/pyoxidizer/scenarios.json deleted file mode 100644 index fdcfc8b0f..000000000 --- a/test/pyoxidizer/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pyoxidizer": {} - } - } -} \ No newline at end of file diff --git a/test/pyoxidizer/test_defaults_debian.sh b/test/pyoxidizer/test_defaults_debian.sh deleted file mode 100755 index c58e30676..000000000 --- a/test/pyoxidizer/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pyoxidizer --version" pyoxidizer --version - -reportResults diff --git a/test/pyscaffold/scenarios.json b/test/pyscaffold/scenarios.json deleted file mode 100644 index 048fdc62a..000000000 --- a/test/pyscaffold/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pyscaffold": {} - } - } -} \ No newline at end of file diff --git a/test/pyscaffold/test.sh b/test/pyscaffold/test.sh deleted file mode 100755 index f67e8f13d..000000000 --- a/test/pyscaffold/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "putup --version" putup --version - -reportResults diff --git a/test/qrcode/scenarios.json b/test/qrcode/scenarios.json deleted file mode 100644 index 26f35254a..000000000 --- a/test/qrcode/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "qrcode": {} - } - } -} \ No newline at end of file diff --git a/test/qrcode/test.sh b/test/qrcode/test.sh deleted file mode 100755 index c822e59ac..000000000 --- a/test/qrcode/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "qr --version" qr --version - -reportResults diff --git a/test/quarkus-sdkman/scenarios.json b/test/quarkus-sdkman/scenarios.json deleted file mode 100644 index 61a73dbdf..000000000 --- a/test/quarkus-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "quarkus-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/quarkus-sdkman/test.sh b/test/quarkus-sdkman/test.sh deleted file mode 100755 index 0e9f1c7ea..000000000 --- a/test/quarkus-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "quarkus --version" quarkus --version - -reportResults diff --git a/test/quasar-cli/scenarios.json b/test/quasar-cli/scenarios.json deleted file mode 100644 index 3270429c7..000000000 --- a/test/quasar-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "quasar-cli": {} - } - } -} \ No newline at end of file diff --git a/test/quasar-cli/test.sh b/test/quasar-cli/test.sh deleted file mode 100755 index 0b3e5de17..000000000 --- a/test/quasar-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "quasar --version" quasar --version - -reportResults diff --git a/test/raku-asdf/scenarios.json b/test/raku-asdf/scenarios.json deleted file mode 100644 index 7f8818d5c..000000000 --- a/test/raku-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "raku-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/raku-asdf/test.sh b/test/raku-asdf/test.sh deleted file mode 100755 index 2ac30e8a1..000000000 --- a/test/raku-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "raku --version" raku --version - -reportResults diff --git a/test/rclone/scenarios.json b/test/rclone/scenarios.json deleted file mode 100644 index 32a04edbd..000000000 --- a/test/rclone/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "rclone": {} - } - } -} \ No newline at end of file diff --git a/test/rclone/test_defaults_debian.sh b/test/rclone/test_defaults_debian.sh deleted file mode 100755 index 8ed4bda0d..000000000 --- a/test/rclone/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "rclone --version" rclone --version - -reportResults diff --git a/test/redis-homebrew/scenarios.json b/test/redis-homebrew/scenarios.json deleted file mode 100644 index f69dd9275..000000000 --- a/test/redis-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "redis-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/redis-homebrew/test.sh b/test/redis-homebrew/test.sh deleted file mode 100755 index 4e5ff65cd..000000000 --- a/test/redis-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "redis-cli --version" redis-cli --version - -reportResults diff --git a/test/rekor-cli/scenarios.json b/test/rekor-cli/scenarios.json deleted file mode 100644 index 500aa3a2a..000000000 --- a/test/rekor-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "rekor-cli": {} - } - } -} \ No newline at end of file diff --git a/test/rekor-cli/test_defaults_debian.sh b/test/rekor-cli/test_defaults_debian.sh deleted file mode 100755 index ebccd5702..000000000 --- a/test/rekor-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "rekor-cli version" rekor-cli version - -reportResults diff --git a/test/renovate-cli/scenarios.json b/test/renovate-cli/scenarios.json deleted file mode 100644 index 0b26eadd2..000000000 --- a/test/renovate-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "renovate-cli": {} - } - } -} \ No newline at end of file diff --git a/test/renovate-cli/test.sh b/test/renovate-cli/test.sh deleted file mode 100755 index 67f3b0e36..000000000 --- a/test/renovate-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "renovate --version" renovate --version - -reportResults diff --git a/test/ripgrep/scenarios.json b/test/ripgrep/scenarios.json deleted file mode 100644 index 357fbce88..000000000 --- a/test/ripgrep/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ripgrep": {} - } - } -} \ No newline at end of file diff --git a/test/ripgrep/test_defaults_debian.sh b/test/ripgrep/test_defaults_debian.sh deleted file mode 100755 index 6c0dd977a..000000000 --- a/test/ripgrep/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "rg --version" rg --version - -reportResults diff --git a/test/rollup/scenarios.json b/test/rollup/scenarios.json deleted file mode 100644 index 9ef0f9162..000000000 --- a/test/rollup/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "rollup": {} - } - } -} \ No newline at end of file diff --git a/test/rollup/test.sh b/test/rollup/test.sh deleted file mode 100755 index 64b9b61d3..000000000 --- a/test/rollup/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "rollup --version" rollup --version - -reportResults diff --git a/test/ruby-asdf/scenarios.json b/test/ruby-asdf/scenarios.json deleted file mode 100644 index 70885a815..000000000 --- a/test/ruby-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ruby-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/ruby-asdf/test.sh b/test/ruby-asdf/test.sh deleted file mode 100755 index e34381a39..000000000 --- a/test/ruby-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ruby --version" ruby --version - -reportResults diff --git a/test/ruff/scenarios.json b/test/ruff/scenarios.json deleted file mode 100644 index 9eff0a01b..000000000 --- a/test/ruff/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ruff": {} - } - } -} \ No newline at end of file diff --git a/test/ruff/test.sh b/test/ruff/test.sh deleted file mode 100755 index 26b9bbc56..000000000 --- a/test/ruff/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ruff --version" ruff --version - -reportResults diff --git a/test/salesforce-cli/scenarios.json b/test/salesforce-cli/scenarios.json deleted file mode 100644 index b7a40f8d0..000000000 --- a/test/salesforce-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "salesforce-cli": {} - } - } -} \ No newline at end of file diff --git a/test/salesforce-cli/test.sh b/test/salesforce-cli/test.sh deleted file mode 100755 index e5546dba4..000000000 --- a/test/salesforce-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sf --version" sf --version - -reportResults diff --git a/test/salesforce-sfdx/scenarios.json b/test/salesforce-sfdx/scenarios.json deleted file mode 100644 index 1407c5f05..000000000 --- a/test/salesforce-sfdx/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "salesforce-sfdx": {} - } - } -} \ No newline at end of file diff --git a/test/salesforce-sfdx/test.sh b/test/salesforce-sfdx/test.sh deleted file mode 100755 index be1ba5088..000000000 --- a/test/salesforce-sfdx/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sfdx --version" sfdx --version - -reportResults diff --git a/test/sanity-cli/scenarios.json b/test/sanity-cli/scenarios.json deleted file mode 100644 index cd9948e0c..000000000 --- a/test/sanity-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sanity-cli": {} - } - } -} \ No newline at end of file diff --git a/test/sanity-cli/test.sh b/test/sanity-cli/test.sh deleted file mode 100755 index 6bbae943c..000000000 --- a/test/sanity-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sanity --version" sanity --version - -reportResults diff --git a/test/sap-piper/scenarios.json b/test/sap-piper/scenarios.json deleted file mode 100644 index 0881ce5f3..000000000 --- a/test/sap-piper/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sap-piper": {} - } - } -} \ No newline at end of file diff --git a/test/sap-piper/test_defaults_debian.sh b/test/sap-piper/test_defaults_debian.sh deleted file mode 100755 index 54e449eb1..000000000 --- a/test/sap-piper/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "piper version" piper version - -reportResults diff --git a/test/sbt-sdkman/scenarios.json b/test/sbt-sdkman/scenarios.json deleted file mode 100644 index c314656d0..000000000 --- a/test/sbt-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sbt-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/sbt-sdkman/test.sh b/test/sbt-sdkman/test.sh deleted file mode 100755 index b179e5fe4..000000000 --- a/test/sbt-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "sdk current | grep "sbt"" sdk current | grep "sbt" - -reportResults diff --git a/test/scala-sdkman/scenarios.json b/test/scala-sdkman/scenarios.json deleted file mode 100644 index b5685e208..000000000 --- a/test/scala-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "scala-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/scala-sdkman/test.sh b/test/scala-sdkman/test.sh deleted file mode 100755 index 2d9927a3b..000000000 --- a/test/scala-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "sdk current | grep "scala"" sdk current | grep "scala" - -reportResults diff --git a/test/scalacli-sdkman/scenarios.json b/test/scalacli-sdkman/scenarios.json deleted file mode 100644 index 8a1491865..000000000 --- a/test/scalacli-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "scalacli-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/scalacli-sdkman/test.sh b/test/scalacli-sdkman/test.sh deleted file mode 100755 index c3bfc5ab8..000000000 --- a/test/scalacli-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "sdk current | grep "scalacli"" sdk current | grep "scalacli" - -reportResults diff --git a/test/scancode-toolkit/scenarios.json b/test/scancode-toolkit/scenarios.json deleted file mode 100644 index 86f27f198..000000000 --- a/test/scancode-toolkit/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "scancode-toolkit": {} - } - } -} \ No newline at end of file diff --git a/test/scancode-toolkit/test_defaults.sh b/test/scancode-toolkit/test_defaults.sh deleted file mode 100755 index 6e0223a0c..000000000 --- a/test/scancode-toolkit/test_defaults.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "scancode --version" scancode --version - -reportResults diff --git a/test/schemacrawler-sdkman/scenarios.json b/test/schemacrawler-sdkman/scenarios.json deleted file mode 100644 index b41b79eca..000000000 --- a/test/schemacrawler-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "schemacrawler-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/schemacrawler-sdkman/test.sh b/test/schemacrawler-sdkman/test.sh deleted file mode 100755 index b34d08d21..000000000 --- a/test/schemacrawler-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type schemacrawler.sh" type schemacrawler.sh - -reportResults diff --git a/test/sentinel-asdf/scenarios.json b/test/sentinel-asdf/scenarios.json deleted file mode 100644 index 0870c38ec..000000000 --- a/test/sentinel-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sentinel-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/sentinel-asdf/test.sh b/test/sentinel-asdf/test.sh deleted file mode 100755 index 64c8fff3f..000000000 --- a/test/sentinel-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sentinel --version" sentinel --version - -reportResults diff --git a/test/serf-asdf/scenarios.json b/test/serf-asdf/scenarios.json deleted file mode 100644 index 68084c406..000000000 --- a/test/serf-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "serf-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/serf-asdf/test.sh b/test/serf-asdf/test.sh deleted file mode 100755 index eee24b4b9..000000000 --- a/test/serf-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "serf --version" serf --version - -reportResults diff --git a/test/shfmt/scenarios.json b/test/shfmt/scenarios.json deleted file mode 100644 index 5cdd05c18..000000000 --- a/test/shfmt/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "shfmt": {} - } - } -} \ No newline at end of file diff --git a/test/shfmt/test_defaults_debian.sh b/test/shfmt/test_defaults_debian.sh deleted file mode 100755 index 0f7edb590..000000000 --- a/test/shfmt/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "shfmt --version" shfmt --version - -reportResults diff --git a/test/shopify-cli/scenarios.json b/test/shopify-cli/scenarios.json deleted file mode 100644 index dfef081b5..000000000 --- a/test/shopify-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "shopify-cli": {} - } - } -} \ No newline at end of file diff --git a/test/shopify-cli/test.sh b/test/shopify-cli/test.sh deleted file mode 100755 index fea47f298..000000000 --- a/test/shopify-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "shopify --version" shopify --version - -reportResults diff --git a/test/sigstore-python/scenarios.json b/test/sigstore-python/scenarios.json deleted file mode 100644 index b5ccf5ecf..000000000 --- a/test/sigstore-python/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sigstore-python": {} - } - } -} \ No newline at end of file diff --git a/test/sigstore-python/test_defaults.sh b/test/sigstore-python/test_defaults.sh deleted file mode 100755 index 582e4fe08..000000000 --- a/test/sigstore-python/test_defaults.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sigstore --version" sigstore --version - -reportResults diff --git a/test/snyk-cli/scenarios.json b/test/snyk-cli/scenarios.json deleted file mode 100644 index 19a066c5c..000000000 --- a/test/snyk-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "snyk-cli": {} - } - } -} \ No newline at end of file diff --git a/test/snyk-cli/test.sh b/test/snyk-cli/test.sh deleted file mode 100755 index c0facbb25..000000000 --- a/test/snyk-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "snyk --version" snyk --version - -reportResults diff --git a/test/sops/scenarios.json b/test/sops/scenarios.json deleted file mode 100644 index e6e55b9e5..000000000 --- a/test/sops/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sops": {} - } - } -} \ No newline at end of file diff --git a/test/sops/test_defaults_debian.sh b/test/sops/test_defaults_debian.sh deleted file mode 100755 index 1b7931ed9..000000000 --- a/test/sops/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sops --version" sops --version - -reportResults diff --git a/test/spacectl/scenarios.json b/test/spacectl/scenarios.json deleted file mode 100644 index 143f0b8c8..000000000 --- a/test/spacectl/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "spacectl": {} - } - } -} \ No newline at end of file diff --git a/test/spacectl/test_defaults_debian.sh b/test/spacectl/test_defaults_debian.sh deleted file mode 100755 index 7d5f957ec..000000000 --- a/test/spacectl/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "spacectl --version" spacectl --version - -reportResults diff --git a/test/spark-sdkman/scenarios.json b/test/spark-sdkman/scenarios.json deleted file mode 100644 index 305ae2817..000000000 --- a/test/spark-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "spark-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/spark-sdkman/test.sh b/test/spark-sdkman/test.sh deleted file mode 100755 index 1cce7e0e0..000000000 --- a/test/spark-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "spark-class --version" spark-class --version - -reportResults diff --git a/test/spicedb/scenarios.json b/test/spicedb/scenarios.json deleted file mode 100644 index 0cbb6cb01..000000000 --- a/test/spicedb/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "spicedb": {} - } - } -} \ No newline at end of file diff --git a/test/spicedb/test_defaults_debian.sh b/test/spicedb/test_defaults_debian.sh deleted file mode 100755 index 800ba0615..000000000 --- a/test/spicedb/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "spicedb version" spicedb version - -reportResults diff --git a/test/springboot-sdkman/scenarios.json b/test/springboot-sdkman/scenarios.json deleted file mode 100644 index e05903d75..000000000 --- a/test/springboot-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "springboot-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/springboot-sdkman/test.sh b/test/springboot-sdkman/test.sh deleted file mode 100755 index 7d4680827..000000000 --- a/test/springboot-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "spring --version" spring --version - -reportResults diff --git a/test/sqlfluff/scenarios.json b/test/sqlfluff/scenarios.json deleted file mode 100644 index b1d00a52d..000000000 --- a/test/sqlfluff/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sqlfluff": {} - } - } -} \ No newline at end of file diff --git a/test/sqlfluff/test.sh b/test/sqlfluff/test.sh deleted file mode 100755 index 01feed5e2..000000000 --- a/test/sqlfluff/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sqlfluff --version" sqlfluff --version - -reportResults diff --git a/test/squarespace-server/scenarios.json b/test/squarespace-server/scenarios.json deleted file mode 100644 index 03a9b08c1..000000000 --- a/test/squarespace-server/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "squarespace-server": {} - } - } -} \ No newline at end of file diff --git a/test/squarespace-server/test.sh b/test/squarespace-server/test.sh deleted file mode 100755 index 63f2e8fb4..000000000 --- a/test/squarespace-server/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "squarespace-server --version" squarespace-server --version - -reportResults diff --git a/test/sshoogr-sdkman/scenarios.json b/test/sshoogr-sdkman/scenarios.json deleted file mode 100644 index 968bdda94..000000000 --- a/test/sshoogr-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sshoogr-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/sshoogr-sdkman/test.sh b/test/sshoogr-sdkman/test.sh deleted file mode 100755 index 5359f741d..000000000 --- a/test/sshoogr-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type sshoogr" type sshoogr - -reportResults diff --git a/test/starship-homebrew/scenarios.json b/test/starship-homebrew/scenarios.json deleted file mode 100644 index 3e4fd2b3f..000000000 --- a/test/starship-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "starship-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/starship-homebrew/test.sh b/test/starship-homebrew/test.sh deleted file mode 100755 index e159e8518..000000000 --- a/test/starship-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "starship --version" starship --version - -reportResults diff --git a/test/starship/scenarios.json b/test/starship/scenarios.json deleted file mode 100644 index 065ab999e..000000000 --- a/test/starship/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "starship": {} - } - } -} \ No newline at end of file diff --git a/test/starship/test_defaults_debian.sh b/test/starship/test_defaults_debian.sh deleted file mode 100755 index e159e8518..000000000 --- a/test/starship/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "starship --version" starship --version - -reportResults diff --git a/test/statsd-exporter/scenarios.json b/test/statsd-exporter/scenarios.json deleted file mode 100644 index 6c621ab16..000000000 --- a/test/statsd-exporter/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "statsd-exporter": {} - } - } -} \ No newline at end of file diff --git a/test/statsd-exporter/test_defaults_debian.sh b/test/statsd-exporter/test_defaults_debian.sh deleted file mode 100755 index aeded0599..000000000 --- a/test/statsd-exporter/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "statsd_exporter --version" statsd_exporter --version - -reportResults diff --git a/test/stew/scenarios.json b/test/stew/scenarios.json deleted file mode 100644 index 0f560d8a8..000000000 --- a/test/stew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "stew": {} - } - } -} \ No newline at end of file diff --git a/test/stew/test_defaults_debian.sh b/test/stew/test_defaults_debian.sh deleted file mode 100755 index 7d476cb4f..000000000 --- a/test/stew/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "stew --version" stew --version - -reportResults diff --git a/test/supabase-cli/scenarios.json b/test/supabase-cli/scenarios.json deleted file mode 100644 index 803a7bfd8..000000000 --- a/test/supabase-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "supabase-cli": {} - } - } -} \ No newline at end of file diff --git a/test/supabase-cli/test_defaults_debian.sh b/test/supabase-cli/test_defaults_debian.sh deleted file mode 100755 index 62f42f621..000000000 --- a/test/supabase-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "supabase --version" supabase --version - -reportResults diff --git a/test/surge-cli/scenarios.json b/test/surge-cli/scenarios.json deleted file mode 100644 index e65bc6176..000000000 --- a/test/surge-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "surge-cli": {} - } - } -} \ No newline at end of file diff --git a/test/surge-cli/test.sh b/test/surge-cli/test.sh deleted file mode 100755 index 2e170f9b0..000000000 --- a/test/surge-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "surge --version" surge --version - -reportResults diff --git a/test/sv2v/scenarios.json b/test/sv2v/scenarios.json deleted file mode 100644 index a823949a2..000000000 --- a/test/sv2v/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sv2v": {} - } - } -} \ No newline at end of file diff --git a/test/sv2v/test_defaults_debian.sh b/test/sv2v/test_defaults_debian.sh deleted file mode 100755 index 6ace2aa41..000000000 --- a/test/sv2v/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sv2v --version" sv2v --version - -reportResults diff --git a/test/svu-asdf/scenarios.json b/test/svu-asdf/scenarios.json deleted file mode 100644 index 189fefd9f..000000000 --- a/test/svu-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "svu-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/svu-asdf/test.sh b/test/svu-asdf/test.sh deleted file mode 100755 index 071b1e465..000000000 --- a/test/svu-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "svu --version" svu --version - -reportResults diff --git a/test/syft/scenarios.json b/test/syft/scenarios.json deleted file mode 100644 index abbb3f091..000000000 --- a/test/syft/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "syft": {} - } - } -} \ No newline at end of file diff --git a/test/syft/test_defaults_debian.sh b/test/syft/test_defaults_debian.sh deleted file mode 100755 index 130bfea18..000000000 --- a/test/syft/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "syft version" syft version - -reportResults diff --git a/test/syntaqx-serve/scenarios.json b/test/syntaqx-serve/scenarios.json deleted file mode 100644 index 45b76b092..000000000 --- a/test/syntaqx-serve/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "syntaqx-serve": {} - } - } -} \ No newline at end of file diff --git a/test/syntaqx-serve/test_defaults_debian.sh b/test/syntaqx-serve/test_defaults_debian.sh deleted file mode 100755 index 74b5f5a5a..000000000 --- a/test/syntaqx-serve/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "serve version" serve version - -reportResults diff --git a/test/tailscale/scenarios.json b/test/tailscale/scenarios.json deleted file mode 100644 index 76aefbf05..000000000 --- a/test/tailscale/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tailscale": {} - } - } -} \ No newline at end of file diff --git a/test/tailscale/test.sh b/test/tailscale/test.sh deleted file mode 100755 index 23e78f403..000000000 --- a/test/tailscale/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tailscale --version" tailscale --version - -reportResults diff --git a/test/talosctl/scenarios.json b/test/talosctl/scenarios.json deleted file mode 100644 index f49126646..000000000 --- a/test/talosctl/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "talosctl": {} - } - }, - "test_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "talosctl": { - "version": "v1.8.0" - } - } - } -} \ No newline at end of file diff --git a/test/talosctl/test.sh b/test/talosctl/test.sh deleted file mode 100644 index f61a3bdbf..000000000 --- a/test/talosctl/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "talosctl is installed" talosctl version --client - -reportResults diff --git a/test/talosctl/test_specific_version.sh b/test/talosctl/test_specific_version.sh deleted file mode 100644 index af227ba9e..000000000 --- a/test/talosctl/test_specific_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "talosctl version is equal to v1.8.0" sh -c "talosctl version --client | grep 'v1.8.0'" - -reportResults \ No newline at end of file diff --git a/test/taxi-sdkman/scenarios.json b/test/taxi-sdkman/scenarios.json deleted file mode 100644 index cf245336b..000000000 --- a/test/taxi-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "taxi-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/taxi-sdkman/test.sh b/test/taxi-sdkman/test.sh deleted file mode 100755 index e963d4cbe..000000000 --- a/test/taxi-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "taxi --help" taxi --help - -reportResults diff --git a/test/tea/scenarios.json b/test/tea/scenarios.json deleted file mode 100644 index 755bcd8a6..000000000 --- a/test/tea/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tea": {} - } - } -} \ No newline at end of file diff --git a/test/tea/test_defaults_debian.sh b/test/tea/test_defaults_debian.sh deleted file mode 100755 index 2f0e8f8b9..000000000 --- a/test/tea/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tea --version" tea --version - -reportResults diff --git a/test/tekton-cli/scenarios.json b/test/tekton-cli/scenarios.json deleted file mode 100644 index 2a4dcd69f..000000000 --- a/test/tekton-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tekton-cli": {} - } - } -} \ No newline at end of file diff --git a/test/tekton-cli/test_defaults_debian.sh b/test/tekton-cli/test_defaults_debian.sh deleted file mode 100755 index f1045709d..000000000 --- a/test/tekton-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tkn version" tkn version - -reportResults diff --git a/test/tempo/scenarios.json b/test/tempo/scenarios.json deleted file mode 100644 index 68c95dec4..000000000 --- a/test/tempo/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tempo": {} - } - } -} \ No newline at end of file diff --git a/test/tempo/test_defaults_debian.sh b/test/tempo/test_defaults_debian.sh deleted file mode 100755 index 8dbb1a9a3..000000000 --- a/test/tempo/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tempo --version && type tempo-cli && type tempo-query" tempo --version && type tempo-cli && type tempo-query - -reportResults diff --git a/test/temporal-cli/scenarios.json b/test/temporal-cli/scenarios.json deleted file mode 100644 index 37486bc7c..000000000 --- a/test/temporal-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "temporal-cli": {} - } - } -} \ No newline at end of file diff --git a/test/temporal-cli/test_defaults_debian.sh b/test/temporal-cli/test_defaults_debian.sh deleted file mode 100755 index f54e37bf1..000000000 --- a/test/temporal-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "temporal --version" temporal --version - -reportResults diff --git a/test/terracognita/scenarios.json b/test/terracognita/scenarios.json deleted file mode 100644 index fdf220e11..000000000 --- a/test/terracognita/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "terracognita": {} - } - } -} \ No newline at end of file diff --git a/test/terracognita/test_defaults_debian.sh b/test/terracognita/test_defaults_debian.sh deleted file mode 100755 index 9bebce407..000000000 --- a/test/terracognita/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "terracognita version" terracognita version - -reportResults diff --git a/test/terraform-asdf/scenarios.json b/test/terraform-asdf/scenarios.json deleted file mode 100644 index 597a19f79..000000000 --- a/test/terraform-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "terraform-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/terraform-asdf/test.sh b/test/terraform-asdf/test.sh deleted file mode 100755 index 1af8fdfa8..000000000 --- a/test/terraform-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "terraform --version" terraform --version - -reportResults diff --git a/test/terraform-docs/scenarios.json b/test/terraform-docs/scenarios.json deleted file mode 100644 index 0c0471fd0..000000000 --- a/test/terraform-docs/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "terraform-docs": {} - } - } -} \ No newline at end of file diff --git a/test/terraform-docs/test_defaults_debian.sh b/test/terraform-docs/test_defaults_debian.sh deleted file mode 100755 index 81e0687d5..000000000 --- a/test/terraform-docs/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "terraform-docs --version" terraform-docs --version - -reportResults diff --git a/test/terraform-ls-asdf/scenarios.json b/test/terraform-ls-asdf/scenarios.json deleted file mode 100644 index d309fd7bc..000000000 --- a/test/terraform-ls-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "terraform-ls-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/terraform-ls-asdf/test.sh b/test/terraform-ls-asdf/test.sh deleted file mode 100755 index d48012895..000000000 --- a/test/terraform-ls-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "terraform-ls --version" terraform-ls --version - -reportResults diff --git a/test/terraformer/scenarios.json b/test/terraformer/scenarios.json deleted file mode 100644 index 1f5421d91..000000000 --- a/test/terraformer/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "terraformer": {} - } - } -} \ No newline at end of file diff --git a/test/terraformer/test_defaults_debian.sh b/test/terraformer/test_defaults_debian.sh deleted file mode 100755 index 8cacd6e4f..000000000 --- a/test/terraformer/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "terraformer version" terraformer version - -reportResults diff --git a/test/terragrunt/scenarios.json b/test/terragrunt/scenarios.json deleted file mode 100644 index 1d1e6cecd..000000000 --- a/test/terragrunt/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "terragrunt": {} - } - } -} \ No newline at end of file diff --git a/test/terragrunt/test_defaults_debian.sh b/test/terragrunt/test_defaults_debian.sh deleted file mode 100755 index 9f58e679b..000000000 --- a/test/terragrunt/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "terragrunt --version" terragrunt --version - -reportResults diff --git a/test/terramate/scenarios.json b/test/terramate/scenarios.json deleted file mode 100644 index a96e62545..000000000 --- a/test/terramate/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "terramate": {} - } - } -} \ No newline at end of file diff --git a/test/terramate/test_defaults_debian.sh b/test/terramate/test_defaults_debian.sh deleted file mode 100755 index e72e9a997..000000000 --- a/test/terramate/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "terramate --version" terramate --version - -reportResults diff --git a/test/terrascan/scenarios.json b/test/terrascan/scenarios.json deleted file mode 100644 index 1a60824a1..000000000 --- a/test/terrascan/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "terrascan": {} - } - } -} \ No newline at end of file diff --git a/test/terrascan/test.sh b/test/terrascan/test.sh deleted file mode 100755 index 0de238ccd..000000000 --- a/test/terrascan/test.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - - -check "terrascan version" terrascan version - -reportResults diff --git a/test/tfc-agent-asdf/scenarios.json b/test/tfc-agent-asdf/scenarios.json deleted file mode 100644 index 45a60274e..000000000 --- a/test/tfc-agent-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tfc-agent-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/tfc-agent-asdf/test.sh b/test/tfc-agent-asdf/test.sh deleted file mode 100755 index a9d89de86..000000000 --- a/test/tfc-agent-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tfc-agent -v" tfc-agent -v - -reportResults diff --git a/test/tfenv-homebrew/scenarios.json b/test/tfenv-homebrew/scenarios.json deleted file mode 100644 index eae5353ec..000000000 --- a/test/tfenv-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tfenv-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/tfenv-homebrew/test.sh b/test/tfenv-homebrew/test.sh deleted file mode 100755 index a5c5d0383..000000000 --- a/test/tfenv-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tfenv --version" tfenv --version - -reportResults diff --git a/test/tfsec/scenarios.json b/test/tfsec/scenarios.json deleted file mode 100644 index 9fbc4a7a9..000000000 --- a/test/tfsec/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tfsec": {} - } - } -} \ No newline at end of file diff --git a/test/tfsec/test_defaults_debian.sh b/test/tfsec/test_defaults_debian.sh deleted file mode 100755 index 0cd60918d..000000000 --- a/test/tfsec/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tfsec --version" tfsec --version - -reportResults diff --git a/test/tfswitch/scenarios.json b/test/tfswitch/scenarios.json deleted file mode 100644 index d33ae986c..000000000 --- a/test/tfswitch/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tfswitch": {} - } - } -} \ No newline at end of file diff --git a/test/tfswitch/test.sh b/test/tfswitch/test.sh deleted file mode 100755 index c5222d5dd..000000000 --- a/test/tfswitch/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tfswitch --version" tfswitch --version - -reportResults diff --git a/test/tldr/scenarios.json b/test/tldr/scenarios.json deleted file mode 100644 index edcd46f29..000000000 --- a/test/tldr/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tldr": {} - } - } -} \ No newline at end of file diff --git a/test/tldr/test.sh b/test/tldr/test.sh deleted file mode 100755 index 6b1600246..000000000 --- a/test/tldr/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tldr --version" tldr --version - -reportResults diff --git a/test/tmate/scenarios.json b/test/tmate/scenarios.json deleted file mode 100644 index 81ffbcb91..000000000 --- a/test/tmate/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tmate": {} - } - } -} \ No newline at end of file diff --git a/test/tmate/test_defaults_debian.sh b/test/tmate/test_defaults_debian.sh deleted file mode 100755 index 1d0891e88..000000000 --- a/test/tmate/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tmate -V" tmate -V - -reportResults diff --git a/test/tmux-apt-get/scenarios.json b/test/tmux-apt-get/scenarios.json deleted file mode 100644 index c0febaf98..000000000 --- a/test/tmux-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tmux-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/tmux-apt-get/test.sh b/test/tmux-apt-get/test.sh deleted file mode 100755 index 1030aef58..000000000 --- a/test/tmux-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tmux -V" tmux -V - -reportResults diff --git a/test/tmux-homebrew/scenarios.json b/test/tmux-homebrew/scenarios.json deleted file mode 100644 index 11e2eb31f..000000000 --- a/test/tmux-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tmux-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/tmux-homebrew/test.sh b/test/tmux-homebrew/test.sh deleted file mode 100755 index 1030aef58..000000000 --- a/test/tmux-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tmux -V" tmux -V - -reportResults diff --git a/test/tomcat-sdkman/scenarios.json b/test/tomcat-sdkman/scenarios.json deleted file mode 100644 index 44f7474e9..000000000 --- a/test/tomcat-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tomcat-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/tomcat-sdkman/test.sh b/test/tomcat-sdkman/test.sh deleted file mode 100755 index fee519b41..000000000 --- a/test/tomcat-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "type tomcat-native.tar.gz" type tomcat-native.tar.gz - -reportResults diff --git a/test/tooljet-cli/scenarios.json b/test/tooljet-cli/scenarios.json deleted file mode 100644 index 2ca2e25bf..000000000 --- a/test/tooljet-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tooljet-cli": {} - } - } -} \ No newline at end of file diff --git a/test/tooljet-cli/test.sh b/test/tooljet-cli/test.sh deleted file mode 100755 index da50f3eb2..000000000 --- a/test/tooljet-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tooljet --version" tooljet --version - -reportResults diff --git a/test/toolkit-sdkman/scenarios.json b/test/toolkit-sdkman/scenarios.json deleted file mode 100644 index a07fe02bd..000000000 --- a/test/toolkit-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu", - "features": { - "toolkit-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/toolkit-sdkman/test.sh b/test/toolkit-sdkman/test.sh deleted file mode 100755 index fc8af70b6..000000000 --- a/test/toolkit-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "toolkit --help" toolkit --help - -reportResults diff --git a/test/tox/scenarios.json b/test/tox/scenarios.json deleted file mode 100644 index 52bf482c5..000000000 --- a/test/tox/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tox": {} - } - } -} \ No newline at end of file diff --git a/test/tox/test.sh b/test/tox/test.sh deleted file mode 100755 index 29c39decf..000000000 --- a/test/tox/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tox --version" tox --version - -reportResults diff --git a/test/tridentctl-asdf/scenarios.json b/test/tridentctl-asdf/scenarios.json deleted file mode 100644 index 72862482f..000000000 --- a/test/tridentctl-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tridentctl-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/tridentctl-asdf/test.sh b/test/tridentctl-asdf/test.sh deleted file mode 100755 index df48f0ddf..000000000 --- a/test/tridentctl-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tridentctl --help" tridentctl --help - -reportResults diff --git a/test/truffle/scenarios.json b/test/truffle/scenarios.json deleted file mode 100644 index e8bb51cd3..000000000 --- a/test/truffle/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "truffle": {} - } - } -} \ No newline at end of file diff --git a/test/truffle/test.sh b/test/truffle/test.sh deleted file mode 100755 index 84793c19e..000000000 --- a/test/truffle/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "truffle --version" truffle --version - -reportResults diff --git a/test/ts-node/scenarios.json b/test/ts-node/scenarios.json deleted file mode 100644 index dd7124402..000000000 --- a/test/ts-node/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ts-node": {} - } - } -} \ No newline at end of file diff --git a/test/ts-node/test.sh b/test/ts-node/test.sh deleted file mode 100755 index 673ffa9ee..000000000 --- a/test/ts-node/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ts-node --version" ts-node --version - -reportResults diff --git a/test/tsx/scenarios.json b/test/tsx/scenarios.json deleted file mode 100644 index 8a4c47c38..000000000 --- a/test/tsx/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tsx": {} - } - } -} \ No newline at end of file diff --git a/test/tsx/test.sh b/test/tsx/test.sh deleted file mode 100755 index aa7fac8e2..000000000 --- a/test/tsx/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tsx --version" tsx --version - -reportResults diff --git a/test/turborepo-npm/scenarios.json b/test/turborepo-npm/scenarios.json deleted file mode 100644 index 1bf910fae..000000000 --- a/test/turborepo-npm/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "turborepo-npm": {} - } - } -} \ No newline at end of file diff --git a/test/turborepo-npm/test.sh b/test/turborepo-npm/test.sh deleted file mode 100755 index e60705260..000000000 --- a/test/turborepo-npm/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "turbo --version" turbo --version - -reportResults diff --git a/test/twine/scenarios.json b/test/twine/scenarios.json deleted file mode 100644 index 127af5327..000000000 --- a/test/twine/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "twine": {} - } - } -} \ No newline at end of file diff --git a/test/twine/test.sh b/test/twine/test.sh deleted file mode 100755 index 2a09e9d65..000000000 --- a/test/twine/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "twine --version" twine --version - -reportResults diff --git a/test/typescript/scenarios.json b/test/typescript/scenarios.json deleted file mode 100644 index 8d3530023..000000000 --- a/test/typescript/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "typescript": {} - } - } -} \ No newline at end of file diff --git a/test/typescript/test.sh b/test/typescript/test.sh deleted file mode 100755 index 3c9a58fc8..000000000 --- a/test/typescript/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "tsc --version" tsc --version - -reportResults diff --git a/test/typst/scenarios.json b/test/typst/scenarios.json deleted file mode 100644 index 39aafc202..000000000 --- a/test/typst/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "typst": {} - } - } -} \ No newline at end of file diff --git a/test/typst/test_defaults_debian.sh b/test/typst/test_defaults_debian.sh deleted file mode 100755 index 78bdb7bdc..000000000 --- a/test/typst/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "typst --version" typst --version - -reportResults diff --git a/test/ufmt/scenarios.json b/test/ufmt/scenarios.json deleted file mode 100644 index 6d4f42185..000000000 --- a/test/ufmt/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ufmt": {} - } - } -} \ No newline at end of file diff --git a/test/ufmt/test.sh b/test/ufmt/test.sh deleted file mode 100755 index 2b6ec90a4..000000000 --- a/test/ufmt/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ufmt --version" ufmt --version - -reportResults diff --git a/test/upx/scenarios.json b/test/upx/scenarios.json deleted file mode 100644 index afc5ecf0d..000000000 --- a/test/upx/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "upx": {} - } - } -} \ No newline at end of file diff --git a/test/upx/test_defaults_debian.sh b/test/upx/test_defaults_debian.sh deleted file mode 100755 index 1977ca40b..000000000 --- a/test/upx/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "upx --version" upx --version - -reportResults diff --git a/test/vault-asdf/scenarios.json b/test/vault-asdf/scenarios.json deleted file mode 100644 index 6165218de..000000000 --- a/test/vault-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vault-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/vault-asdf/test.sh b/test/vault-asdf/test.sh deleted file mode 100755 index 73df32971..000000000 --- a/test/vault-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "vault --version" vault --version - -reportResults diff --git a/test/vercel-cli/scenarios.json b/test/vercel-cli/scenarios.json deleted file mode 100644 index 1f5733896..000000000 --- a/test/vercel-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vercel-cli": {} - } - } -} \ No newline at end of file diff --git a/test/vercel-cli/test.sh b/test/vercel-cli/test.sh deleted file mode 100755 index 928c0bee4..000000000 --- a/test/vercel-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "vercel --version" vercel --version - -reportResults diff --git a/test/vercel-ncc/scenarios.json b/test/vercel-ncc/scenarios.json deleted file mode 100644 index 98b021d36..000000000 --- a/test/vercel-ncc/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vercel-ncc": {} - } - } -} \ No newline at end of file diff --git a/test/vercel-ncc/test.sh b/test/vercel-ncc/test.sh deleted file mode 100755 index f73593ebb..000000000 --- a/test/vercel-ncc/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ncc --version" ncc --version - -reportResults diff --git a/test/vercel-pkg/scenarios.json b/test/vercel-pkg/scenarios.json deleted file mode 100644 index ab0ed47cd..000000000 --- a/test/vercel-pkg/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vercel-pkg": {} - } - } -} \ No newline at end of file diff --git a/test/vercel-pkg/test.sh b/test/vercel-pkg/test.sh deleted file mode 100755 index 47a917768..000000000 --- a/test/vercel-pkg/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pkg --version" pkg --version - -reportResults diff --git a/test/vercel-release/scenarios.json b/test/vercel-release/scenarios.json deleted file mode 100644 index 2f6b6da00..000000000 --- a/test/vercel-release/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vercel-release": {} - } - } -} \ No newline at end of file diff --git a/test/vercel-release/test.sh b/test/vercel-release/test.sh deleted file mode 100755 index 87f4dd1a2..000000000 --- a/test/vercel-release/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "release --version" release --version - -reportResults diff --git a/test/vercel-serve/scenarios.json b/test/vercel-serve/scenarios.json deleted file mode 100644 index 074178bc6..000000000 --- a/test/vercel-serve/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vercel-serve": {} - } - } -} \ No newline at end of file diff --git a/test/vercel-serve/test.sh b/test/vercel-serve/test.sh deleted file mode 100755 index 3e8ae999f..000000000 --- a/test/vercel-serve/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "serve --version" serve --version - -reportResults diff --git a/test/vscode-cli/scenarios.json b/test/vscode-cli/scenarios.json deleted file mode 100644 index 4e6a7aff3..000000000 --- a/test/vscode-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vscode-cli": {} - } - } -} \ No newline at end of file diff --git a/test/vscode-cli/test.sh b/test/vscode-cli/test.sh deleted file mode 100644 index cb235d72e..000000000 --- a/test/vscode-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "vscode-cli" code --version - -reportResults diff --git a/test/vscode-server/scenarios.json b/test/vscode-server/scenarios.json deleted file mode 100644 index 5c693763e..000000000 --- a/test/vscode-server/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vscode-server": {} - } - } -} \ No newline at end of file diff --git a/test/vscode-server/test.sh b/test/vscode-server/test.sh deleted file mode 100644 index b0a99984b..000000000 --- a/test/vscode-server/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "vscode-server" code-server --version - -reportResults diff --git a/test/vtop/scenarios.json b/test/vtop/scenarios.json deleted file mode 100644 index 6d58cdd20..000000000 --- a/test/vtop/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vtop": {} - } - } -} \ No newline at end of file diff --git a/test/vtop/test.sh b/test/vtop/test.sh deleted file mode 100755 index ef4d6d1eb..000000000 --- a/test/vtop/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "vtop --version" vtop --version - -reportResults diff --git a/test/vue-cli/scenarios.json b/test/vue-cli/scenarios.json deleted file mode 100644 index fb39fe556..000000000 --- a/test/vue-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vue-cli": {} - } - } -} \ No newline at end of file diff --git a/test/vue-cli/test.sh b/test/vue-cli/test.sh deleted file mode 100755 index 587a34558..000000000 --- a/test/vue-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "vue --help" vue --help - -reportResults diff --git a/test/vulture/scenarios.json b/test/vulture/scenarios.json deleted file mode 100644 index 30fb4397e..000000000 --- a/test/vulture/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vulture": {} - } - } -} \ No newline at end of file diff --git a/test/vulture/test.sh b/test/vulture/test.sh deleted file mode 100755 index f8d4e1783..000000000 --- a/test/vulture/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "vulture --version" vulture --version - -reportResults diff --git a/test/w3m-apt-get/scenarios.json b/test/w3m-apt-get/scenarios.json deleted file mode 100644 index 34cc16670..000000000 --- a/test/w3m-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "w3m-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/w3m-apt-get/test.sh b/test/w3m-apt-get/test.sh deleted file mode 100755 index caa726f62..000000000 --- a/test/w3m-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "w3m -version" w3m -version - -reportResults diff --git a/test/w3m-homebrew/scenarios.json b/test/w3m-homebrew/scenarios.json deleted file mode 100644 index 9e76e79d3..000000000 --- a/test/w3m-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "w3m-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/w3m-homebrew/test.sh b/test/w3m-homebrew/test.sh deleted file mode 100755 index caa726f62..000000000 --- a/test/w3m-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "w3m -version" w3m -version - -reportResults diff --git a/test/waypoint-asdf/scenarios.json b/test/waypoint-asdf/scenarios.json deleted file mode 100644 index f252d8a78..000000000 --- a/test/waypoint-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "waypoint-asdf": {} - } - } -} \ No newline at end of file diff --git a/test/waypoint-asdf/test.sh b/test/waypoint-asdf/test.sh deleted file mode 100755 index 59edf4579..000000000 --- a/test/waypoint-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "waypoint --version" waypoint --version - -reportResults diff --git a/test/webi-packages/scenarios.json b/test/webi-packages/scenarios.json deleted file mode 100644 index 0db483f8f..000000000 --- a/test/webi-packages/scenarios.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "webi-packages": { - "packages": "node@18,deno" - } - } - }, - "test_alpine": { - "image": "mcr.microsoft.com/devcontainers/base:alpine", - "features": { - "webi-packages": { - "packages": "node@18" - } - } - } -} \ No newline at end of file diff --git a/test/webi-packages/test.sh b/test/webi-packages/test.sh deleted file mode 100755 index e3f1dd062..000000000 --- a/test/webi-packages/test.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "node version is equal to 18.*.*" sh -c "node --version | grep '18.*.*'" - -check "deno --version" deno --version - -reportResults diff --git a/test/webi-packages/test_alpine.sh b/test/webi-packages/test_alpine.sh deleted file mode 100755 index 28665a051..000000000 --- a/test/webi-packages/test_alpine.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -source ~/.config/envman/PATH.env - -check "node version is equal to 18.*.*" sh -c "node --version | grep '18.*.*'" - -reportResults diff --git a/test/webtau-sdkman/scenarios.json b/test/webtau-sdkman/scenarios.json deleted file mode 100644 index 2f61384dd..000000000 --- a/test/webtau-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "webtau-sdkman": {} - } - } -} \ No newline at end of file diff --git a/test/webtau-sdkman/test.sh b/test/webtau-sdkman/test.sh deleted file mode 100755 index 9516ffbc4..000000000 --- a/test/webtau-sdkman/test.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -set -e - -# Copied from /etc/bash.bashrc which is not sourced in non-interactive shell -export SDKMAN_DIR=/usr/local/sdkman -source ${SDKMAN_DIR}/bin/sdkman-init.sh - -source dev-container-features-test-lib - -check "sdk current | grep "webtau"" sdk current | grep "webtau" - -reportResults diff --git a/test/wget-apt-get/scenarios.json b/test/wget-apt-get/scenarios.json deleted file mode 100644 index 362a44079..000000000 --- a/test/wget-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "wget-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/wget-apt-get/test.sh b/test/wget-apt-get/test.sh deleted file mode 100755 index c46391872..000000000 --- a/test/wget-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "wget --version" wget --version - -reportResults diff --git a/test/wget-homebrew/scenarios.json b/test/wget-homebrew/scenarios.json deleted file mode 100644 index c547140c3..000000000 --- a/test/wget-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "wget-homebrew": {} - } - } -} \ No newline at end of file diff --git a/test/wget-homebrew/test.sh b/test/wget-homebrew/test.sh deleted file mode 100755 index c46391872..000000000 --- a/test/wget-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "wget --version" wget --version - -reportResults diff --git a/test/wireguard-apt-get/scenarios.json b/test/wireguard-apt-get/scenarios.json deleted file mode 100644 index 201e90d31..000000000 --- a/test/wireguard-apt-get/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "wireguard-apt-get": {} - } - } -} \ No newline at end of file diff --git a/test/wireguard-apt-get/test.sh b/test/wireguard-apt-get/test.sh deleted file mode 100755 index f6c8daa6f..000000000 --- a/test/wireguard-apt-get/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "wg --version" wg --version - -reportResults diff --git a/test/xmrig/scenarios.json b/test/xmrig/scenarios.json deleted file mode 100644 index 1663cac57..000000000 --- a/test/xmrig/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "xmrig": {} - } - } -} \ No newline at end of file diff --git a/test/xmrig/test_defaults_debian.sh b/test/xmrig/test_defaults_debian.sh deleted file mode 100755 index 69a3ce506..000000000 --- a/test/xmrig/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "xmrig --version" xmrig --version - -reportResults diff --git a/test/xonsh/scenarios.json b/test/xonsh/scenarios.json deleted file mode 100644 index f1e361204..000000000 --- a/test/xonsh/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "xonsh": {} - } - } -} \ No newline at end of file diff --git a/test/xonsh/test.sh b/test/xonsh/test.sh deleted file mode 100755 index a6ce25730..000000000 --- a/test/xonsh/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "xonsh --version" xonsh --version - -reportResults diff --git a/test/yamllint/scenarios.json b/test/yamllint/scenarios.json deleted file mode 100644 index 57eed8a4e..000000000 --- a/test/yamllint/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "yamllint": {} - } - } -} \ No newline at end of file diff --git a/test/yamllint/test.sh b/test/yamllint/test.sh deleted file mode 100755 index bae3fd2ac..000000000 --- a/test/yamllint/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "yamllint --version" yamllint --version - -reportResults diff --git a/test/yapf/scenarios.json b/test/yapf/scenarios.json deleted file mode 100644 index 97a9d2501..000000000 --- a/test/yapf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "yapf": {} - } - } -} \ No newline at end of file diff --git a/test/yapf/test.sh b/test/yapf/test.sh deleted file mode 100755 index 069e6f420..000000000 --- a/test/yapf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "yapf --version" yapf --version - -reportResults diff --git a/test/youtube-dl/scenarios.json b/test/youtube-dl/scenarios.json deleted file mode 100644 index 999f32f4b..000000000 --- a/test/youtube-dl/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "youtube-dl": {} - } - } -} \ No newline at end of file diff --git a/test/youtube-dl/test.sh b/test/youtube-dl/test.sh deleted file mode 100755 index f198ffef5..000000000 --- a/test/youtube-dl/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "youtube-dl --version" youtube-dl --version - -reportResults diff --git a/test/youtubeuploader/scenarios.json b/test/youtubeuploader/scenarios.json deleted file mode 100644 index 09f210409..000000000 --- a/test/youtubeuploader/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "youtubeuploader": {} - } - } -} \ No newline at end of file diff --git a/test/youtubeuploader/test_defaults_debian.sh b/test/youtubeuploader/test_defaults_debian.sh deleted file mode 100755 index c129f5fb3..000000000 --- a/test/youtubeuploader/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "youtubeuploader --version" youtubeuploader --version - -reportResults diff --git a/test/yt-dlp/scenarios.json b/test/yt-dlp/scenarios.json deleted file mode 100644 index b40a7428b..000000000 --- a/test/yt-dlp/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "yt-dlp": {} - } - } -} \ No newline at end of file diff --git a/test/yt-dlp/test.sh b/test/yt-dlp/test.sh deleted file mode 100755 index 7185e2c29..000000000 --- a/test/yt-dlp/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "yt-dlp --version" yt-dlp --version - -reportResults diff --git a/test/zig/scenarios.json b/test/zig/scenarios.json deleted file mode 100644 index 3ca5f6068..000000000 --- a/test/zig/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "zig": {} - } - } -} \ No newline at end of file diff --git a/test/zig/test.sh b/test/zig/test.sh deleted file mode 100755 index 0d76efda0..000000000 --- a/test/zig/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -check "zig version" zig version - -reportResults diff --git a/test/zsh-plugins/install_plugins.sh b/test/zsh-plugins/install_plugins.sh deleted file mode 100755 index a8d8b3d59..000000000 --- a/test/zsh-plugins/install_plugins.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -# Test ZSH npm plugin -check "npm plugin active" zsh -i -c "echo \$plugins" | grep "npm" -check "npm aliases available" zsh -i -c "which npmR" | grep "npm run" - -# Test Oh-My-ZSH dogesay plugin -check "dogesay plugin active" zsh -i -c "echo \$plugins" | grep "dogesay" -check "dogesay custom plugin exists" zsh -i -c "ls ~/.oh-my-zsh/custom/plugins/dogesay" - -reportResults diff --git a/test/zsh-plugins/install_plugins_on_plain_ubuntu.sh b/test/zsh-plugins/install_plugins_on_plain_ubuntu.sh deleted file mode 100755 index a8d8b3d59..000000000 --- a/test/zsh-plugins/install_plugins_on_plain_ubuntu.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -# Test ZSH npm plugin -check "npm plugin active" zsh -i -c "echo \$plugins" | grep "npm" -check "npm aliases available" zsh -i -c "which npmR" | grep "npm run" - -# Test Oh-My-ZSH dogesay plugin -check "dogesay plugin active" zsh -i -c "echo \$plugins" | grep "dogesay" -check "dogesay custom plugin exists" zsh -i -c "ls ~/.oh-my-zsh/custom/plugins/dogesay" - -reportResults diff --git a/test/zsh-plugins/multiple-omz-plugins.sh b/test/zsh-plugins/multiple-omz-plugins.sh deleted file mode 100755 index 46aa4fbdb..000000000 --- a/test/zsh-plugins/multiple-omz-plugins.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -set -e - -source dev-container-features-test-lib - -# Test Oh-My-ZSH F-Sy-H plugin -check "F-Sy-H custom plugin exists" zsh -i -c "ls ~/.oh-my-zsh/custom/plugins/F-Sy-H" -# Test Oh-My-ZSH zsh-autocomplete plugin -check "zsh-autocomplete custom plugin exists" zsh -i -c "ls ~/.oh-my-zsh/custom/plugins/zsh-autocomplete" - -reportResults diff --git a/test/zsh-plugins/scenarios.json b/test/zsh-plugins/scenarios.json deleted file mode 100644 index 5af493ed2..000000000 --- a/test/zsh-plugins/scenarios.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - - "install_plugins_on_plain_ubuntu": { - "image": "ubuntu:22.04", - "features": { - "zsh-plugins": { - "plugins": "npm dogesay", - "omzPlugins": "https://github.com/txstc55/dogesay" - } - } - }, - "install_plugins": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "zsh-plugins": { - "plugins": "npm dogesay", - "omzPlugins": "https://github.com/txstc55/dogesay" - } - } - }, - "multiple-omz-plugins": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "zsh-plugins": { - "plugins": "npm git node F-Sy-H zsh-autocomplete", - "omzPlugins": "https://github.com/z-shell/F-Sy-H https://github.com/marlonrichert/zsh-autocomplete" - } - } - } -} \ No newline at end of file From d80676cacdc465da7b5b394d1efb5a9a9ff5b270 Mon Sep 17 00:00:00 2001 From: kvokka Date: Sun, 30 Mar 2025 05:59:55 +0700 Subject: [PATCH 2/8] Add lumen feature --- src/lumen/README.md | 24 ++++ src/lumen/devcontainer-feature.json | 19 +++ src/lumen/install.sh | 26 +++++ src/lumen/library_scripts.sh | 173 ++++++++++++++++++++++++++++ test/lumen/scenarios.json | 16 +++ test/lumen/test_debian.sh | 9 ++ test/lumen/test_specific_version.sh | 9 ++ 7 files changed, 276 insertions(+) create mode 100644 src/lumen/README.md create mode 100644 src/lumen/devcontainer-feature.json create mode 100755 src/lumen/install.sh create mode 100644 src/lumen/library_scripts.sh create mode 100644 test/lumen/scenarios.json create mode 100755 test/lumen/test_debian.sh create mode 100755 test/lumen/test_specific_version.sh diff --git a/src/lumen/README.md b/src/lumen/README.md new file mode 100644 index 000000000..f6710f1e4 --- /dev/null +++ b/src/lumen/README.md @@ -0,0 +1,24 @@ + +# lumen (via cargo) + +Lumen is a command-line tool that uses AI to streamline your git workflow - +from generating commit messages to explaining complex changes, all without +requiring an API key. + +## Example Usage + +```json +"features": { + "ghcr.io/kvokka/features/lumen:1": {} +} +``` + +## Options + +| Options Id | Description | Type | Default Value | +|-----|-----|-----|-----| +| version | Select the version to install. | string | latest | + +--- + +_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/lumen/devcontainer-feature.json b/src/lumen/devcontainer-feature.json new file mode 100644 index 000000000..1fa230a51 --- /dev/null +++ b/src/lumen/devcontainer-feature.json @@ -0,0 +1,19 @@ +{ + "id": "lumen", + "version": "1.0.0", + "name": "Lumen CLI Tool", + "description": "A CLI tool that uses AI to streamline your git workflow (https://github.com/jnsahaj/lumen).", + "options": { + "version": { + "type": "string", + "description": "The version of Lumen to install (e.g., '1.0.0' or 'latest')", + "default": "latest" + } + }, + "dependsOn": { + "ghcr.io/devcontainers/features/rust:1": {} + }, + "containerEnv": { + "PATH": "/usr/local/cargo/bin:${PATH}" + } +} \ No newline at end of file diff --git a/src/lumen/install.sh b/src/lumen/install.sh new file mode 100755 index 000000000..135009b9b --- /dev/null +++ b/src/lumen/install.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +set -e + +source ./library_scripts.sh + +# nanolayer is a cli utility which keeps container layers as small as possible +# source code: https://github.com/devcontainers-extra/nanolayer +# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, +# and if missing - will download a temporary copy that automatically get deleted at the end +# of the script +ensure_nanolayer nanolayer_location "v0.5.6" + +echo $nanolayer_location + +$nanolayer_location install apt build-essential +$nanolayer_location install apt pkg-config +$nanolayer_location install apt libssl-dev + +LUMEN_VERSION=${VERSION:-latest} + +if [ "$LUMEN_VERSION" = "latest" ]; then + cargo install lumen +else + cargo install lumen --version "$LUMEN_VERSION" +fi diff --git a/src/lumen/library_scripts.sh b/src/lumen/library_scripts.sh new file mode 100644 index 000000000..f6d0760d7 --- /dev/null +++ b/src/lumen/library_scripts.sh @@ -0,0 +1,173 @@ +#!/usr/bin/env bash + +clean_download() { + # The purpose of this function is to download a file with minimal impact on container layer size + # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a + # temporary manner, and making sure to + # 1. uninstall the downloader at the return of the function + # 2. revert back any changes to the package installer database/cache (for example apt-get lists) + # The above steps will minimize the leftovers being created while installing the downloader + # Supported distros: + # debian/ubuntu/alpine + + url=$1 + output_location=$2 + tempdir=$(mktemp -d) + downloader_installed="" + + function _apt_get_install() { + tempdir=$1 + + # copy current state of apt list - in order to revert back later (minimize contianer layer size) + cp -p -R /var/lib/apt/lists $tempdir + apt-get update -y + apt-get -y install --no-install-recommends wget ca-certificates + } + + function _apt_get_cleanup() { + tempdir=$1 + + echo "removing wget" + apt-get -y purge wget --auto-remove + + echo "revert back apt lists" + rm -rf /var/lib/apt/lists/* + rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists + } + + function _apk_install() { + tempdir=$1 + # copy current state of apk cache - in order to revert back later (minimize contianer layer size) + cp -p -R /var/cache/apk $tempdir + + apk add --no-cache wget + } + + function _apk_cleanup() { + tempdir=$1 + + echo "removing wget" + apk del wget + } + # try to use either wget or curl if one of them already installer + if type curl >/dev/null 2>&1; then + downloader=curl + elif type wget >/dev/null 2>&1; then + downloader=wget + else + downloader="" + fi + + # in case none of them is installed, install wget temporarly + if [ -z $downloader ]; then + if [ -x "/usr/bin/apt-get" ]; then + _apt_get_install $tempdir + elif [ -x "/sbin/apk" ]; then + _apk_install $tempdir + else + echo "distro not supported" + exit 1 + fi + downloader="wget" + downloader_installed="true" + fi + + if [ $downloader = "wget" ]; then + wget -q $url -O $output_location + else + curl -sfL $url -o $output_location + fi + + # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because + # alpine lack bash, and RETURN is not a valid signal under sh shell + if ! [ -z $downloader_installed ]; then + if [ -x "/usr/bin/apt-get" ]; then + _apt_get_cleanup $tempdir + elif [ -x "/sbin/apk" ]; then + _apk_cleanup $tempdir + else + echo "distro not supported" + exit 1 + fi + fi + +} + +ensure_nanolayer() { + # Ensure existance of the nanolayer cli program + local variable_name=$1 + + local required_version=$2 + # normalize version + if ! [[ $required_version == v* ]]; then + required_version=v$required_version + fi + + local nanolayer_location="" + + # If possible - try to use an already installed nanolayer + if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then + if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then + if type nanolayer >/dev/null 2>&1; then + echo "Found a pre-existing nanolayer in PATH" + nanolayer_location=nanolayer + fi + elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ]; then + nanolayer_location=${NANOLAYER_CLI_LOCATION} + echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" + fi + + # make sure its of the required version + if ! [[ -z "${nanolayer_location}" ]]; then + local current_version + current_version=$($nanolayer_location --version) + if ! [[ $current_version == v* ]]; then + current_version=v$current_version + fi + + if ! [ $current_version == $required_version ]; then + echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" + nanolayer_location="" + fi + fi + + fi + + # If not previuse installation found, download it temporarly and delete at the end of the script + if [[ -z "${nanolayer_location}" ]]; then + + if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then + tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) + + clean_up() { + ARG=$? + rm -rf $tmp_dir + exit $ARG + } + trap clean_up EXIT + + if [ -x "/sbin/apk" ]; then + clib_type=musl + else + clib_type=gnu + fi + + tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz + + # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed + clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename + + tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" + chmod a+x $tmp_dir/nanolayer + nanolayer_location=$tmp_dir/nanolayer + + else + echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" + exit 1 + fi + fi + + # Expose outside the resolved location + declare -g ${variable_name}=$nanolayer_location + +} diff --git a/test/lumen/scenarios.json b/test/lumen/scenarios.json new file mode 100644 index 000000000..b907f9367 --- /dev/null +++ b/test/lumen/scenarios.json @@ -0,0 +1,16 @@ +{ + "test_debian": { + "image": "mcr.microsoft.com/devcontainers/base:debian", + "features": { + "lumen": {} + } + }, + "test_specific_version": { + "image": "mcr.microsoft.com/devcontainers/base:debian", + "features": { + "lumen": { + "version": "1.8.0" + } + } + } +} \ No newline at end of file diff --git a/test/lumen/test_debian.sh b/test/lumen/test_debian.sh new file mode 100755 index 000000000..697fe8bb6 --- /dev/null +++ b/test/lumen/test_debian.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e + +source dev-container-features-test-lib + +check "lumen is installed" lumen --version + +reportResults diff --git a/test/lumen/test_specific_version.sh b/test/lumen/test_specific_version.sh new file mode 100755 index 000000000..e98ea0dfa --- /dev/null +++ b/test/lumen/test_specific_version.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e + +source dev-container-features-test-lib + +check "lumen version is equal to 1.8.0" sh -c "lumen --version | grep '1.8.0'" + +reportResults From 51c65323d1870971073ca4853bbbe0ecc2571812 Mon Sep 17 00:00:00 2001 From: kvokka Date: Sun, 30 Mar 2025 06:31:22 +0700 Subject: [PATCH 3/8] Remove archive folder --- archive/.keep | 0 archive/src/age-keygen/README.md | 24 --- .../src/age-keygen/devcontainer-feature.json | 20 -- archive/src/age-keygen/install.sh | 23 --- archive/src/age-keygen/library_scripts.sh | 172 ----------------- archive/src/airplane-cli/README.md | 24 --- .../airplane-cli/devcontainer-feature.json | 20 -- archive/src/airplane-cli/install.sh | 23 --- archive/src/airplane-cli/library_scripts.sh | 172 ----------------- archive/src/bigcommerce-stencil-cli/README.md | 24 --- .../devcontainer-feature.json | 21 -- .../src/bigcommerce-stencil-cli/install.sh | 23 --- .../library_scripts.sh | 172 ----------------- archive/src/bitwarden-cli/README.md | 24 --- .../bitwarden-cli/devcontainer-feature.json | 20 -- archive/src/bitwarden-cli/install.sh | 23 --- archive/src/bitwarden-cli/library_scripts.sh | 172 ----------------- archive/src/boundary-asdf/README.md | 24 --- .../boundary-asdf/devcontainer-feature.json | 20 -- archive/src/boundary-asdf/install.sh | 24 --- archive/src/boundary-asdf/library_scripts.sh | 179 ------------------ archive/src/btm/README.md | 24 --- archive/src/btm/devcontainer-feature.json | 20 -- archive/src/btm/install.sh | 23 --- archive/src/btm/library_scripts.sh | 172 ----------------- archive/src/cert-manager/README.md | 24 --- .../cert-manager/devcontainer-feature.json | 20 -- archive/src/cert-manager/install.sh | 23 --- archive/src/cert-manager/library_scripts.sh | 172 ----------------- archive/src/cmctl-asdf/README.md | 24 --- .../src/cmctl-asdf/devcontainer-feature.json | 20 -- archive/src/cmctl-asdf/install.sh | 24 --- archive/src/cmctl-asdf/library_scripts.sh | 179 ------------------ archive/src/codenotary-cas/README.md | 24 --- .../codenotary-cas/devcontainer-feature.json | 20 -- archive/src/codenotary-cas/install.sh | 23 --- archive/src/codenotary-cas/library_scripts.sh | 172 ----------------- archive/src/croc/README.md | 24 --- archive/src/croc/devcontainer-feature.json | 20 -- archive/src/croc/install.sh | 23 --- archive/src/croc/library_scripts.sh | 172 ----------------- archive/src/cue-asdf/README.md | 24 --- .../src/cue-asdf/devcontainer-feature.json | 20 -- archive/src/cue-asdf/install.sh | 24 --- archive/src/cue-asdf/library_scripts.sh | 179 ------------------ archive/src/edge-impulse-cli/README.md | 24 --- .../devcontainer-feature.json | 21 -- archive/src/edge-impulse-cli/install.sh | 23 --- .../src/edge-impulse-cli/library_scripts.sh | 172 ----------------- archive/src/elixir-asdf/README.md | 25 --- .../src/elixir-asdf/devcontainer-feature.json | 29 --- archive/src/elixir-asdf/install.sh | 39 ---- archive/src/elixir-asdf/library_scripts.sh | 172 ----------------- archive/src/erlang-asdf/README.md | 24 --- .../src/erlang-asdf/devcontainer-feature.json | 21 -- archive/src/erlang-asdf/install.sh | 31 --- archive/src/erlang-asdf/library_scripts.sh | 172 ----------------- archive/src/ffmpeg-homebrew/README.md | 24 --- .../ffmpeg-homebrew/devcontainer-feature.json | 20 -- archive/src/ffmpeg-homebrew/install.sh | 23 --- .../src/ffmpeg-homebrew/library_scripts.sh | 179 ------------------ .../devcontainer-feature.json | 38 ---- archive/src/homebrew-package/install.sh | 116 ------------ .../src/homebrew-package/library_scripts.sh | 179 ------------------ archive/src/ko/README.md | 24 --- archive/src/ko/devcontainer-feature.json | 20 -- archive/src/ko/install.sh | 23 --- archive/src/ko/library_scripts.sh | 172 ----------------- archive/src/kubescape/README.md | 24 --- .../src/kubescape/devcontainer-feature.json | 20 -- archive/src/kubescape/install.sh | 23 --- archive/src/kubescape/library_scripts.sh | 172 ----------------- archive/src/mage/README.md | 24 --- archive/src/mage/devcontainer-feature.json | 20 -- archive/src/mage/install.sh | 23 --- archive/src/mage/library_scripts.sh | 172 ----------------- archive/src/meson-asdf/README.md | 24 --- .../src/meson-asdf/devcontainer-feature.json | 20 -- archive/src/meson-asdf/install.sh | 24 --- archive/src/meson-asdf/library_scripts.sh | 179 ------------------ archive/src/meteor-cli/README.md | 24 --- .../src/meteor-cli/devcontainer-feature.json | 21 -- archive/src/meteor-cli/install.sh | 23 --- archive/src/meteor-cli/library_scripts.sh | 172 ----------------- archive/src/mlton-asdf/README.md | 24 --- .../src/mlton-asdf/devcontainer-feature.json | 20 -- archive/src/mlton-asdf/install.sh | 24 --- archive/src/mlton-asdf/library_scripts.sh | 179 ------------------ archive/src/nushell/README.md | 24 --- archive/src/nushell/devcontainer-feature.json | 20 -- archive/src/nushell/install.sh | 23 --- archive/src/nushell/library_scripts.sh | 172 ----------------- archive/src/ory-keto/README.md | 24 --- .../src/ory-keto/devcontainer-feature.json | 20 -- archive/src/ory-keto/install.sh | 23 --- archive/src/ory-keto/library_scripts.sh | 172 ----------------- archive/src/pip-audit/README.md | 24 --- .../src/pip-audit/devcontainer-feature.json | 21 -- archive/src/pip-audit/install.sh | 23 --- archive/src/pip-audit/library_scripts.sh | 172 ----------------- archive/src/porter/README.md | 34 ---- archive/src/porter/devcontainer-feature.json | 101 ---------- archive/src/porter/install.sh | 115 ----------- archive/src/porter/library_scripts.sh | 179 ------------------ archive/src/postgres-asdf/README.md | 24 --- .../postgres-asdf/devcontainer-feature.json | 20 -- archive/src/postgres-asdf/install.sh | 32 ---- archive/src/postgres-asdf/library_scripts.sh | 179 ------------------ archive/src/rabbitmq-asdf/README.md | 25 --- .../rabbitmq-asdf/devcontainer-feature.json | 28 --- archive/src/rabbitmq-asdf/install.sh | 48 ----- archive/src/rabbitmq-asdf/library_scripts.sh | 179 ------------------ archive/src/scala-asdf/README.md | 24 --- .../src/scala-asdf/devcontainer-feature.json | 21 -- archive/src/scala-asdf/install.sh | 32 ---- archive/src/scala-asdf/library_scripts.sh | 179 ------------------ archive/src/serverless/README.md | 24 --- .../src/serverless/devcontainer-feature.json | 21 -- archive/src/serverless/install.sh | 23 --- archive/src/serverless/library_scripts.sh | 172 ----------------- archive/src/sqlfmt/README.md | 24 --- archive/src/sqlfmt/devcontainer-feature.json | 21 -- archive/src/sqlfmt/install.sh | 23 --- archive/src/sqlfmt/library_scripts.sh | 172 ----------------- archive/src/syncthing/README.md | 24 --- .../src/syncthing/devcontainer-feature.json | 20 -- archive/src/syncthing/install.sh | 23 --- archive/src/syncthing/library_scripts.sh | 172 ----------------- archive/src/tfcdk-cli/README.md | 24 --- .../src/tfcdk-cli/devcontainer-feature.json | 21 -- archive/src/tfcdk-cli/install.sh | 23 --- archive/src/tfcdk-cli/library_scripts.sh | 172 ----------------- archive/src/trello-cli/README.md | 24 --- .../src/trello-cli/devcontainer-feature.json | 21 -- archive/src/trello-cli/install.sh | 23 --- archive/src/trello-cli/library_scripts.sh | 172 ----------------- archive/src/trivy/README.md | 24 --- archive/src/trivy/devcontainer-feature.json | 20 -- archive/src/trivy/install.sh | 23 --- archive/src/trivy/library_scripts.sh | 172 ----------------- archive/src/vertx-sdkman/README.md | 26 --- .../vertx-sdkman/devcontainer-feature.json | 44 ----- archive/src/vertx-sdkman/install.sh | 44 ----- archive/src/vertx-sdkman/library_scripts.sh | 179 ------------------ archive/src/visualvm-sdkman/README.md | 28 --- .../visualvm-sdkman/devcontainer-feature.json | 44 ----- archive/src/visualvm-sdkman/install.sh | 44 ----- .../src/visualvm-sdkman/library_scripts.sh | 179 ------------------ archive/src/volta/README.md | 24 --- archive/src/volta/devcontainer-feature.json | 20 -- archive/src/volta/install.sh | 23 --- archive/src/volta/library_scripts.sh | 172 ----------------- archive/src/xplr/README.md | 24 --- archive/src/xplr/devcontainer-feature.json | 20 -- archive/src/xplr/install.sh | 23 --- archive/src/xplr/library_scripts.sh | 172 ----------------- archive/test/age-keygen/scenarios.json | 8 - .../test/age-keygen/test_defaults_debian.sh | 9 - archive/test/airplane-cli/scenarios.json | 8 - .../test/airplane-cli/test_defaults_debian.sh | 9 - .../bigcommerce-stencil-cli/scenarios.json | 8 - archive/test/bigcommerce-stencil-cli/test.sh | 9 - archive/test/bitwarden-cli/scenarios.json | 8 - .../bitwarden-cli/test_defaults_debian.sh | 9 - archive/test/boundary-asdf/scenarios.json | 8 - archive/test/boundary-asdf/test.sh | 9 - archive/test/btm/scenarios.json | 8 - archive/test/btm/test_defaults_debian.sh | 9 - archive/test/cert-manager/scenarios.json | 8 - .../test/cert-manager/test_defaults_debian.sh | 9 - archive/test/cmctl-asdf/scenarios.json | 8 - archive/test/cmctl-asdf/test.sh | 9 - archive/test/codenotary-cas/scenarios.json | 8 - .../codenotary-cas/test_defaults_debian.sh | 9 - archive/test/croc/scenarios.json | 8 - archive/test/croc/test_defaults_debian.sh | 9 - archive/test/cue-asdf/scenarios.json | 8 - archive/test/cue-asdf/test.sh | 9 - archive/test/edge-impulse-cli/scenarios.json | 8 - archive/test/edge-impulse-cli/test.sh | 9 - archive/test/elixir-asdf/scenarios.json | 26 --- archive/test/elixir-asdf/test_debian_11.sh | 9 - archive/test/elixir-asdf/test_debian_12.sh | 9 - archive/test/elixir-asdf/test_ubuntu_2004.sh | 9 - archive/test/elixir-asdf/test_ubuntu_2204.sh | 9 - archive/test/erlang-asdf/scenarios.json | 14 -- archive/test/erlang-asdf/test.sh | 9 - .../test/erlang-asdf/test_debian_bullseye.sh | 9 - archive/test/erlang-asdf/test_ubuntu.sh | 9 - archive/test/ffmpeg-homebrew/scenarios.json | 8 - archive/test/ffmpeg-homebrew/test.sh | 9 - archive/test/ko/scenarios.json | 8 - archive/test/ko/test_defaults_debian.sh | 9 - archive/test/kubescape/scenarios.json | 8 - .../test/kubescape/test_defaults_debian.sh | 9 - archive/test/mage/scenarios.json | 8 - archive/test/mage/test_defaults_debian.sh | 9 - archive/test/meson-asdf/scenarios.json | 8 - archive/test/meson-asdf/test.sh | 9 - archive/test/meteor-cli/scenarios.json | 8 - archive/test/meteor-cli/test.sh | 9 - archive/test/mlton-asdf/scenarios.json | 8 - archive/test/mlton-asdf/test.sh | 9 - archive/test/nushell/scenarios.json | 8 - archive/test/nushell/test_defaults_debian.sh | 9 - archive/test/ory-keto/scenarios.json | 8 - archive/test/ory-keto/test_defaults_debian.sh | 9 - archive/test/pip-audit/scenarios.json | 8 - archive/test/pip-audit/test_defaults.sh | 9 - archive/test/porter/install_mixins.sh | 24 --- archive/test/porter/scenarios.json | 21 -- archive/test/porter/test.sh | 14 -- archive/test/postgres-asdf/scenarios.json | 8 - archive/test/postgres-asdf/test.sh | 9 - archive/test/rabbitmq-asdf/scenarios.json | 8 - archive/test/rabbitmq-asdf/test.sh | 9 - archive/test/scala-asdf/scenarios.json | 8 - archive/test/scala-asdf/test.sh | 9 - archive/test/serverless/scenarios.json | 8 - archive/test/serverless/test.sh | 9 - archive/test/sqlfmt/scenarios.json | 8 - archive/test/sqlfmt/test.sh | 9 - archive/test/syncthing/scenarios.json | 8 - .../test/syncthing/test_defaults_debian.sh | 9 - archive/test/tfcdk-cli/scenarios.json | 16 -- archive/test/tfcdk-cli/test.sh | 9 - .../test/tfcdk-cli/test_specific_version.sh | 9 - archive/test/trello-cli/scenarios.json | 8 - archive/test/trello-cli/test.sh | 9 - archive/test/trivy/scenarios.json | 8 - archive/test/trivy/test_defaults_debian.sh | 9 - archive/test/vertx-sdkman/scenarios.json | 8 - archive/test/vertx-sdkman/test.sh | 9 - archive/test/visualvm-sdkman/scenarios.json | 8 - archive/test/visualvm-sdkman/test.sh | 9 - archive/test/volta/scenarios.json | 8 - archive/test/volta/test_defaults_debian.sh | 9 - archive/test/xplr/scenarios.json | 8 - archive/test/xplr/test_defaults_debian.sh | 9 - 239 files changed, 10653 deletions(-) create mode 100644 archive/.keep delete mode 100644 archive/src/age-keygen/README.md delete mode 100644 archive/src/age-keygen/devcontainer-feature.json delete mode 100755 archive/src/age-keygen/install.sh delete mode 100644 archive/src/age-keygen/library_scripts.sh delete mode 100644 archive/src/airplane-cli/README.md delete mode 100644 archive/src/airplane-cli/devcontainer-feature.json delete mode 100755 archive/src/airplane-cli/install.sh delete mode 100644 archive/src/airplane-cli/library_scripts.sh delete mode 100644 archive/src/bigcommerce-stencil-cli/README.md delete mode 100644 archive/src/bigcommerce-stencil-cli/devcontainer-feature.json delete mode 100755 archive/src/bigcommerce-stencil-cli/install.sh delete mode 100644 archive/src/bigcommerce-stencil-cli/library_scripts.sh delete mode 100644 archive/src/bitwarden-cli/README.md delete mode 100644 archive/src/bitwarden-cli/devcontainer-feature.json delete mode 100755 archive/src/bitwarden-cli/install.sh delete mode 100644 archive/src/bitwarden-cli/library_scripts.sh delete mode 100644 archive/src/boundary-asdf/README.md delete mode 100644 archive/src/boundary-asdf/devcontainer-feature.json delete mode 100755 archive/src/boundary-asdf/install.sh delete mode 100644 archive/src/boundary-asdf/library_scripts.sh delete mode 100644 archive/src/btm/README.md delete mode 100644 archive/src/btm/devcontainer-feature.json delete mode 100755 archive/src/btm/install.sh delete mode 100644 archive/src/btm/library_scripts.sh delete mode 100644 archive/src/cert-manager/README.md delete mode 100644 archive/src/cert-manager/devcontainer-feature.json delete mode 100755 archive/src/cert-manager/install.sh delete mode 100644 archive/src/cert-manager/library_scripts.sh delete mode 100644 archive/src/cmctl-asdf/README.md delete mode 100644 archive/src/cmctl-asdf/devcontainer-feature.json delete mode 100755 archive/src/cmctl-asdf/install.sh delete mode 100644 archive/src/cmctl-asdf/library_scripts.sh delete mode 100644 archive/src/codenotary-cas/README.md delete mode 100644 archive/src/codenotary-cas/devcontainer-feature.json delete mode 100755 archive/src/codenotary-cas/install.sh delete mode 100644 archive/src/codenotary-cas/library_scripts.sh delete mode 100644 archive/src/croc/README.md delete mode 100644 archive/src/croc/devcontainer-feature.json delete mode 100755 archive/src/croc/install.sh delete mode 100644 archive/src/croc/library_scripts.sh delete mode 100644 archive/src/cue-asdf/README.md delete mode 100644 archive/src/cue-asdf/devcontainer-feature.json delete mode 100755 archive/src/cue-asdf/install.sh delete mode 100644 archive/src/cue-asdf/library_scripts.sh delete mode 100644 archive/src/edge-impulse-cli/README.md delete mode 100644 archive/src/edge-impulse-cli/devcontainer-feature.json delete mode 100755 archive/src/edge-impulse-cli/install.sh delete mode 100644 archive/src/edge-impulse-cli/library_scripts.sh delete mode 100644 archive/src/elixir-asdf/README.md delete mode 100644 archive/src/elixir-asdf/devcontainer-feature.json delete mode 100755 archive/src/elixir-asdf/install.sh delete mode 100644 archive/src/elixir-asdf/library_scripts.sh delete mode 100644 archive/src/erlang-asdf/README.md delete mode 100644 archive/src/erlang-asdf/devcontainer-feature.json delete mode 100755 archive/src/erlang-asdf/install.sh delete mode 100644 archive/src/erlang-asdf/library_scripts.sh delete mode 100644 archive/src/ffmpeg-homebrew/README.md delete mode 100644 archive/src/ffmpeg-homebrew/devcontainer-feature.json delete mode 100755 archive/src/ffmpeg-homebrew/install.sh delete mode 100644 archive/src/ffmpeg-homebrew/library_scripts.sh delete mode 100644 archive/src/homebrew-package/devcontainer-feature.json delete mode 100755 archive/src/homebrew-package/install.sh delete mode 100644 archive/src/homebrew-package/library_scripts.sh delete mode 100644 archive/src/ko/README.md delete mode 100644 archive/src/ko/devcontainer-feature.json delete mode 100755 archive/src/ko/install.sh delete mode 100644 archive/src/ko/library_scripts.sh delete mode 100644 archive/src/kubescape/README.md delete mode 100644 archive/src/kubescape/devcontainer-feature.json delete mode 100755 archive/src/kubescape/install.sh delete mode 100644 archive/src/kubescape/library_scripts.sh delete mode 100644 archive/src/mage/README.md delete mode 100644 archive/src/mage/devcontainer-feature.json delete mode 100755 archive/src/mage/install.sh delete mode 100644 archive/src/mage/library_scripts.sh delete mode 100644 archive/src/meson-asdf/README.md delete mode 100644 archive/src/meson-asdf/devcontainer-feature.json delete mode 100755 archive/src/meson-asdf/install.sh delete mode 100644 archive/src/meson-asdf/library_scripts.sh delete mode 100644 archive/src/meteor-cli/README.md delete mode 100644 archive/src/meteor-cli/devcontainer-feature.json delete mode 100755 archive/src/meteor-cli/install.sh delete mode 100644 archive/src/meteor-cli/library_scripts.sh delete mode 100644 archive/src/mlton-asdf/README.md delete mode 100644 archive/src/mlton-asdf/devcontainer-feature.json delete mode 100755 archive/src/mlton-asdf/install.sh delete mode 100644 archive/src/mlton-asdf/library_scripts.sh delete mode 100644 archive/src/nushell/README.md delete mode 100644 archive/src/nushell/devcontainer-feature.json delete mode 100755 archive/src/nushell/install.sh delete mode 100644 archive/src/nushell/library_scripts.sh delete mode 100644 archive/src/ory-keto/README.md delete mode 100644 archive/src/ory-keto/devcontainer-feature.json delete mode 100755 archive/src/ory-keto/install.sh delete mode 100644 archive/src/ory-keto/library_scripts.sh delete mode 100644 archive/src/pip-audit/README.md delete mode 100644 archive/src/pip-audit/devcontainer-feature.json delete mode 100755 archive/src/pip-audit/install.sh delete mode 100644 archive/src/pip-audit/library_scripts.sh delete mode 100644 archive/src/porter/README.md delete mode 100644 archive/src/porter/devcontainer-feature.json delete mode 100755 archive/src/porter/install.sh delete mode 100644 archive/src/porter/library_scripts.sh delete mode 100644 archive/src/postgres-asdf/README.md delete mode 100644 archive/src/postgres-asdf/devcontainer-feature.json delete mode 100755 archive/src/postgres-asdf/install.sh delete mode 100644 archive/src/postgres-asdf/library_scripts.sh delete mode 100644 archive/src/rabbitmq-asdf/README.md delete mode 100644 archive/src/rabbitmq-asdf/devcontainer-feature.json delete mode 100755 archive/src/rabbitmq-asdf/install.sh delete mode 100644 archive/src/rabbitmq-asdf/library_scripts.sh delete mode 100644 archive/src/scala-asdf/README.md delete mode 100644 archive/src/scala-asdf/devcontainer-feature.json delete mode 100755 archive/src/scala-asdf/install.sh delete mode 100644 archive/src/scala-asdf/library_scripts.sh delete mode 100644 archive/src/serverless/README.md delete mode 100644 archive/src/serverless/devcontainer-feature.json delete mode 100755 archive/src/serverless/install.sh delete mode 100644 archive/src/serverless/library_scripts.sh delete mode 100644 archive/src/sqlfmt/README.md delete mode 100644 archive/src/sqlfmt/devcontainer-feature.json delete mode 100755 archive/src/sqlfmt/install.sh delete mode 100644 archive/src/sqlfmt/library_scripts.sh delete mode 100644 archive/src/syncthing/README.md delete mode 100644 archive/src/syncthing/devcontainer-feature.json delete mode 100755 archive/src/syncthing/install.sh delete mode 100644 archive/src/syncthing/library_scripts.sh delete mode 100644 archive/src/tfcdk-cli/README.md delete mode 100644 archive/src/tfcdk-cli/devcontainer-feature.json delete mode 100755 archive/src/tfcdk-cli/install.sh delete mode 100644 archive/src/tfcdk-cli/library_scripts.sh delete mode 100644 archive/src/trello-cli/README.md delete mode 100644 archive/src/trello-cli/devcontainer-feature.json delete mode 100755 archive/src/trello-cli/install.sh delete mode 100644 archive/src/trello-cli/library_scripts.sh delete mode 100644 archive/src/trivy/README.md delete mode 100644 archive/src/trivy/devcontainer-feature.json delete mode 100755 archive/src/trivy/install.sh delete mode 100644 archive/src/trivy/library_scripts.sh delete mode 100644 archive/src/vertx-sdkman/README.md delete mode 100644 archive/src/vertx-sdkman/devcontainer-feature.json delete mode 100755 archive/src/vertx-sdkman/install.sh delete mode 100644 archive/src/vertx-sdkman/library_scripts.sh delete mode 100644 archive/src/visualvm-sdkman/README.md delete mode 100644 archive/src/visualvm-sdkman/devcontainer-feature.json delete mode 100755 archive/src/visualvm-sdkman/install.sh delete mode 100644 archive/src/visualvm-sdkman/library_scripts.sh delete mode 100644 archive/src/volta/README.md delete mode 100644 archive/src/volta/devcontainer-feature.json delete mode 100755 archive/src/volta/install.sh delete mode 100644 archive/src/volta/library_scripts.sh delete mode 100644 archive/src/xplr/README.md delete mode 100644 archive/src/xplr/devcontainer-feature.json delete mode 100755 archive/src/xplr/install.sh delete mode 100644 archive/src/xplr/library_scripts.sh delete mode 100644 archive/test/age-keygen/scenarios.json delete mode 100755 archive/test/age-keygen/test_defaults_debian.sh delete mode 100644 archive/test/airplane-cli/scenarios.json delete mode 100755 archive/test/airplane-cli/test_defaults_debian.sh delete mode 100644 archive/test/bigcommerce-stencil-cli/scenarios.json delete mode 100755 archive/test/bigcommerce-stencil-cli/test.sh delete mode 100644 archive/test/bitwarden-cli/scenarios.json delete mode 100755 archive/test/bitwarden-cli/test_defaults_debian.sh delete mode 100644 archive/test/boundary-asdf/scenarios.json delete mode 100755 archive/test/boundary-asdf/test.sh delete mode 100644 archive/test/btm/scenarios.json delete mode 100755 archive/test/btm/test_defaults_debian.sh delete mode 100644 archive/test/cert-manager/scenarios.json delete mode 100755 archive/test/cert-manager/test_defaults_debian.sh delete mode 100644 archive/test/cmctl-asdf/scenarios.json delete mode 100755 archive/test/cmctl-asdf/test.sh delete mode 100644 archive/test/codenotary-cas/scenarios.json delete mode 100755 archive/test/codenotary-cas/test_defaults_debian.sh delete mode 100644 archive/test/croc/scenarios.json delete mode 100755 archive/test/croc/test_defaults_debian.sh delete mode 100644 archive/test/cue-asdf/scenarios.json delete mode 100755 archive/test/cue-asdf/test.sh delete mode 100644 archive/test/edge-impulse-cli/scenarios.json delete mode 100755 archive/test/edge-impulse-cli/test.sh delete mode 100644 archive/test/elixir-asdf/scenarios.json delete mode 100755 archive/test/elixir-asdf/test_debian_11.sh delete mode 100755 archive/test/elixir-asdf/test_debian_12.sh delete mode 100755 archive/test/elixir-asdf/test_ubuntu_2004.sh delete mode 100755 archive/test/elixir-asdf/test_ubuntu_2204.sh delete mode 100644 archive/test/erlang-asdf/scenarios.json delete mode 100755 archive/test/erlang-asdf/test.sh delete mode 100755 archive/test/erlang-asdf/test_debian_bullseye.sh delete mode 100755 archive/test/erlang-asdf/test_ubuntu.sh delete mode 100644 archive/test/ffmpeg-homebrew/scenarios.json delete mode 100755 archive/test/ffmpeg-homebrew/test.sh delete mode 100644 archive/test/ko/scenarios.json delete mode 100755 archive/test/ko/test_defaults_debian.sh delete mode 100644 archive/test/kubescape/scenarios.json delete mode 100755 archive/test/kubescape/test_defaults_debian.sh delete mode 100644 archive/test/mage/scenarios.json delete mode 100755 archive/test/mage/test_defaults_debian.sh delete mode 100644 archive/test/meson-asdf/scenarios.json delete mode 100755 archive/test/meson-asdf/test.sh delete mode 100644 archive/test/meteor-cli/scenarios.json delete mode 100755 archive/test/meteor-cli/test.sh delete mode 100644 archive/test/mlton-asdf/scenarios.json delete mode 100755 archive/test/mlton-asdf/test.sh delete mode 100644 archive/test/nushell/scenarios.json delete mode 100755 archive/test/nushell/test_defaults_debian.sh delete mode 100644 archive/test/ory-keto/scenarios.json delete mode 100755 archive/test/ory-keto/test_defaults_debian.sh delete mode 100644 archive/test/pip-audit/scenarios.json delete mode 100755 archive/test/pip-audit/test_defaults.sh delete mode 100755 archive/test/porter/install_mixins.sh delete mode 100644 archive/test/porter/scenarios.json delete mode 100755 archive/test/porter/test.sh delete mode 100644 archive/test/postgres-asdf/scenarios.json delete mode 100755 archive/test/postgres-asdf/test.sh delete mode 100644 archive/test/rabbitmq-asdf/scenarios.json delete mode 100755 archive/test/rabbitmq-asdf/test.sh delete mode 100644 archive/test/scala-asdf/scenarios.json delete mode 100755 archive/test/scala-asdf/test.sh delete mode 100644 archive/test/serverless/scenarios.json delete mode 100755 archive/test/serverless/test.sh delete mode 100644 archive/test/sqlfmt/scenarios.json delete mode 100755 archive/test/sqlfmt/test.sh delete mode 100644 archive/test/syncthing/scenarios.json delete mode 100755 archive/test/syncthing/test_defaults_debian.sh delete mode 100644 archive/test/tfcdk-cli/scenarios.json delete mode 100755 archive/test/tfcdk-cli/test.sh delete mode 100755 archive/test/tfcdk-cli/test_specific_version.sh delete mode 100644 archive/test/trello-cli/scenarios.json delete mode 100755 archive/test/trello-cli/test.sh delete mode 100644 archive/test/trivy/scenarios.json delete mode 100755 archive/test/trivy/test_defaults_debian.sh delete mode 100644 archive/test/vertx-sdkman/scenarios.json delete mode 100755 archive/test/vertx-sdkman/test.sh delete mode 100644 archive/test/visualvm-sdkman/scenarios.json delete mode 100755 archive/test/visualvm-sdkman/test.sh delete mode 100644 archive/test/volta/scenarios.json delete mode 100755 archive/test/volta/test_defaults_debian.sh delete mode 100644 archive/test/xplr/scenarios.json delete mode 100755 archive/test/xplr/test_defaults_debian.sh diff --git a/archive/.keep b/archive/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/archive/src/age-keygen/README.md b/archive/src/age-keygen/README.md deleted file mode 100644 index 58afdf334..000000000 --- a/archive/src/age-keygen/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# age-keygen (via Github Releases) (age-keygen) - -age-keygen generate a key pair for use with age. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/age-keygen:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/age-keygen/devcontainer-feature.json b/archive/src/age-keygen/devcontainer-feature.json deleted file mode 100644 index 4fcc779bd..000000000 --- a/archive/src/age-keygen/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "age-keygen", - "version": "1.0.14", - "name": "age-keygen (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/age-keygen", - "description": "age-keygen generate a key pair for use with age.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/age-keygen/install.sh b/archive/src/age-keygen/install.sh deleted file mode 100755 index 2a0e98201..000000000 --- a/archive/src/age-keygen/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='filosottile/age' --option binaryNames='age-keygen' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/age-keygen/library_scripts.sh b/archive/src/age-keygen/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/age-keygen/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/airplane-cli/README.md b/archive/src/airplane-cli/README.md deleted file mode 100644 index 24cb1d9eb..000000000 --- a/archive/src/airplane-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Airplane CLI (via Github Releases) (airplane-cli) - -The Airplane CLI, airplane, is the primary way you'll create and deploy new tasks and runbooks. The CLI also provides utility methods for managing API keys, getting/setting configs, and executing tasks/runbooks. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/airplane-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/airplane-cli/devcontainer-feature.json b/archive/src/airplane-cli/devcontainer-feature.json deleted file mode 100644 index 66a51bbb5..000000000 --- a/archive/src/airplane-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "airplane-cli", - "version": "1.0.5", - "name": "Airplane CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/airplane-cli", - "description": "The Airplane CLI, airplane, is the primary way you'll create and deploy new tasks and runbooks. The CLI also provides utility methods for managing API keys, getting/setting configs, and executing tasks/runbooks.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/airplane-cli/install.sh b/archive/src/airplane-cli/install.sh deleted file mode 100755 index 9f5d5d86f..000000000 --- a/archive/src/airplane-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='airplanedev/cli' --option binaryNames='airplane' --option version="$VERSION" --option assetRegex='.*(tar).*' - - - -echo 'Done!' - diff --git a/archive/src/airplane-cli/library_scripts.sh b/archive/src/airplane-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/airplane-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/bigcommerce-stencil-cli/README.md b/archive/src/bigcommerce-stencil-cli/README.md deleted file mode 100644 index be574cedf..000000000 --- a/archive/src/bigcommerce-stencil-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# BigCommerce Stencil CLI (via npm) (bigcommerce-stencil-cli) - -Stencil CLI gives developers the power to locally edit and preview themes with no impact to a merchant’s live storefront, and it's built-in Browsersync(opens in a new tab) capabilities make simultaneous testing across desktop, mobile, and tablet devices a breeze. Once work is complete, developers can push themes to BigCommerce storefronts (and set them live) using Stencil CLI's simple, yet powerful commands. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bigcommerce-stencil-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/bigcommerce-stencil-cli/devcontainer-feature.json b/archive/src/bigcommerce-stencil-cli/devcontainer-feature.json deleted file mode 100644 index 0d6bcbad7..000000000 --- a/archive/src/bigcommerce-stencil-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "bigcommerce-stencil-cli", - "version": "1.0.2", - "name": "BigCommerce Stencil CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/bigcommerce-stencil-cli", - "description": "Stencil CLI gives developers the power to locally edit and preview themes with no impact to a merchant\u2019s live storefront, and it's built-in Browsersync(opens in a new tab) capabilities make simultaneous testing across desktop, mobile, and tablet devices a breeze. Once work is complete, developers can push themes to BigCommerce storefronts (and set them live) using Stencil CLI's simple, yet powerful commands.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/archive/src/bigcommerce-stencil-cli/install.sh b/archive/src/bigcommerce-stencil-cli/install.sh deleted file mode 100755 index 37f62c52f..000000000 --- a/archive/src/bigcommerce-stencil-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='@bigcommerce/stencil-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/bigcommerce-stencil-cli/library_scripts.sh b/archive/src/bigcommerce-stencil-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/bigcommerce-stencil-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/bitwarden-cli/README.md b/archive/src/bitwarden-cli/README.md deleted file mode 100644 index a7ea34739..000000000 --- a/archive/src/bitwarden-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Bitwarden CLI (via Github Releases) (bitwarden-cli) - -The Bitwarden command-line interface (CLI) is a powerful, fully-featured tool for accessing and managing your vault. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/bitwarden-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/bitwarden-cli/devcontainer-feature.json b/archive/src/bitwarden-cli/devcontainer-feature.json deleted file mode 100644 index 5d53b3f14..000000000 --- a/archive/src/bitwarden-cli/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "bitwarden-cli", - "version": "1.0.2", - "name": "Bitwarden CLI (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/bitwarden-cli", - "description": "The Bitwarden command-line interface (CLI) is a powerful, fully-featured tool for accessing and managing your vault.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/bitwarden-cli/install.sh b/archive/src/bitwarden-cli/install.sh deleted file mode 100755 index df8bcfbc8..000000000 --- a/archive/src/bitwarden-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='bitwarden/clients' --option binaryNames='bw' --option releaseTagRegex='.*cli.*' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/bitwarden-cli/library_scripts.sh b/archive/src/bitwarden-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/bitwarden-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/boundary-asdf/README.md b/archive/src/boundary-asdf/README.md deleted file mode 100644 index 61ab1e66a..000000000 --- a/archive/src/boundary-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# boundary (via asdf) (boundary-asdf) - -Installs boundary - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/boundary-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/boundary-asdf/devcontainer-feature.json b/archive/src/boundary-asdf/devcontainer-feature.json deleted file mode 100644 index eef2fd62a..000000000 --- a/archive/src/boundary-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "boundary-asdf", - "version": "2.0.15", - "name": "boundary (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/boundary-asdf", - "description": "Installs boundary", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/archive/src/boundary-asdf/install.sh b/archive/src/boundary-asdf/install.sh deleted file mode 100755 index a83b7eeaa..000000000 --- a/archive/src/boundary-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='boundary' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/boundary-asdf/library_scripts.sh b/archive/src/boundary-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/boundary-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/btm/README.md b/archive/src/btm/README.md deleted file mode 100644 index a60d182ab..000000000 --- a/archive/src/btm/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# bottom (via Github Releases) (btm) - -bottom is a customizable cross-platform graphical process/system monitor for the terminal. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/btm:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/btm/devcontainer-feature.json b/archive/src/btm/devcontainer-feature.json deleted file mode 100644 index df4fe0d2b..000000000 --- a/archive/src/btm/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "btm", - "version": "1.0.15", - "name": "bottom (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/btm", - "description": "bottom is a customizable cross-platform graphical process/system monitor for the terminal.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/btm/install.sh b/archive/src/btm/install.sh deleted file mode 100755 index 56871f3ba..000000000 --- a/archive/src/btm/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ClementTsang/bottom' --option binaryNames='btm' --option version="$VERSION" --option assetRegex='^(?!.*(2-17))' - - - -echo 'Done!' - diff --git a/archive/src/btm/library_scripts.sh b/archive/src/btm/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/btm/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/cert-manager/README.md b/archive/src/cert-manager/README.md deleted file mode 100644 index 8ff290a12..000000000 --- a/archive/src/cert-manager/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# cert-manager (via Github Releases) (cert-manager) - -cert-manager adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of obtaining, renewing and using those certificates. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cert-manager:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/cert-manager/devcontainer-feature.json b/archive/src/cert-manager/devcontainer-feature.json deleted file mode 100644 index 26f910611..000000000 --- a/archive/src/cert-manager/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "cert-manager", - "version": "1.0.2", - "name": "cert-manager (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cert-manager", - "description": "cert-manager adds certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of obtaining, renewing and using those certificates.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/cert-manager/install.sh b/archive/src/cert-manager/install.sh deleted file mode 100755 index ac21d09b2..000000000 --- a/archive/src/cert-manager/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='cert-manager/cert-manager' --option binaryNames='cmctl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/cert-manager/library_scripts.sh b/archive/src/cert-manager/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/cert-manager/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/cmctl-asdf/README.md b/archive/src/cmctl-asdf/README.md deleted file mode 100644 index 6076f8727..000000000 --- a/archive/src/cmctl-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# cmctl (via asdf) (cmctl-asdf) - -cmctl is a command line tool that can help you manage cert-manager and its resources inside your cluster. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cmctl-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/cmctl-asdf/devcontainer-feature.json b/archive/src/cmctl-asdf/devcontainer-feature.json deleted file mode 100644 index f77e356e4..000000000 --- a/archive/src/cmctl-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "cmctl-asdf", - "version": "2.0.15", - "name": "cmctl (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cmctl-asdf", - "description": "cmctl is a command line tool that can help you manage cert-manager and its resources inside your cluster.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/archive/src/cmctl-asdf/install.sh b/archive/src/cmctl-asdf/install.sh deleted file mode 100755 index fa8a9d513..000000000 --- a/archive/src/cmctl-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='cmctl' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/cmctl-asdf/library_scripts.sh b/archive/src/cmctl-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/cmctl-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/codenotary-cas/README.md b/archive/src/codenotary-cas/README.md deleted file mode 100644 index e802181fb..000000000 --- a/archive/src/codenotary-cas/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Codenotary Community Attestation Service (CAS) (via Github Releases) (codenotary-cas) - -Community Attestation Service (CAS) can give any digital asset a meaningful, globally-unique, immutable identity that is authentic, verifiable, traceable from anywhere. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/codenotary-cas:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/codenotary-cas/devcontainer-feature.json b/archive/src/codenotary-cas/devcontainer-feature.json deleted file mode 100644 index dedf5932c..000000000 --- a/archive/src/codenotary-cas/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "codenotary-cas", - "version": "1.0.9", - "name": "Codenotary Community Attestation Service (CAS) (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/codenotary-cas", - "description": "Community Attestation Service (CAS) can give any digital asset a meaningful, globally-unique, immutable identity that is authentic, verifiable, traceable from anywhere.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/codenotary-cas/install.sh b/archive/src/codenotary-cas/install.sh deleted file mode 100755 index 9e08a9c21..000000000 --- a/archive/src/codenotary-cas/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='codenotary/cas' --option binaryNames='cas' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/codenotary-cas/library_scripts.sh b/archive/src/codenotary-cas/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/codenotary-cas/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/croc/README.md b/archive/src/croc/README.md deleted file mode 100644 index a384d29fc..000000000 --- a/archive/src/croc/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# croc (via Github Releases) (croc) - -croc is a tool that allows any two computers to simply and securely transfer files and folders. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/croc:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/croc/devcontainer-feature.json b/archive/src/croc/devcontainer-feature.json deleted file mode 100644 index 3afed86a2..000000000 --- a/archive/src/croc/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "croc", - "version": "1.0.5", - "name": "croc (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/croc", - "description": "croc is a tool that allows any two computers to simply and securely transfer files and folders.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/croc/install.sh b/archive/src/croc/install.sh deleted file mode 100755 index 98ac82d56..000000000 --- a/archive/src/croc/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='schollz/croc' --option binaryNames='croc' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/croc/library_scripts.sh b/archive/src/croc/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/croc/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/cue-asdf/README.md b/archive/src/cue-asdf/README.md deleted file mode 100644 index 9eb03700e..000000000 --- a/archive/src/cue-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# CUE (via asdf) (cue-asdf) - -CUE is an open source data constraint language which aims to simplify tasks involving defining and using data. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/cue-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/cue-asdf/devcontainer-feature.json b/archive/src/cue-asdf/devcontainer-feature.json deleted file mode 100644 index 2e89a1b84..000000000 --- a/archive/src/cue-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "cue-asdf", - "version": "2.0.15", - "name": "CUE (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/cue-asdf", - "description": "CUE is an open source data constraint language which aims to simplify tasks involving defining and using data.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/archive/src/cue-asdf/install.sh b/archive/src/cue-asdf/install.sh deleted file mode 100755 index 7f67ee91d..000000000 --- a/archive/src/cue-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='cue' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/cue-asdf/library_scripts.sh b/archive/src/cue-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/cue-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/edge-impulse-cli/README.md b/archive/src/edge-impulse-cli/README.md deleted file mode 100644 index 1d6a84832..000000000 --- a/archive/src/edge-impulse-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Edge Impulse CLI (via npm) (edge-impulse-cli) - -Edge Impulse CLI is used to control local devices, act as a proxy to synchronise data for devices that don't have an internet connection, and to upload and convert local files. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/edge-impulse-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/edge-impulse-cli/devcontainer-feature.json b/archive/src/edge-impulse-cli/devcontainer-feature.json deleted file mode 100644 index 13841187c..000000000 --- a/archive/src/edge-impulse-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "edge-impulse-cli", - "version": "1.0.2", - "name": "Edge Impulse CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/edge-impulse-cli", - "description": "Edge Impulse CLI is used to control local devices, act as a proxy to synchronise data for devices that don't have an internet connection, and to upload and convert local files.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/archive/src/edge-impulse-cli/install.sh b/archive/src/edge-impulse-cli/install.sh deleted file mode 100755 index 4826aa247..000000000 --- a/archive/src/edge-impulse-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='edge-impulse-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/edge-impulse-cli/library_scripts.sh b/archive/src/edge-impulse-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/edge-impulse-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/elixir-asdf/README.md b/archive/src/elixir-asdf/README.md deleted file mode 100644 index ce1f97ec9..000000000 --- a/archive/src/elixir-asdf/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Elixir (via asdf) (elixir-asdf) - -Elixir is a functional, concurrent, general-purpose programming language that runs on the BEAM virtual machine which is also used to implement the Erlang programming language. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/elixir-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| elixirVersion | Select the version to install. | string | latest | -| erlangVersion | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/elixir-asdf/devcontainer-feature.json b/archive/src/elixir-asdf/devcontainer-feature.json deleted file mode 100644 index e9e2efb77..000000000 --- a/archive/src/elixir-asdf/devcontainer-feature.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "id": "elixir-asdf", - "version": "2.0.19", - "name": "Elixir (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/elixir-asdf", - "description": "Elixir is a functional, concurrent, general-purpose programming language that runs on the BEAM virtual machine which is also used to implement the Erlang programming language.", - "options": { - "elixirVersion": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "erlangVersion": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/apt-get-packages", - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/archive/src/elixir-asdf/install.sh b/archive/src/elixir-asdf/install.sh deleted file mode 100755 index 024646204..000000000 --- a/archive/src/elixir-asdf/install.sh +++ /dev/null @@ -1,39 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='build-essential,autoconf,m4,libncurses5-dev,libwxgtk3.*-dev,libwxgtk-webview3.*-dev,libgl1-mesa-dev,libglu1-mesa-dev,libpng-dev,libssh-dev,unixodbc-dev,xsltproc,fop,libxml2-utils,libncurses-dev,openjdk-1*-jdk,procps' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='erlang' --option version="$ERLANGVERSION" - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='elixir' --option version="$ELIXIRVERSION" - - - -echo 'Done!' - diff --git a/archive/src/elixir-asdf/library_scripts.sh b/archive/src/elixir-asdf/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/elixir-asdf/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/erlang-asdf/README.md b/archive/src/erlang-asdf/README.md deleted file mode 100644 index 0b5b2d9e2..000000000 --- a/archive/src/erlang-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Erlang (via asdf) (erlang-asdf) - -Erlang is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/erlang-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/erlang-asdf/devcontainer-feature.json b/archive/src/erlang-asdf/devcontainer-feature.json deleted file mode 100644 index cb2389dfe..000000000 --- a/archive/src/erlang-asdf/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "erlang-asdf", - "version": "2.0.18", - "name": "Erlang (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/erlang-asdf", - "description": "Erlang is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package", - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/archive/src/erlang-asdf/install.sh b/archive/src/erlang-asdf/install.sh deleted file mode 100755 index 82bfee194..000000000 --- a/archive/src/erlang-asdf/install.sh +++ /dev/null @@ -1,31 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='build-essential,autoconf,m4,libncurses5-dev,libwxgtk3.*-dev,libwxgtk-webview3.*-dev,libgl1-mesa-dev,libglu1-mesa-dev,libpng-dev,libssh-dev,unixodbc-dev,xsltproc,fop,libxml2-utils,libncurses-dev,openjdk-1*-jdk,procps' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='erlang' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/erlang-asdf/library_scripts.sh b/archive/src/erlang-asdf/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/erlang-asdf/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/ffmpeg-homebrew/README.md b/archive/src/ffmpeg-homebrew/README.md deleted file mode 100644 index 4d692dc38..000000000 --- a/archive/src/ffmpeg-homebrew/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# FFmpeg (via Homebrew) (ffmpeg-homebrew) - -FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ffmpeg-homebrew:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/ffmpeg-homebrew/devcontainer-feature.json b/archive/src/ffmpeg-homebrew/devcontainer-feature.json deleted file mode 100644 index 799be41fa..000000000 --- a/archive/src/ffmpeg-homebrew/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ffmpeg-homebrew", - "version": "1.0.19", - "name": "FFmpeg (via Homebrew)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ffmpeg-homebrew", - "description": "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/homebrew-package" - ] -} \ No newline at end of file diff --git a/archive/src/ffmpeg-homebrew/install.sh b/archive/src/ffmpeg-homebrew/install.sh deleted file mode 100755 index f7a485690..000000000 --- a/archive/src/ffmpeg-homebrew/install.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/homebrew-package:1.0.8" \ - --option package='ffmpeg' --option version="$VERSION" - - -echo 'Done!' - diff --git a/archive/src/ffmpeg-homebrew/library_scripts.sh b/archive/src/ffmpeg-homebrew/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/ffmpeg-homebrew/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/homebrew-package/devcontainer-feature.json b/archive/src/homebrew-package/devcontainer-feature.json deleted file mode 100644 index c44f415da..000000000 --- a/archive/src/homebrew-package/devcontainer-feature.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "Homebrew Package", - "id": "homebrew-package", - "version": "1.0.8", - "description": "Installs a Homebrew package.", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/homebrew-package", - "installsAfter": [ - "ghcr.io/meaningful-ooo/devcontainer-features/homebrew:2" - ], - "options": { - "package": { - "type": "string", - "proposals": [ - "typescript", - "vtop", - "fkill-cli" - ], - "default": "", - "description": "Select the Homebrew package to install." - }, - "version": { - "type": "string", - "proposals": [ - "latest" - ], - "default": "latest", - "description": "Select the version of the Homebrew package to install." - }, - "installation_flags": { - "type": "string", - "proposals": [ - "--ignore-dependencies" - ], - "default": "", - "description": "Additional installation flags. These would be used as extra arguments to the brew command (`brew install @`)" - } - } -} \ No newline at end of file diff --git a/archive/src/homebrew-package/install.sh b/archive/src/homebrew-package/install.sh deleted file mode 100755 index 69ed2b24c..000000000 --- a/archive/src/homebrew-package/install.sh +++ /dev/null @@ -1,116 +0,0 @@ -#!/usr/bin/env bash -set -ex - -source ./library_scripts.sh - -PACKAGE=${PACKAGE:-""} -VERSION=${VERSION:-"latest"} -INSTALLATION_FLAGS=${INSTALLATION_FLAGS:-""} - -if [ -z "$PACKAGE" ]; then - echo -e "'package' variable is empty, skipping" - exit 0 -fi - -if [ "$(id -u)" -ne 0 ]; then - echo -e 'Script must be run as - root. Use sudo, su, or add "USER root" to your Dockerfile before running this script.' - exit 1 -fi - -check_packages() { - if ! dpkg -s "$@" >/dev/null 2>&1; then - if [ "$(find /var/lib/apt/lists/* | wc -l)" = "0" ]; then - echo "Running apt-get update..." - apt-get update -y - fi - apt-get -y install --no-install-recommends "$@" - fi -} - -ensure_curl () { - if ! type curl >/dev/null 2>&1; then - apt-get update -y && apt-get -y install --no-install-recommends curl ca-certificates - fi -} - - - -install_via_homebrew() { - package=$1 - version=$2 - installation_flags=$3 - - # install Homebrew if does not exists - if ! type brew >/dev/null 2>&1; then - echo "Installing Homebrew..." - - # nanolayer is a cli utility which keeps container layers as small as possible - # source code: https://github.com/devcontainers-extra/nanolayer - # `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, - # and if missing - will download a temporary copy that automatically get deleted at the end - # of the script - ensure_nanolayer nanolayer_location "v0.4.29" - - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/meaningful-ooo/devcontainer-features/homebrew:2.0.3" \ - --option shallow_clone='true' --option update="true" - source /etc/profile.d/nanolayer-homebrew.sh - fi - - - if [ "$version" = "latest" ]; then - package_full="$package" - else - package_full="${package}@${version}" - fi - # Solves CVE-2022-24767 mitigation in Git >2.35.2 - # For more information: https://github.blog/2022-04-12-git-security-vulnerability-announced/ - git config --system --add safe.directory "$(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core" - - su - "$_REMOTE_USER" </dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/ko/README.md b/archive/src/ko/README.md deleted file mode 100644 index 3c73cc540..000000000 --- a/archive/src/ko/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# ko (via Github Releases) (ko) - -ko is a simple, fast container image builder for Go applications. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ko:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/ko/devcontainer-feature.json b/archive/src/ko/devcontainer-feature.json deleted file mode 100644 index 473194ccd..000000000 --- a/archive/src/ko/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ko", - "version": "1.0.9", - "name": "ko (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ko", - "description": "ko is a simple, fast container image builder for Go applications.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/ko/install.sh b/archive/src/ko/install.sh deleted file mode 100755 index 661764d30..000000000 --- a/archive/src/ko/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ko-build/ko' --option binaryNames='ko' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/ko/library_scripts.sh b/archive/src/ko/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/ko/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/kubescape/README.md b/archive/src/kubescape/README.md deleted file mode 100644 index 8ea76c01f..000000000 --- a/archive/src/kubescape/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Kubescape (via Github Releases) (kubescape) - -Kubescape is an open-source Kubernetes security platform. It includes risk analysis, security compliance, and misconfiguration scanning. Targeted at the DevSecOps practitioner or platform engineer, it offers an easy-to-use CLI interface, flexible output formats, and automated scanning capabilities. It saves Kubernetes users and admins precious time, effort, and resources. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/kubescape:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/kubescape/devcontainer-feature.json b/archive/src/kubescape/devcontainer-feature.json deleted file mode 100644 index d6a245cbb..000000000 --- a/archive/src/kubescape/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "kubescape", - "version": "1.0.5", - "name": "Kubescape (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kubescape", - "description": "Kubescape is an open-source Kubernetes security platform. It includes risk analysis, security compliance, and misconfiguration scanning. Targeted at the DevSecOps practitioner or platform engineer, it offers an easy-to-use CLI interface, flexible output formats, and automated scanning capabilities. It saves Kubernetes users and admins precious time, effort, and resources.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/kubescape/install.sh b/archive/src/kubescape/install.sh deleted file mode 100755 index 62c1dce62..000000000 --- a/archive/src/kubescape/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='kubescape/kubescape' --option binaryNames='kubescape' --option version="$VERSION" --option assetRegex='.*(tar).*' - - - -echo 'Done!' - diff --git a/archive/src/kubescape/library_scripts.sh b/archive/src/kubescape/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/kubescape/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/mage/README.md b/archive/src/mage/README.md deleted file mode 100644 index 8710751ea..000000000 --- a/archive/src/mage/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Mage (via Github Releases) (mage) - -Mage is a make-like build tool using Go. You write plain-old go functions, and Mage automatically uses them as Makefile-like runnable targets. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mage:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/mage/devcontainer-feature.json b/archive/src/mage/devcontainer-feature.json deleted file mode 100644 index 75801a715..000000000 --- a/archive/src/mage/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "mage", - "version": "1.0.5", - "name": "Mage (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mage", - "description": "Mage is a make-like build tool using Go. You write plain-old go functions, and Mage automatically uses them as Makefile-like runnable targets.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/mage/install.sh b/archive/src/mage/install.sh deleted file mode 100755 index 046e86c63..000000000 --- a/archive/src/mage/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='magefile/mage' --option binaryNames='mage' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/mage/library_scripts.sh b/archive/src/mage/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/mage/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/meson-asdf/README.md b/archive/src/meson-asdf/README.md deleted file mode 100644 index 778b7e1e0..000000000 --- a/archive/src/meson-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Meson (via asdf) (meson-asdf) - -Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/meson-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/meson-asdf/devcontainer-feature.json b/archive/src/meson-asdf/devcontainer-feature.json deleted file mode 100644 index 503d1129f..000000000 --- a/archive/src/meson-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "meson-asdf", - "version": "2.0.15", - "name": "Meson (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/meson-asdf", - "description": "Meson is an open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/archive/src/meson-asdf/install.sh b/archive/src/meson-asdf/install.sh deleted file mode 100755 index 400a42b89..000000000 --- a/archive/src/meson-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='meson' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/meson-asdf/library_scripts.sh b/archive/src/meson-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/meson-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/meteor-cli/README.md b/archive/src/meteor-cli/README.md deleted file mode 100644 index 90dca00a9..000000000 --- a/archive/src/meteor-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Meteor CLI (via npm) (meteor-cli) - -Meteor is a full-stack JavaScript platform for developing modern web and mobile applications. Meteor includes a key set of technologies for building connected-client reactive applications, a build tool, and a curated set of packages from the Node.js and general JavaScript community. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/meteor-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/meteor-cli/devcontainer-feature.json b/archive/src/meteor-cli/devcontainer-feature.json deleted file mode 100644 index 36d8c3580..000000000 --- a/archive/src/meteor-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "meteor-cli", - "version": "1.0.2", - "name": "Meteor CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/meteor-cli", - "description": "Meteor is a full-stack JavaScript platform for developing modern web and mobile applications. Meteor includes a key set of technologies for building connected-client reactive applications, a build tool, and a curated set of packages from the Node.js and general JavaScript community.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/archive/src/meteor-cli/install.sh b/archive/src/meteor-cli/install.sh deleted file mode 100755 index 13546abfe..000000000 --- a/archive/src/meteor-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='meteor' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/meteor-cli/library_scripts.sh b/archive/src/meteor-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/meteor-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/mlton-asdf/README.md b/archive/src/mlton-asdf/README.md deleted file mode 100644 index 0781c8397..000000000 --- a/archive/src/mlton-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# mlton (via asdf) (mlton-asdf) - -MLton is a whole-program optimizing compiler for the Standard ML programming language. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/mlton-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/mlton-asdf/devcontainer-feature.json b/archive/src/mlton-asdf/devcontainer-feature.json deleted file mode 100644 index b0ce0c81b..000000000 --- a/archive/src/mlton-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "mlton-asdf", - "version": "2.0.15", - "name": "mlton (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/mlton-asdf", - "description": "MLton is a whole-program optimizing compiler for the Standard ML programming language.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/archive/src/mlton-asdf/install.sh b/archive/src/mlton-asdf/install.sh deleted file mode 100755 index aa67a36bb..000000000 --- a/archive/src/mlton-asdf/install.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='mlton' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/mlton-asdf/library_scripts.sh b/archive/src/mlton-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/mlton-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/nushell/README.md b/archive/src/nushell/README.md deleted file mode 100644 index 57000d626..000000000 --- a/archive/src/nushell/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Nushell (via Github Releases) (nushell) - -Nushell is a shell with a focus on operating on structured data in the command line. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/nushell:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/nushell/devcontainer-feature.json b/archive/src/nushell/devcontainer-feature.json deleted file mode 100644 index 12137c3c5..000000000 --- a/archive/src/nushell/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "nushell", - "version": "1.0.9", - "name": "Nushell (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/nushell", - "description": "Nushell is a shell with a focus on operating on structured data in the command line.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/nushell/install.sh b/archive/src/nushell/install.sh deleted file mode 100755 index 0375e2f96..000000000 --- a/archive/src/nushell/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='nushell/nushell' --option binaryNames='nu' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/nushell/library_scripts.sh b/archive/src/nushell/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/nushell/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/ory-keto/README.md b/archive/src/ory-keto/README.md deleted file mode 100644 index bcd4b0849..000000000 --- a/archive/src/ory-keto/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Ory Keto (via Github Releases) (ory-keto) - -Ory Keto is an implementation of 'Zanzibar: Google's Consistent, Global Authorization System'. Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/ory-keto:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/ory-keto/devcontainer-feature.json b/archive/src/ory-keto/devcontainer-feature.json deleted file mode 100644 index 6e0ab8978..000000000 --- a/archive/src/ory-keto/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "ory-keto", - "version": "1.0.5", - "name": "Ory Keto (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/ory-keto", - "description": "Ory Keto is an implementation of 'Zanzibar: Google's Consistent, Global Authorization System'. Ships gRPC, REST APIs, newSQL, and an easy and granular permission language. Supports ACL, RBAC, and other access models.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/ory-keto/install.sh b/archive/src/ory-keto/install.sh deleted file mode 100755 index d86ed5d7b..000000000 --- a/archive/src/ory-keto/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='ory/keto' --option binaryNames='keto' --option version="$VERSION" --option assetRegex='.*(Linux_64).*' - - - -echo 'Done!' - diff --git a/archive/src/ory-keto/library_scripts.sh b/archive/src/ory-keto/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/ory-keto/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/pip-audit/README.md b/archive/src/pip-audit/README.md deleted file mode 100644 index 1c7e0d120..000000000 --- a/archive/src/pip-audit/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# CVE Binary Tool (via pipx) (pip-audit) - -pip-audit is a tool for scanning Python environments for packages with known vulnerabilities. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/pip-audit:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/pip-audit/devcontainer-feature.json b/archive/src/pip-audit/devcontainer-feature.json deleted file mode 100644 index c92590b16..000000000 --- a/archive/src/pip-audit/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "pip-audit", - "version": "1.0.4", - "name": "CVE Binary Tool (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/pip-audit", - "description": "pip-audit is a tool for scanning Python environments for packages with known vulnerabilities.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/archive/src/pip-audit/install.sh b/archive/src/pip-audit/install.sh deleted file mode 100755 index 75318625c..000000000 --- a/archive/src/pip-audit/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='pip-audit' --option version="$VERSION" - - - -echo 'Done' - diff --git a/archive/src/pip-audit/library_scripts.sh b/archive/src/pip-audit/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/pip-audit/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/porter/README.md b/archive/src/porter/README.md deleted file mode 100644 index 79f690622..000000000 --- a/archive/src/porter/README.md +++ /dev/null @@ -1,34 +0,0 @@ - -# Porter (via porter.sh) (porter) - -Porter enables you to package your application artifact, client tools, configuration and deployment logic together as an installer that you can distribute, and install with a single command. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/porter:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. Empty string installs the latest version. | string | latest | -| terraformMixinVersion | Select the terraform mixin version to install. | string | - | -| azMixinVersion | Select the az mixin version to install. | string | - | -| awsMixinVersion | Select the aws mixin version to install. | string | - | -| dockerMixinVersion | Select the docker mixin version to install. | string | - | -| dockerComposeMixinVersion | Select the docker-compose mixin version to install. | string | - | -| gcloudMixinVersion | Select the gcloud mixin version to install. | string | - | -| helmMixinVersion | Select the helm mixin version to install. | string | - | -| armMixinVersion | Select the arm mixin version to install. | string | - | -| azurePluginVersion | Select the azure plugin version to install. | string | - | -| kubernetesPluginVersion | Select the kubernetes plugin version to install. | string | - | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/porter/devcontainer-feature.json b/archive/src/porter/devcontainer-feature.json deleted file mode 100644 index d3078aace..000000000 --- a/archive/src/porter/devcontainer-feature.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "id": "porter", - "version": "1.0.3", - "name": "Porter (via porter.sh)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/porter", - "description": "Porter enables you to package your application artifact, client tools, configuration and deployment logic together as an installer that you can distribute, and install with a single command.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install. Empty string installs the latest version.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "terraformMixinVersion": { - "default": "", - "description": "Select the terraform mixin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "azMixinVersion": { - "default": "", - "description": "Select the az mixin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "awsMixinVersion": { - "default": "", - "description": "Select the aws mixin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "dockerMixinVersion": { - "default": "", - "description": "Select the docker mixin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "dockerComposeMixinVersion": { - "default": "", - "description": "Select the docker-compose mixin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "gcloudMixinVersion": { - "default": "", - "description": "Select the gcloud mixin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "helmMixinVersion": { - "default": "", - "description": "Select the helm mixin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "armMixinVersion": { - "default": "", - "description": "Select the arm mixin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "azurePluginVersion": { - "default": "", - "description": "Select the azure plugin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "kubernetesPluginVersion": { - "default": "", - "description": "Select the kubernetes plugin version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "containerEnv": { - "PATH": "/usr/local/porter:${PATH}", - "PORTER_HOME": "/usr/local/porter" - } -} \ No newline at end of file diff --git a/archive/src/porter/install.sh b/archive/src/porter/install.sh deleted file mode 100755 index a1f5d8b74..000000000 --- a/archive/src/porter/install.sh +++ /dev/null @@ -1,115 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.39" - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='curl' - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='curl -L https://cdn.porter.sh/latest/install-linux.sh | PORTER_VERSION=$VERSION PORTER_HOME=/usr/local/porter bash -s -- -x' - - -if [ -n "$TERRAFORMMIXINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter mixin install terraform --version $TERRAFORMMIXINVERSION' -fi - - -if [ -n "$AZMIXINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter mixin install az --version $AZMIXINVERSION' -fi - -if [ -n "$AWSMIXINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter mixin install aws --version $AWSMIXINVERSION' -fi - -if [ -n "$DOCKERMIXINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter mixin install docker --version $DOCKERMIXINVERSION' -fi - -if [ -n "$DOCKERCOMPOSEMIXINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter mixin install docker-compose --version $DOCKERCOMPOSEMIXINVERSION' -fi - -if [ -n "$GCLOUDMIXINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter mixin install gcloud --version $GCLOUDMIXINVERSION' -fi - -if [ -n "$HELMMIXINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter mixin install helm --version $HELMMIXINVERSION' -fi - -if [ -n "$ARMMIXINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter mixin install arm --version $ARMMIXINVERSION' -fi - -if [ -n "$AZUREPLUGINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter plugin install azure --version $AZUREPLUGINVERSION' -fi - -if [ -n "$KUBERNETESPLUGINVERSION" ] ; then - $nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='/usr/local/porter/porter plugin install kubernetes --version $KUBERNETESPLUGINVERSION' -fi - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='chown -hR ${_REMOTE_USER}:${_REMOTE_USER} /usr/local/porter' - - -echo 'Done!' diff --git a/archive/src/porter/library_scripts.sh b/archive/src/porter/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/porter/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/postgres-asdf/README.md b/archive/src/postgres-asdf/README.md deleted file mode 100644 index bbc6f39e3..000000000 --- a/archive/src/postgres-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# PostgreSQL (via asdf) (postgres-asdf) - -PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/postgres-asdf:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/postgres-asdf/devcontainer-feature.json b/archive/src/postgres-asdf/devcontainer-feature.json deleted file mode 100644 index fc0305f07..000000000 --- a/archive/src/postgres-asdf/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "postgres-asdf", - "version": "1.0.3", - "name": "PostgreSQL (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/postgres-asdf", - "description": "PostgreSQL is a powerful, open source object-relational database system with over 35 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/archive/src/postgres-asdf/install.sh b/archive/src/postgres-asdf/install.sh deleted file mode 100755 index bb6f12d9e..000000000 --- a/archive/src/postgres-asdf/install.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='build-essential,libssl-dev,libreadline-dev,zlib1g-dev,libcurl4-openssl-dev,uuid-dev,icu-devtools' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='postgres' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/postgres-asdf/library_scripts.sh b/archive/src/postgres-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/postgres-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/rabbitmq-asdf/README.md b/archive/src/rabbitmq-asdf/README.md deleted file mode 100644 index ce1759f08..000000000 --- a/archive/src/rabbitmq-asdf/README.md +++ /dev/null @@ -1,25 +0,0 @@ - -# Rabbitmq (via asdf) (rabbitmq-asdf) - -RabbitMQ is a feature rich, multi-protocol messaging and streaming broker. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/rabbitmq-asdf:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | v3.12.0 | -| erlangVersion | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/rabbitmq-asdf/devcontainer-feature.json b/archive/src/rabbitmq-asdf/devcontainer-feature.json deleted file mode 100644 index 714f8b61b..000000000 --- a/archive/src/rabbitmq-asdf/devcontainer-feature.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "id": "rabbitmq-asdf", - "version": "1.0.4", - "name": "Rabbitmq (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/kubectl-asdf", - "description": "RabbitMQ is a feature rich, multi-protocol messaging and streaming broker.", - "options": { - "version": { - "default": "v3.12.0", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "erlangVersion": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package" - ] -} \ No newline at end of file diff --git a/archive/src/rabbitmq-asdf/install.sh b/archive/src/rabbitmq-asdf/install.sh deleted file mode 100755 index 89b758cda..000000000 --- a/archive/src/rabbitmq-asdf/install.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='build-essential,autoconf,m4,libncurses5-dev,libwxgtk3.0-gtk3-dev,libwxgtk-webview3.0-gtk3-dev,libgl1-mesa-dev,libglu1-mesa-dev,libpng-dev,libssh-dev,unixodbc-dev,xsltproc,fop,libxml2-utils,libncurses-dev,openjdk-11-jdk,procps' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='erlang' --option version="$ERLANGVERSION" - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='xz-utils' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='rabbitmq' --option version="$VERSION" --option latestVersionPattern='v' - - - -echo 'Done!' - diff --git a/archive/src/rabbitmq-asdf/library_scripts.sh b/archive/src/rabbitmq-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/rabbitmq-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/scala-asdf/README.md b/archive/src/scala-asdf/README.md deleted file mode 100644 index 6dddf7fc7..000000000 --- a/archive/src/scala-asdf/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# scala (via asdf) (scala-asdf) - -Scala combines object-oriented and functional programming in one concise, high-level language - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/scala-asdf:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/scala-asdf/devcontainer-feature.json b/archive/src/scala-asdf/devcontainer-feature.json deleted file mode 100644 index c83deff17..000000000 --- a/archive/src/scala-asdf/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "scala-asdf", - "version": "2.0.17", - "name": "scala (via asdf)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/scala-asdf", - "description": "Scala combines object-oriented and functional programming in one concise, high-level language", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/asdf-package", - "ghcr.io/devcontainers-extra/features/apt-get-packages" - ] -} \ No newline at end of file diff --git a/archive/src/scala-asdf/install.sh b/archive/src/scala-asdf/install.sh deleted file mode 100755 index 8f1a79a05..000000000 --- a/archive/src/scala-asdf/install.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.45" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/apt-get-packages:1.0.6" \ - --option packages='openjdk-11-jdk' - - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/asdf-package:1.0.8" \ - --option plugin='scala' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/scala-asdf/library_scripts.sh b/archive/src/scala-asdf/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/scala-asdf/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/serverless/README.md b/archive/src/serverless/README.md deleted file mode 100644 index f68609e83..000000000 --- a/archive/src/serverless/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Serverless Framework (via npm) (serverless) - -Serverless Framework is a widely used open-source IaC tool that allows you to build, and deploy serverless applications on multiple cloud providers. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/serverless:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Serverless Framework to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/serverless/devcontainer-feature.json b/archive/src/serverless/devcontainer-feature.json deleted file mode 100644 index 961cb6741..000000000 --- a/archive/src/serverless/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "serverless", - "version": "2.0.15", - "name": "Serverless Framework (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/serverless", - "description": "Serverless Framework is a widely used open-source IaC tool that allows you to build, and deploy serverless applications on multiple cloud providers.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Serverless Framework to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/archive/src/serverless/install.sh b/archive/src/serverless/install.sh deleted file mode 100755 index cd46984e8..000000000 --- a/archive/src/serverless/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='serverless' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/serverless/library_scripts.sh b/archive/src/serverless/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/serverless/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/sqlfmt/README.md b/archive/src/sqlfmt/README.md deleted file mode 100644 index ec737ab18..000000000 --- a/archive/src/sqlfmt/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# sqlfmt (via pipx) (sqlfmt) - -sqlfmt formats your dbt SQL files so you don't have to. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/sqlfmt:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/sqlfmt/devcontainer-feature.json b/archive/src/sqlfmt/devcontainer-feature.json deleted file mode 100644 index 0f0af4974..000000000 --- a/archive/src/sqlfmt/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "sqlfmt", - "version": "1.0.1", - "name": "sqlfmt (via pipx)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/sqlfmt", - "description": "sqlfmt formats your dbt SQL files so you don't have to.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/pipx-package", - "ghcr.io/devcontainers/features/python" - ] -} \ No newline at end of file diff --git a/archive/src/sqlfmt/install.sh b/archive/src/sqlfmt/install.sh deleted file mode 100755 index 85e08f6b1..000000000 --- a/archive/src/sqlfmt/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.0" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/pipx-package:1.1.8" \ - --option package='shandy-sqlfmt[jinjafmt]' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/sqlfmt/library_scripts.sh b/archive/src/sqlfmt/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/sqlfmt/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/syncthing/README.md b/archive/src/syncthing/README.md deleted file mode 100644 index 55ec85158..000000000 --- a/archive/src/syncthing/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Syncthing (via Github Releases) (syncthing) - -Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/syncthing:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/syncthing/devcontainer-feature.json b/archive/src/syncthing/devcontainer-feature.json deleted file mode 100644 index 8bbca02b9..000000000 --- a/archive/src/syncthing/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "syncthing", - "version": "1.0.2", - "name": "Syncthing (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/syncthing", - "description": "Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/syncthing/install.sh b/archive/src/syncthing/install.sh deleted file mode 100755 index c1599ded7..000000000 --- a/archive/src/syncthing/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='syncthing/syncthing' --option binaryNames='syncthing' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/syncthing/library_scripts.sh b/archive/src/syncthing/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/syncthing/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/tfcdk-cli/README.md b/archive/src/tfcdk-cli/README.md deleted file mode 100644 index e059e642f..000000000 --- a/archive/src/tfcdk-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Terraform CDK CLI (via npm) (tfcdk-cli) - -Cloud Development Kit for Terraform (CDKTF) allows you to use familiar programming languages to define and provision infrastructure. This gives you access to the entire Terraform ecosystem without learning HashiCorp Configuration Language (HCL) and lets you leverage the power of your existing toolchain for testing, dependency management, etc. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/tfcdk-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/tfcdk-cli/devcontainer-feature.json b/archive/src/tfcdk-cli/devcontainer-feature.json deleted file mode 100644 index 1a721baab..000000000 --- a/archive/src/tfcdk-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "tfcdk-cli", - "version": "1.0.3", - "name": "Terraform CDK CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/tfcdk-cli", - "description": "Cloud Development Kit for Terraform (CDKTF) allows you to use familiar programming languages to define and provision infrastructure. This gives you access to the entire Terraform ecosystem without learning HashiCorp Configuration Language (HCL) and lets you leverage the power of your existing toolchain for testing, dependency management, etc.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/archive/src/tfcdk-cli/install.sh b/archive/src/tfcdk-cli/install.sh deleted file mode 100755 index d5419c6e1..000000000 --- a/archive/src/tfcdk-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='cdktf-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/tfcdk-cli/library_scripts.sh b/archive/src/tfcdk-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/tfcdk-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/trello-cli/README.md b/archive/src/trello-cli/README.md deleted file mode 100644 index 0763ae64d..000000000 --- a/archive/src/trello-cli/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Trello CLI (via npm) (trello-cli) - -trello-cli is a CLI tool for Trello. Makes sense, right? - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/trello-cli:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/trello-cli/devcontainer-feature.json b/archive/src/trello-cli/devcontainer-feature.json deleted file mode 100644 index a84618f32..000000000 --- a/archive/src/trello-cli/devcontainer-feature.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "id": "trello-cli", - "version": "1.0.3", - "name": "Trello CLI (via npm)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/trello-cli", - "description": "trello-cli is a CLI tool for Trello. Makes sense, right?", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/npm-package", - "ghcr.io/devcontainers/features/node" - ] -} \ No newline at end of file diff --git a/archive/src/trello-cli/install.sh b/archive/src/trello-cli/install.sh deleted file mode 100755 index 079a93e15..000000000 --- a/archive/src/trello-cli/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.5" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/npm-package:1.0.3" \ - --option package='trello-cli' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/trello-cli/library_scripts.sh b/archive/src/trello-cli/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/trello-cli/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/trivy/README.md b/archive/src/trivy/README.md deleted file mode 100644 index 7b9aff0d4..000000000 --- a/archive/src/trivy/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Trivy (via Github Releases) (trivy) - -Trivy is a comprehensive and versatile security scanner. It finds vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/trivy:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/trivy/devcontainer-feature.json b/archive/src/trivy/devcontainer-feature.json deleted file mode 100644 index d930267a2..000000000 --- a/archive/src/trivy/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "trivy", - "version": "1.0.9", - "name": "Trivy (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/trivy", - "description": "Trivy is a comprehensive and versatile security scanner. It finds vulnerabilities, misconfigurations, secrets, SBOM in containers, Kubernetes, code repositories, clouds and more.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/trivy/install.sh b/archive/src/trivy/install.sh deleted file mode 100755 index bcbd10ae9..000000000 --- a/archive/src/trivy/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='aquasecurity/trivy' --option binaryNames='trivy' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/trivy/library_scripts.sh b/archive/src/trivy/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/trivy/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/vertx-sdkman/README.md b/archive/src/vertx-sdkman/README.md deleted file mode 100644 index d78798f9f..000000000 --- a/archive/src/vertx-sdkman/README.md +++ /dev/null @@ -1,26 +0,0 @@ - -# Vert.x (via SDKMAN) (vertx-sdkman) - -Vert.x is a tool-kit for building reactive applications on the JVM. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/vertx-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version of Vert.x to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/vertx-sdkman/devcontainer-feature.json b/archive/src/vertx-sdkman/devcontainer-feature.json deleted file mode 100644 index 2d0909eb9..000000000 --- a/archive/src/vertx-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "vertx-sdkman", - "version": "2.0.16", - "name": "Vert.x (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/vertx-sdkman", - "description": "Vert.x is a tool-kit for building reactive applications on the JVM.", - "options": { - "version": { - "default": "latest", - "description": "Select the version of Vert.x to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/archive/src/vertx-sdkman/install.sh b/archive/src/vertx-sdkman/install.sh deleted file mode 100755 index aa0002eb3..000000000 --- a/archive/src/vertx-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='vertx' --option version="$VERSION" - - -echo 'Done!' - diff --git a/archive/src/vertx-sdkman/library_scripts.sh b/archive/src/vertx-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/vertx-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/visualvm-sdkman/README.md b/archive/src/visualvm-sdkman/README.md deleted file mode 100644 index ee16508a5..000000000 --- a/archive/src/visualvm-sdkman/README.md +++ /dev/null @@ -1,28 +0,0 @@ - -# VisualVM (via SDKMAN) (visualvm-sdkman) - -VisualVM is a tool that provides a visual interface for viewing detailed -information about Java applications while they are running on a Java Virtual -Machine. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/visualvm-sdkman:2": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | -| jdkVersion | Select or enter a JDK version to install. | string | latest | -| jdkDistro | Select or enter a JDK distribution to install | string | ms | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/visualvm-sdkman/devcontainer-feature.json b/archive/src/visualvm-sdkman/devcontainer-feature.json deleted file mode 100644 index 291662973..000000000 --- a/archive/src/visualvm-sdkman/devcontainer-feature.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "id": "visualvm-sdkman", - "version": "2.0.16", - "name": "VisualVM (via SDKMAN)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/visualvm-sdkman", - "description": "VisualVM is a tool that provides a visual interface for viewing detailed\ninformation about Java applications while they are running on a Java Virtual\nMachine.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - }, - "jdkVersion": { - "default": "latest", - "description": "Select or enter a JDK version to install.", - "proposals": [ - "latest", - "none", - "17", - "11", - "8" - ], - "type": "string" - }, - "jdkDistro": { - "default": "ms", - "description": "Select or enter a JDK distribution to install", - "proposals": [ - "ms", - "open", - "oracle", - "tem" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/ebaskoro/devcontainer-features/sdkman", - "ghcr.io/devcontainers/features/java" - ] -} \ No newline at end of file diff --git a/archive/src/visualvm-sdkman/install.sh b/archive/src/visualvm-sdkman/install.sh deleted file mode 100755 index 5508ef56e..000000000 --- a/archive/src/visualvm-sdkman/install.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.4.29" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='none' --option version='none' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/bash-command:1.0.0" \ - --option command='echo sdkman_auto_answer=true > ${SDKMAN_DIR}/etc/config' - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers/features/java:1.2.1" \ - --option jdkDistro="$JDKDISTRO" --option version="$JDKVERSION" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/ebaskoro/devcontainer-features/sdkman:1.0.0" \ - --option candidate='visualvm' --option version="$VERSION" - - -echo 'Done!' - diff --git a/archive/src/visualvm-sdkman/library_scripts.sh b/archive/src/visualvm-sdkman/library_scripts.sh deleted file mode 100644 index aa23c398d..000000000 --- a/archive/src/visualvm-sdkman/library_scripts.sh +++ /dev/null @@ -1,179 +0,0 @@ -#!/usr/bin/env bash - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - function _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - function _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - function _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - function _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - # normalize version - if ! [[ $required_version == v* ]]; then - required_version=v$required_version - fi - - local nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [[ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]]; then - if [[ -z "${NANOLAYER_CLI_LOCATION}" ]]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $nanolayer_location" - fi - - # make sure its of the required version - if ! [[ -z "${nanolayer_location}" ]]; then - local current_version - current_version=$($nanolayer_location --version) - if ! [[ $current_version == v* ]]; then - current_version=v$current_version - fi - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [[ -z "${nanolayer_location}" ]]; then - - if [ "$(uname -sm)" == "Linux x86_64" ] || [ "$(uname -sm)" == "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - declare -g ${variable_name}=$nanolayer_location - -} - - diff --git a/archive/src/volta/README.md b/archive/src/volta/README.md deleted file mode 100644 index 3ad2af637..000000000 --- a/archive/src/volta/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# Volta (via Github Releases) (volta) - -Volta is a hassle-free way to manage your JavaScript command-line tools. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/volta:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/volta/devcontainer-feature.json b/archive/src/volta/devcontainer-feature.json deleted file mode 100644 index 10a8a4997..000000000 --- a/archive/src/volta/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "volta", - "version": "1.0.5", - "name": "Volta (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/volta", - "description": "Volta is a hassle-free way to manage your JavaScript command-line tools.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/volta/install.sh b/archive/src/volta/install.sh deleted file mode 100755 index fdd04969c..000000000 --- a/archive/src/volta/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='volta-cli/volta' --option binaryNames='volta' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/volta/library_scripts.sh b/archive/src/volta/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/volta/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/src/xplr/README.md b/archive/src/xplr/README.md deleted file mode 100644 index 66f210033..000000000 --- a/archive/src/xplr/README.md +++ /dev/null @@ -1,24 +0,0 @@ - -# xplr (via Github Releases) (xplr) - -xplr is a terminal UI based file explorer that aims to increase our terminal productivity by being a flexible, interactive orchestrator for the ever growing awesome command-line utilities that work with the file-system. - -## Example Usage - -```json -"features": { - "ghcr.io/devcontainers-extra/features/xplr:1": {} -} -``` - -## Options - -| Options Id | Description | Type | Default Value | -|-----|-----|-----|-----| -| version | Select the version to install. | string | latest | - - - ---- - -_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/archive/src/xplr/devcontainer-feature.json b/archive/src/xplr/devcontainer-feature.json deleted file mode 100644 index d4b9b5ad1..000000000 --- a/archive/src/xplr/devcontainer-feature.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "id": "xplr", - "version": "1.0.9", - "name": "xplr (via Github Releases)", - "documentationURL": "http://github.com/devcontainers-extra/features/tree/main/src/xplr", - "description": "xplr is a terminal UI based file explorer that aims to increase our terminal productivity by being a flexible, interactive orchestrator for the ever growing awesome command-line utilities that work with the file-system.", - "options": { - "version": { - "default": "latest", - "description": "Select the version to install.", - "proposals": [ - "latest" - ], - "type": "string" - } - }, - "installsAfter": [ - "ghcr.io/devcontainers-extra/features/gh-release" - ] -} \ No newline at end of file diff --git a/archive/src/xplr/install.sh b/archive/src/xplr/install.sh deleted file mode 100755 index 9d6827354..000000000 --- a/archive/src/xplr/install.sh +++ /dev/null @@ -1,23 +0,0 @@ - -set -e - -. ./library_scripts.sh - -# nanolayer is a cli utility which keeps container layers as small as possible -# source code: https://github.com/devcontainers-extra/nanolayer -# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, -# and if missing - will download a temporary copy that automatically get deleted at the end -# of the script -ensure_nanolayer nanolayer_location "v0.5.4" - - -$nanolayer_location \ - install \ - devcontainer-feature \ - "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ - --option repo='sayanarijit/xplr' --option binaryNames='xplr' --option version="$VERSION" - - - -echo 'Done!' - diff --git a/archive/src/xplr/library_scripts.sh b/archive/src/xplr/library_scripts.sh deleted file mode 100644 index 9e1072eca..000000000 --- a/archive/src/xplr/library_scripts.sh +++ /dev/null @@ -1,172 +0,0 @@ - - -clean_download() { - # The purpose of this function is to download a file with minimal impact on container layer size - # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a - # temporary manner, and making sure to - # 1. uninstall the downloader at the return of the function - # 2. revert back any changes to the package installer database/cache (for example apt-get lists) - # The above steps will minimize the leftovers being created while installing the downloader - # Supported distros: - # debian/ubuntu/alpine - - url=$1 - output_location=$2 - tempdir=$(mktemp -d) - downloader_installed="" - - _apt_get_install() { - tempdir=$1 - - # copy current state of apt list - in order to revert back later (minimize contianer layer size) - cp -p -R /var/lib/apt/lists $tempdir - apt-get update -y - apt-get -y install --no-install-recommends wget ca-certificates - } - - _apt_get_cleanup() { - tempdir=$1 - - echo "removing wget" - apt-get -y purge wget --auto-remove - - echo "revert back apt lists" - rm -rf /var/lib/apt/lists/* - rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists - } - - _apk_install() { - tempdir=$1 - # copy current state of apk cache - in order to revert back later (minimize contianer layer size) - cp -p -R /var/cache/apk $tempdir - - apk add --no-cache wget - } - - _apk_cleanup() { - tempdir=$1 - - echo "removing wget" - apk del wget - } - # try to use either wget or curl if one of them already installer - if type curl >/dev/null 2>&1; then - downloader=curl - elif type wget >/dev/null 2>&1; then - downloader=wget - else - downloader="" - fi - - # in case none of them is installed, install wget temporarly - if [ -z $downloader ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_install $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_install $tempdir - else - echo "distro not supported" - exit 1 - fi - downloader="wget" - downloader_installed="true" - fi - - if [ $downloader = "wget" ] ; then - wget -q $url -O $output_location - else - curl -sfL $url -o $output_location - fi - - # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because - # alpine lack bash, and RETURN is not a valid signal under sh shell - if ! [ -z $downloader_installed ] ; then - if [ -x "/usr/bin/apt-get" ] ; then - _apt_get_cleanup $tempdir - elif [ -x "/sbin/apk" ] ; then - _apk_cleanup $tempdir - else - echo "distro not supported" - exit 1 - fi - fi - -} - - -ensure_nanolayer() { - # Ensure existance of the nanolayer cli program - local variable_name=$1 - - local required_version=$2 - - local __nanolayer_location="" - - # If possible - try to use an already installed nanolayer - if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then - if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then - if type nanolayer >/dev/null 2>&1; then - echo "Found a pre-existing nanolayer in PATH" - __nanolayer_location=nanolayer - fi - elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then - __nanolayer_location=${NANOLAYER_CLI_LOCATION} - echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" - fi - - # make sure its of the required version - if ! [ -z "${__nanolayer_location}" ]; then - local current_version - current_version=$($__nanolayer_location --version) - - - if ! [ $current_version == $required_version ]; then - echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" - __nanolayer_location="" - fi - fi - - fi - - # If not previuse installation found, download it temporarly and delete at the end of the script - if [ -z "${__nanolayer_location}" ]; then - - if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then - tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) - - clean_up () { - ARG=$? - rm -rf $tmp_dir - exit $ARG - } - trap clean_up EXIT - - - if [ -x "/sbin/apk" ] ; then - clib_type=musl - else - clib_type=gnu - fi - - tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz - - # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed - clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename - - tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" - chmod a+x $tmp_dir/nanolayer - __nanolayer_location=$tmp_dir/nanolayer - - - else - echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" - exit 1 - fi - fi - - # Expose outside the resolved location - export ${variable_name}=$__nanolayer_location - -} - - diff --git a/archive/test/age-keygen/scenarios.json b/archive/test/age-keygen/scenarios.json deleted file mode 100644 index 92b5cd5e5..000000000 --- a/archive/test/age-keygen/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "age-keygen": {} - } - } -} \ No newline at end of file diff --git a/archive/test/age-keygen/test_defaults_debian.sh b/archive/test/age-keygen/test_defaults_debian.sh deleted file mode 100755 index 1c4f55dae..000000000 --- a/archive/test/age-keygen/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "age-keygen --version" age-keygen --version - -reportResults diff --git a/archive/test/airplane-cli/scenarios.json b/archive/test/airplane-cli/scenarios.json deleted file mode 100644 index bd98758d7..000000000 --- a/archive/test/airplane-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "airplane-cli": {} - } - } -} \ No newline at end of file diff --git a/archive/test/airplane-cli/test_defaults_debian.sh b/archive/test/airplane-cli/test_defaults_debian.sh deleted file mode 100755 index 290c4de65..000000000 --- a/archive/test/airplane-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "airplane --version" airplane --version - -reportResults diff --git a/archive/test/bigcommerce-stencil-cli/scenarios.json b/archive/test/bigcommerce-stencil-cli/scenarios.json deleted file mode 100644 index 2b364c3d0..000000000 --- a/archive/test/bigcommerce-stencil-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "bigcommerce-stencil-cli": {} - } - } -} \ No newline at end of file diff --git a/archive/test/bigcommerce-stencil-cli/test.sh b/archive/test/bigcommerce-stencil-cli/test.sh deleted file mode 100755 index 047031435..000000000 --- a/archive/test/bigcommerce-stencil-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "stencil --version" stencil --version - -reportResults diff --git a/archive/test/bitwarden-cli/scenarios.json b/archive/test/bitwarden-cli/scenarios.json deleted file mode 100644 index f75114103..000000000 --- a/archive/test/bitwarden-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "bitwarden-cli": {} - } - } -} \ No newline at end of file diff --git a/archive/test/bitwarden-cli/test_defaults_debian.sh b/archive/test/bitwarden-cli/test_defaults_debian.sh deleted file mode 100755 index 1de312b66..000000000 --- a/archive/test/bitwarden-cli/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "bw --version" bw --version - -reportResults diff --git a/archive/test/boundary-asdf/scenarios.json b/archive/test/boundary-asdf/scenarios.json deleted file mode 100644 index 22ef48a29..000000000 --- a/archive/test/boundary-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "boundary-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/boundary-asdf/test.sh b/archive/test/boundary-asdf/test.sh deleted file mode 100755 index 59be98c67..000000000 --- a/archive/test/boundary-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "boundary version" boundary version - -reportResults diff --git a/archive/test/btm/scenarios.json b/archive/test/btm/scenarios.json deleted file mode 100644 index 56389dc03..000000000 --- a/archive/test/btm/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "btm": {} - } - } -} \ No newline at end of file diff --git a/archive/test/btm/test_defaults_debian.sh b/archive/test/btm/test_defaults_debian.sh deleted file mode 100755 index 374ce7dbb..000000000 --- a/archive/test/btm/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "btm --version" btm --version - -reportResults diff --git a/archive/test/cert-manager/scenarios.json b/archive/test/cert-manager/scenarios.json deleted file mode 100644 index 9feb361cb..000000000 --- a/archive/test/cert-manager/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cert-manager": {} - } - } -} \ No newline at end of file diff --git a/archive/test/cert-manager/test_defaults_debian.sh b/archive/test/cert-manager/test_defaults_debian.sh deleted file mode 100755 index 87efee488..000000000 --- a/archive/test/cert-manager/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cmctl --help" cmctl --help - -reportResults diff --git a/archive/test/cmctl-asdf/scenarios.json b/archive/test/cmctl-asdf/scenarios.json deleted file mode 100644 index da8d794cf..000000000 --- a/archive/test/cmctl-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cmctl-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/cmctl-asdf/test.sh b/archive/test/cmctl-asdf/test.sh deleted file mode 100755 index 87efee488..000000000 --- a/archive/test/cmctl-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cmctl --help" cmctl --help - -reportResults diff --git a/archive/test/codenotary-cas/scenarios.json b/archive/test/codenotary-cas/scenarios.json deleted file mode 100644 index 3e60646c4..000000000 --- a/archive/test/codenotary-cas/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "codenotary-cas": {} - } - } -} \ No newline at end of file diff --git a/archive/test/codenotary-cas/test_defaults_debian.sh b/archive/test/codenotary-cas/test_defaults_debian.sh deleted file mode 100755 index 38e226807..000000000 --- a/archive/test/codenotary-cas/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cas --version" cas --version - -reportResults diff --git a/archive/test/croc/scenarios.json b/archive/test/croc/scenarios.json deleted file mode 100644 index b1b85ceec..000000000 --- a/archive/test/croc/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "croc": {} - } - } -} \ No newline at end of file diff --git a/archive/test/croc/test_defaults_debian.sh b/archive/test/croc/test_defaults_debian.sh deleted file mode 100755 index f06642bfe..000000000 --- a/archive/test/croc/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "croc --version" croc --version - -reportResults diff --git a/archive/test/cue-asdf/scenarios.json b/archive/test/cue-asdf/scenarios.json deleted file mode 100644 index 24b4de8c9..000000000 --- a/archive/test/cue-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "cue-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/cue-asdf/test.sh b/archive/test/cue-asdf/test.sh deleted file mode 100755 index 1ad7327b1..000000000 --- a/archive/test/cue-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cue version" cue version - -reportResults diff --git a/archive/test/edge-impulse-cli/scenarios.json b/archive/test/edge-impulse-cli/scenarios.json deleted file mode 100644 index 6f45a3db5..000000000 --- a/archive/test/edge-impulse-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "edge-impulse-cli": {} - } - } -} \ No newline at end of file diff --git a/archive/test/edge-impulse-cli/test.sh b/archive/test/edge-impulse-cli/test.sh deleted file mode 100755 index a7a8b7bb2..000000000 --- a/archive/test/edge-impulse-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "edge-impulse-daemon --version" edge-impulse-daemon --version - -reportResults diff --git a/archive/test/elixir-asdf/scenarios.json b/archive/test/elixir-asdf/scenarios.json deleted file mode 100644 index a002ed79d..000000000 --- a/archive/test/elixir-asdf/scenarios.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "test_debian_11": { - "image": "mcr.microsoft.com/devcontainers/base:debian-11", - "features": { - "elixir-asdf": {} - } - }, - "test_debian_12": { - "image": "mcr.microsoft.com/devcontainers/base:debian-12", - "features": { - "elixir-asdf": {} - } - }, - "test_ubuntu_2004": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-20.04", - "features": { - "elixir-asdf": {} - } - }, - "test_ubuntu_2204": { - "image": "mcr.microsoft.com/devcontainers/base:ubuntu-22.04", - "features": { - "elixir-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/elixir-asdf/test_debian_11.sh b/archive/test/elixir-asdf/test_debian_11.sh deleted file mode 100755 index 0acf68669..000000000 --- a/archive/test/elixir-asdf/test_debian_11.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "elixir --version" elixir --version - -reportResults diff --git a/archive/test/elixir-asdf/test_debian_12.sh b/archive/test/elixir-asdf/test_debian_12.sh deleted file mode 100755 index 0acf68669..000000000 --- a/archive/test/elixir-asdf/test_debian_12.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "elixir --version" elixir --version - -reportResults diff --git a/archive/test/elixir-asdf/test_ubuntu_2004.sh b/archive/test/elixir-asdf/test_ubuntu_2004.sh deleted file mode 100755 index 0acf68669..000000000 --- a/archive/test/elixir-asdf/test_ubuntu_2004.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "elixir --version" elixir --version - -reportResults diff --git a/archive/test/elixir-asdf/test_ubuntu_2204.sh b/archive/test/elixir-asdf/test_ubuntu_2204.sh deleted file mode 100755 index 0acf68669..000000000 --- a/archive/test/elixir-asdf/test_ubuntu_2204.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "elixir --version" elixir --version - -reportResults diff --git a/archive/test/erlang-asdf/scenarios.json b/archive/test/erlang-asdf/scenarios.json deleted file mode 100644 index 5ba2815d5..000000000 --- a/archive/test/erlang-asdf/scenarios.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "test_debian_bullseye": { - "image": "debian:bullseye", - "features": { - "erlang-asdf": {} - } - }, - "test_ubuntu": { - "image": "ubuntu", - "features": { - "erlang-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/erlang-asdf/test.sh b/archive/test/erlang-asdf/test.sh deleted file mode 100755 index 3cb76489b..000000000 --- a/archive/test/erlang-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell" erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell - -reportResults diff --git a/archive/test/erlang-asdf/test_debian_bullseye.sh b/archive/test/erlang-asdf/test_debian_bullseye.sh deleted file mode 100755 index 3cb76489b..000000000 --- a/archive/test/erlang-asdf/test_debian_bullseye.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell" erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell - -reportResults diff --git a/archive/test/erlang-asdf/test_ubuntu.sh b/archive/test/erlang-asdf/test_ubuntu.sh deleted file mode 100755 index 3cb76489b..000000000 --- a/archive/test/erlang-asdf/test_ubuntu.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell" erl -eval '{ok, Version} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(Version), halt().' -noshell - -reportResults diff --git a/archive/test/ffmpeg-homebrew/scenarios.json b/archive/test/ffmpeg-homebrew/scenarios.json deleted file mode 100644 index 95d0f3941..000000000 --- a/archive/test/ffmpeg-homebrew/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ffmpeg-homebrew": {} - } - } -} \ No newline at end of file diff --git a/archive/test/ffmpeg-homebrew/test.sh b/archive/test/ffmpeg-homebrew/test.sh deleted file mode 100755 index b49360c4b..000000000 --- a/archive/test/ffmpeg-homebrew/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ffmpeg -version" ffmpeg -version - -reportResults diff --git a/archive/test/ko/scenarios.json b/archive/test/ko/scenarios.json deleted file mode 100644 index d389049bd..000000000 --- a/archive/test/ko/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ko": {} - } - } -} \ No newline at end of file diff --git a/archive/test/ko/test_defaults_debian.sh b/archive/test/ko/test_defaults_debian.sh deleted file mode 100755 index df3048c23..000000000 --- a/archive/test/ko/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "ko version" ko version - -reportResults diff --git a/archive/test/kubescape/scenarios.json b/archive/test/kubescape/scenarios.json deleted file mode 100644 index 2da561bab..000000000 --- a/archive/test/kubescape/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "kubescape": {} - } - } -} \ No newline at end of file diff --git a/archive/test/kubescape/test_defaults_debian.sh b/archive/test/kubescape/test_defaults_debian.sh deleted file mode 100755 index 635a6e4c2..000000000 --- a/archive/test/kubescape/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "kubescape version" kubescape version - -reportResults diff --git a/archive/test/mage/scenarios.json b/archive/test/mage/scenarios.json deleted file mode 100644 index 7e4fd6736..000000000 --- a/archive/test/mage/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mage": {} - } - } -} \ No newline at end of file diff --git a/archive/test/mage/test_defaults_debian.sh b/archive/test/mage/test_defaults_debian.sh deleted file mode 100755 index 0ad8554c0..000000000 --- a/archive/test/mage/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "mage --version" mage --version - -reportResults diff --git a/archive/test/meson-asdf/scenarios.json b/archive/test/meson-asdf/scenarios.json deleted file mode 100644 index db7945ade..000000000 --- a/archive/test/meson-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "meson-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/meson-asdf/test.sh b/archive/test/meson-asdf/test.sh deleted file mode 100755 index c37bdc89f..000000000 --- a/archive/test/meson-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "meson --version" meson --version - -reportResults diff --git a/archive/test/meteor-cli/scenarios.json b/archive/test/meteor-cli/scenarios.json deleted file mode 100644 index dc500eaa7..000000000 --- a/archive/test/meteor-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "meteor-cli": {} - } - } -} \ No newline at end of file diff --git a/archive/test/meteor-cli/test.sh b/archive/test/meteor-cli/test.sh deleted file mode 100755 index 4d7e1906d..000000000 --- a/archive/test/meteor-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "meteor --version" meteor --version - -reportResults diff --git a/archive/test/mlton-asdf/scenarios.json b/archive/test/mlton-asdf/scenarios.json deleted file mode 100644 index 0cdd3ff94..000000000 --- a/archive/test/mlton-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "mlton-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/mlton-asdf/test.sh b/archive/test/mlton-asdf/test.sh deleted file mode 100755 index 2430954f6..000000000 --- a/archive/test/mlton-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type mlton" type mlton - -reportResults diff --git a/archive/test/nushell/scenarios.json b/archive/test/nushell/scenarios.json deleted file mode 100644 index 4dee6b9ad..000000000 --- a/archive/test/nushell/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "nushell": {} - } - } -} \ No newline at end of file diff --git a/archive/test/nushell/test_defaults_debian.sh b/archive/test/nushell/test_defaults_debian.sh deleted file mode 100755 index 524e119f8..000000000 --- a/archive/test/nushell/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "nu --version" nu --version - -reportResults diff --git a/archive/test/ory-keto/scenarios.json b/archive/test/ory-keto/scenarios.json deleted file mode 100644 index 9dab462de..000000000 --- a/archive/test/ory-keto/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "ory-keto": {} - } - } -} \ No newline at end of file diff --git a/archive/test/ory-keto/test_defaults_debian.sh b/archive/test/ory-keto/test_defaults_debian.sh deleted file mode 100755 index 05ed428fa..000000000 --- a/archive/test/ory-keto/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "keto version" keto version - -reportResults diff --git a/archive/test/pip-audit/scenarios.json b/archive/test/pip-audit/scenarios.json deleted file mode 100644 index ddd1d41c6..000000000 --- a/archive/test/pip-audit/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "pip-audit": {} - } - } -} \ No newline at end of file diff --git a/archive/test/pip-audit/test_defaults.sh b/archive/test/pip-audit/test_defaults.sh deleted file mode 100755 index d725c54c4..000000000 --- a/archive/test/pip-audit/test_defaults.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "pip-audit --version" pip-audit --version - -reportResults diff --git a/archive/test/porter/install_mixins.sh b/archive/test/porter/install_mixins.sh deleted file mode 100755 index f9ef7b117..000000000 --- a/archive/test/porter/install_mixins.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -echo "User: $(id)" -ls -al "$PORTER_HOME" - -check "porter --version" porter --version - -# Exec mixin should be installed by default -check "exec mixin installed" "$PORTER_HOME"/mixins/exec/exec version -check "terraform mixin installed" "$PORTER_HOME"/mixins/terraform/terraform version -check "az mixin installed" "$PORTER_HOME"/mixins/az/az version -check "docker mixin installed" "$PORTER_HOME"/mixins/docker/docker version -check "docker-compose mixin installed" "$PORTER_HOME"/mixins/docker-compose/docker-compose version -check "gcloud mixin installed" "$PORTER_HOME"/mixins/gcloud/gcloud version -check "helm mixin installed" "$PORTER_HOME"/mixins/helm/helm version -check "arm mixin installed" "$PORTER_HOME"/mixins/arm/arm version -check "azure plugin installed" "$PORTER_HOME"/plugins/azure/azure version -check "kubernetes plugin installed" "$PORTER_HOME"/plugins/kubernetes/kubernetes version - -reportResults diff --git a/archive/test/porter/scenarios.json b/archive/test/porter/scenarios.json deleted file mode 100644 index 740de6f5b..000000000 --- a/archive/test/porter/scenarios.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "install_mixins": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "porter": { - "terraformMixinVersion": "latest", - "azMixinVersion": "latest", - "awsMixinVersion": "latest", - "dockerMixinVersion": "latest", - "dockerComposeMixinVersion": "latest", - "gcloudMixinVersion": "latest", - "helmMixinVersion": "latest", - "armMixinVersion": "latest", - "azurePluginVersion": "latest", - "kubernetesPluginVersion": "latest" - } - }, - // This will fail if you use `vscode` - "remoteUser": 1000 - } -} \ No newline at end of file diff --git a/archive/test/porter/test.sh b/archive/test/porter/test.sh deleted file mode 100755 index b1b7ea9b8..000000000 --- a/archive/test/porter/test.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "porter --version" porter --version - -# Exec mixin should be installed by default -check "exec mixin installed" "$PORTER_HOME"/mixins/exec/exec version - -check "List all mixins" "$PORTER_HOME"/porter mixins list - -reportResults diff --git a/archive/test/postgres-asdf/scenarios.json b/archive/test/postgres-asdf/scenarios.json deleted file mode 100644 index 02edad776..000000000 --- a/archive/test/postgres-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "postgres-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/postgres-asdf/test.sh b/archive/test/postgres-asdf/test.sh deleted file mode 100755 index 58f585555..000000000 --- a/archive/test/postgres-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "postgres -V" postgres -V - -reportResults diff --git a/archive/test/rabbitmq-asdf/scenarios.json b/archive/test/rabbitmq-asdf/scenarios.json deleted file mode 100644 index d421d6e0e..000000000 --- a/archive/test/rabbitmq-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "debian:bullseye", - "features": { - "rabbitmq-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/rabbitmq-asdf/test.sh b/archive/test/rabbitmq-asdf/test.sh deleted file mode 100755 index 5078e6637..000000000 --- a/archive/test/rabbitmq-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "rabbitmqctl --version" rabbitmqctl --version - -reportResults diff --git a/archive/test/scala-asdf/scenarios.json b/archive/test/scala-asdf/scenarios.json deleted file mode 100644 index 6651cfc37..000000000 --- a/archive/test/scala-asdf/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "scala-asdf": {} - } - } -} \ No newline at end of file diff --git a/archive/test/scala-asdf/test.sh b/archive/test/scala-asdf/test.sh deleted file mode 100755 index fae977bba..000000000 --- a/archive/test/scala-asdf/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "scala --version" scala --version - -reportResults diff --git a/archive/test/serverless/scenarios.json b/archive/test/serverless/scenarios.json deleted file mode 100644 index 0c34f2d3d..000000000 --- a/archive/test/serverless/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "serverless": {} - } - } -} \ No newline at end of file diff --git a/archive/test/serverless/test.sh b/archive/test/serverless/test.sh deleted file mode 100755 index 52c158a7e..000000000 --- a/archive/test/serverless/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "serverless --version" serverless --version - -reportResults diff --git a/archive/test/sqlfmt/scenarios.json b/archive/test/sqlfmt/scenarios.json deleted file mode 100644 index e43bbc93f..000000000 --- a/archive/test/sqlfmt/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "sqlfmt": {} - } - } -} \ No newline at end of file diff --git a/archive/test/sqlfmt/test.sh b/archive/test/sqlfmt/test.sh deleted file mode 100755 index 629713c6c..000000000 --- a/archive/test/sqlfmt/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "sqlfmt --version" sqlfmt --version - -reportResults diff --git a/archive/test/syncthing/scenarios.json b/archive/test/syncthing/scenarios.json deleted file mode 100644 index 0487fb4cf..000000000 --- a/archive/test/syncthing/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "syncthing": {} - } - } -} \ No newline at end of file diff --git a/archive/test/syncthing/test_defaults_debian.sh b/archive/test/syncthing/test_defaults_debian.sh deleted file mode 100755 index 422ff782a..000000000 --- a/archive/test/syncthing/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "syncthing --version" syncthing --version - -reportResults diff --git a/archive/test/tfcdk-cli/scenarios.json b/archive/test/tfcdk-cli/scenarios.json deleted file mode 100644 index 19a1e25cf..000000000 --- a/archive/test/tfcdk-cli/scenarios.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "tfcdk-cli": {} - } - }, - "test_specific_version": { - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "tfcdk-cli": { - "version": "0.17.0" - } - } - } -} \ No newline at end of file diff --git a/archive/test/tfcdk-cli/test.sh b/archive/test/tfcdk-cli/test.sh deleted file mode 100755 index 0850e7a7c..000000000 --- a/archive/test/tfcdk-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cdktf --version" cdktf --version - -reportResults diff --git a/archive/test/tfcdk-cli/test_specific_version.sh b/archive/test/tfcdk-cli/test_specific_version.sh deleted file mode 100755 index 6378b1618..000000000 --- a/archive/test/tfcdk-cli/test_specific_version.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "cdktf --version | grep 0.17.0" cdktf --version | grep 0.17.0 - -reportResults diff --git a/archive/test/trello-cli/scenarios.json b/archive/test/trello-cli/scenarios.json deleted file mode 100644 index d3b48c8a3..000000000 --- a/archive/test/trello-cli/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "trello-cli": {} - } - } -} \ No newline at end of file diff --git a/archive/test/trello-cli/test.sh b/archive/test/trello-cli/test.sh deleted file mode 100755 index 5454bee23..000000000 --- a/archive/test/trello-cli/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "type trello" type trello - -reportResults diff --git a/archive/test/trivy/scenarios.json b/archive/test/trivy/scenarios.json deleted file mode 100644 index b56f11db8..000000000 --- a/archive/test/trivy/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "trivy": {} - } - } -} \ No newline at end of file diff --git a/archive/test/trivy/test_defaults_debian.sh b/archive/test/trivy/test_defaults_debian.sh deleted file mode 100755 index 74f1624c7..000000000 --- a/archive/test/trivy/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "trivy --version" trivy --version - -reportResults diff --git a/archive/test/vertx-sdkman/scenarios.json b/archive/test/vertx-sdkman/scenarios.json deleted file mode 100644 index 74fc5ff4a..000000000 --- a/archive/test/vertx-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "vertx-sdkman": {} - } - } -} \ No newline at end of file diff --git a/archive/test/vertx-sdkman/test.sh b/archive/test/vertx-sdkman/test.sh deleted file mode 100755 index ef59e4afa..000000000 --- a/archive/test/vertx-sdkman/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "vertx --version" vertx --version - -reportResults diff --git a/archive/test/visualvm-sdkman/scenarios.json b/archive/test/visualvm-sdkman/scenarios.json deleted file mode 100644 index f857181cf..000000000 --- a/archive/test/visualvm-sdkman/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "visualvm-sdkman": {} - } - } -} \ No newline at end of file diff --git a/archive/test/visualvm-sdkman/test.sh b/archive/test/visualvm-sdkman/test.sh deleted file mode 100755 index b0f4a35f4..000000000 --- a/archive/test/visualvm-sdkman/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "visualvm --version" visualvm --version - -reportResults diff --git a/archive/test/volta/scenarios.json b/archive/test/volta/scenarios.json deleted file mode 100644 index f7f4d008d..000000000 --- a/archive/test/volta/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "volta": {} - } - } -} \ No newline at end of file diff --git a/archive/test/volta/test_defaults_debian.sh b/archive/test/volta/test_defaults_debian.sh deleted file mode 100755 index a7ea986d5..000000000 --- a/archive/test/volta/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "volta --version" volta --version - -reportResults diff --git a/archive/test/xplr/scenarios.json b/archive/test/xplr/scenarios.json deleted file mode 100644 index 62163f387..000000000 --- a/archive/test/xplr/scenarios.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "test_defaults_debian": { - "image": "mcr.microsoft.com/devcontainers/base:debian", - "features": { - "xplr": {} - } - } -} \ No newline at end of file diff --git a/archive/test/xplr/test_defaults_debian.sh b/archive/test/xplr/test_defaults_debian.sh deleted file mode 100755 index 780562d72..000000000 --- a/archive/test/xplr/test_defaults_debian.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -set -e - -source dev-container-features-test-lib - -check "xplr --version" xplr --version - -reportResults From d42d3c4825f065720f7ff37e9b181325cc462e67 Mon Sep 17 00:00:00 2001 From: kvokka Date: Sun, 30 Mar 2025 06:35:32 +0700 Subject: [PATCH 4/8] Bump version of pre-commit --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a4a0bf27b..e0a1912d8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,7 @@ --- repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v2.3.0 + rev: v5.0.0 hooks: - id: check-yaml - id: trailing-whitespace \ No newline at end of file From e1f0eba3399d5fb09de372305d405867967c1490 Mon Sep 17 00:00:00 2001 From: kvokka Date: Sun, 30 Mar 2025 06:42:31 +0700 Subject: [PATCH 5/8] Improve documentation of the project --- CONTRIBUTING.md | 4 ++-- LICENSE | 2 +- README.md | 7 ++++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c9f75f0df..4c95d404e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ -# Contributing to devcontainers-extra/features +# Contributing to kvokka/features -Thank you for considering contributing to the devcontainers-extra/features repository! We appreciate your time and effort in helping us improve this project. Below are the guidelines for contributing new features to the repository. +Thank you for considering contributing to the kvokka/features repository! We appreciate your time and effort in helping us improve this project. Below are the guidelines for contributing new features to the repository. ## Adding a New Feature diff --git a/LICENSE b/LICENSE index 9abfedbcb..adbf837e6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 devcontainers-extra +Copyright (c) 2024 kvokka Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 4b130e0ce..023f6a6f6 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,13 @@ [devcontainers](https://code.visualstudio.com/docs/devcontainers/containers) and [GitHub Codespaces](https://github.com/features/codespaces) -👀 Don't see your feature here? [🔥 Suggest a new feature! 🔥](https://github.com/devcontainers-extra/features/issues/new?template=suggest-feature.yaml) or [📄 Learn how to add one! 📄](CONTRIBUTING.md) \ -🔍 Found a bug? [🐞 Open a bug report! 🐞](https://github.com/devcontainers-extra/features/issues/new?template=feature-bug-report.yaml) +👀 Don't see your feature here? [🔥 Suggest a new feature! 🔥](https://github.com/kvokka/features/issues/new?template=suggest-feature.yaml) or [📄 Learn how to add one! 📄](CONTRIBUTING.md) \ +🔍 Found a bug? [🐞 Open a bug report! 🐞](https://github.com/kvokka/features/issues/new?template=feature-bug-report.yaml) ## About This Fork -This repository is a continuation of the [devcontainers-contrib/features](https://github.com/devcontainers-contrib/features) project, initially developed by [danielbraun89](https://github.com/danielbraun89). The fork was created to maintain and enhance the project due to inactivity in the original repository. +This repository is a continuation of the [devcontainers-extra/features](https://github.com/devcontainers-extra/features) project. The fork was created to manage own +features, keeping the structure and ideas from the initial fork. > [!NOTE] > This project is not officially associated with or endorsed by the official [Devcontainers](https://containers.dev/) project From c3e3b25aa65d9138b93be975537844e0606573a0 Mon Sep 17 00:00:00 2001 From: kvokka Date: Mon, 31 Mar 2025 06:45:36 +0700 Subject: [PATCH 6/8] Add codegpt feature --- src/codegpt/README.md | 24 ++++ src/codegpt/devcontainer-feature.json | 20 +++ src/codegpt/install.sh | 24 ++++ src/codegpt/library_scripts.sh | 172 ++++++++++++++++++++++++++ test/codegpt/scenarios.json | 16 +++ test/codegpt/test_defaults_debian.sh | 9 ++ test/codegpt/test_specific_version.sh | 9 ++ 7 files changed, 274 insertions(+) create mode 100644 src/codegpt/README.md create mode 100644 src/codegpt/devcontainer-feature.json create mode 100755 src/codegpt/install.sh create mode 100644 src/codegpt/library_scripts.sh create mode 100644 test/codegpt/scenarios.json create mode 100755 test/codegpt/test_defaults_debian.sh create mode 100755 test/codegpt/test_specific_version.sh diff --git a/src/codegpt/README.md b/src/codegpt/README.md new file mode 100644 index 000000000..d153005c5 --- /dev/null +++ b/src/codegpt/README.md @@ -0,0 +1,24 @@ + +# CodeGPT (via Github Releases) (codegpt) + +A [CLI tool](https://github.com/appleboy/CodeGPT) written in Go that generates +git commit messages or provides code review summaries using ChatGPT AI (gpt-4o, +gpt-4 model). It also automatically installs a git prepare-commit-msg hook. + +## Example Usage + +```json +"features": { + "ghcr.io/kvokka/features/codegpt:1": {} +} +``` + +## Options + +| Options Id | Description | Type | Default Value | +|-----|-----|-----|-----| +| version | Select the version to install. | string | latest | + +--- + +_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/codegpt/devcontainer-feature.json b/src/codegpt/devcontainer-feature.json new file mode 100644 index 000000000..1441fdc2a --- /dev/null +++ b/src/codegpt/devcontainer-feature.json @@ -0,0 +1,20 @@ +{ + "id": "codegpt", + "version": "1.0.0", + "name": "codegpt (via Github Releases)", + "documentationURL": "http://github.com/kvokka/features/tree/main/src/codegpt", + "description": "CodeGPT is an open source CLI tool that generates git commit messages or provides code review summaries.", + "options": { + "version": { + "default": "latest", + "description": "Select the version to install.", + "proposals": [ + "latest" + ], + "type": "string" + } + }, + "installsAfter": [ + "ghcr.io/devcontainers-extra/features/gh-release" + ] +} \ No newline at end of file diff --git a/src/codegpt/install.sh b/src/codegpt/install.sh new file mode 100755 index 000000000..aa5a21b6e --- /dev/null +++ b/src/codegpt/install.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -e + +. ./library_scripts.sh + +# nanolayer is a cli utility which keeps container layers as small as possible +# source code: https://github.com/devcontainers-extra/nanolayer +# `ensure_nanolayer` is a bash function that will find any existing nanolayer installations, +# and if missing - will download a temporary copy that automatically get deleted at the end +# of the script +ensure_nanolayer nanolayer_location "v0.5.6" + +$nanolayer_location \ + install \ + devcontainer-feature \ + "ghcr.io/devcontainers-extra/features/gh-release:1.0.25" \ + --verbose \ + --option repo='appleboy/CodeGPT' \ + --option binaryNames='codegpt' \ + --option version="$VERSION" \ + --option assetRegex='^CodeGPT-.*(amd64|arm64|arm-5|arm-6|arm-7)$' + +echo 'Done!' diff --git a/src/codegpt/library_scripts.sh b/src/codegpt/library_scripts.sh new file mode 100644 index 000000000..9e1072eca --- /dev/null +++ b/src/codegpt/library_scripts.sh @@ -0,0 +1,172 @@ + + +clean_download() { + # The purpose of this function is to download a file with minimal impact on container layer size + # this means if no valid downloader is found (curl or wget) then we install a downloader (currently wget) in a + # temporary manner, and making sure to + # 1. uninstall the downloader at the return of the function + # 2. revert back any changes to the package installer database/cache (for example apt-get lists) + # The above steps will minimize the leftovers being created while installing the downloader + # Supported distros: + # debian/ubuntu/alpine + + url=$1 + output_location=$2 + tempdir=$(mktemp -d) + downloader_installed="" + + _apt_get_install() { + tempdir=$1 + + # copy current state of apt list - in order to revert back later (minimize contianer layer size) + cp -p -R /var/lib/apt/lists $tempdir + apt-get update -y + apt-get -y install --no-install-recommends wget ca-certificates + } + + _apt_get_cleanup() { + tempdir=$1 + + echo "removing wget" + apt-get -y purge wget --auto-remove + + echo "revert back apt lists" + rm -rf /var/lib/apt/lists/* + rm -r /var/lib/apt/lists && mv $tempdir/lists /var/lib/apt/lists + } + + _apk_install() { + tempdir=$1 + # copy current state of apk cache - in order to revert back later (minimize contianer layer size) + cp -p -R /var/cache/apk $tempdir + + apk add --no-cache wget + } + + _apk_cleanup() { + tempdir=$1 + + echo "removing wget" + apk del wget + } + # try to use either wget or curl if one of them already installer + if type curl >/dev/null 2>&1; then + downloader=curl + elif type wget >/dev/null 2>&1; then + downloader=wget + else + downloader="" + fi + + # in case none of them is installed, install wget temporarly + if [ -z $downloader ] ; then + if [ -x "/usr/bin/apt-get" ] ; then + _apt_get_install $tempdir + elif [ -x "/sbin/apk" ] ; then + _apk_install $tempdir + else + echo "distro not supported" + exit 1 + fi + downloader="wget" + downloader_installed="true" + fi + + if [ $downloader = "wget" ] ; then + wget -q $url -O $output_location + else + curl -sfL $url -o $output_location + fi + + # NOTE: the cleanup procedure was not implemented using `trap X RETURN` only because + # alpine lack bash, and RETURN is not a valid signal under sh shell + if ! [ -z $downloader_installed ] ; then + if [ -x "/usr/bin/apt-get" ] ; then + _apt_get_cleanup $tempdir + elif [ -x "/sbin/apk" ] ; then + _apk_cleanup $tempdir + else + echo "distro not supported" + exit 1 + fi + fi + +} + + +ensure_nanolayer() { + # Ensure existance of the nanolayer cli program + local variable_name=$1 + + local required_version=$2 + + local __nanolayer_location="" + + # If possible - try to use an already installed nanolayer + if [ -z "${NANOLAYER_FORCE_CLI_INSTALLATION}" ]; then + if [ -z "${NANOLAYER_CLI_LOCATION}" ]; then + if type nanolayer >/dev/null 2>&1; then + echo "Found a pre-existing nanolayer in PATH" + __nanolayer_location=nanolayer + fi + elif [ -f "${NANOLAYER_CLI_LOCATION}" ] && [ -x "${NANOLAYER_CLI_LOCATION}" ] ; then + __nanolayer_location=${NANOLAYER_CLI_LOCATION} + echo "Found a pre-existing nanolayer which were given in env variable: $__nanolayer_location" + fi + + # make sure its of the required version + if ! [ -z "${__nanolayer_location}" ]; then + local current_version + current_version=$($__nanolayer_location --version) + + + if ! [ $current_version == $required_version ]; then + echo "skipping usage of pre-existing nanolayer. (required version $required_version does not match existing version $current_version)" + __nanolayer_location="" + fi + fi + + fi + + # If not previuse installation found, download it temporarly and delete at the end of the script + if [ -z "${__nanolayer_location}" ]; then + + if [ "$(uname -sm)" = 'Linux x86_64' ] || [ "$(uname -sm)" = "Linux aarch64" ]; then + tmp_dir=$(mktemp -d -t nanolayer-XXXXXXXXXX) + + clean_up () { + ARG=$? + rm -rf $tmp_dir + exit $ARG + } + trap clean_up EXIT + + + if [ -x "/sbin/apk" ] ; then + clib_type=musl + else + clib_type=gnu + fi + + tar_filename=nanolayer-"$(uname -m)"-unknown-linux-$clib_type.tgz + + # clean download will minimize leftover in case a downloaderlike wget or curl need to be installed + clean_download https://github.com/devcontainers-extra/nanolayer/releases/download/$required_version/$tar_filename $tmp_dir/$tar_filename + + tar xfzv $tmp_dir/$tar_filename -C "$tmp_dir" + chmod a+x $tmp_dir/nanolayer + __nanolayer_location=$tmp_dir/nanolayer + + + else + echo "No binaries compiled for non-x86-linux architectures yet: $(uname -m)" + exit 1 + fi + fi + + # Expose outside the resolved location + export ${variable_name}=$__nanolayer_location + +} + + diff --git a/test/codegpt/scenarios.json b/test/codegpt/scenarios.json new file mode 100644 index 000000000..995b5efbb --- /dev/null +++ b/test/codegpt/scenarios.json @@ -0,0 +1,16 @@ +{ + "test_defaults_debian": { + "image": "mcr.microsoft.com/devcontainers/base:debian", + "features": { + "codegpt": {} + } + }, + "test_specific_version": { + "image": "mcr.microsoft.com/devcontainers/base:debian", + "features": { + "codegpt": { + "version": "0.16.0" + } + } + } +} \ No newline at end of file diff --git a/test/codegpt/test_defaults_debian.sh b/test/codegpt/test_defaults_debian.sh new file mode 100755 index 000000000..f33d36fcc --- /dev/null +++ b/test/codegpt/test_defaults_debian.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e + +source dev-container-features-test-lib + +check "codegpt --version" codegpt version + +reportResults diff --git a/test/codegpt/test_specific_version.sh b/test/codegpt/test_specific_version.sh new file mode 100755 index 000000000..9ec0bb747 --- /dev/null +++ b/test/codegpt/test_specific_version.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e + +source dev-container-features-test-lib + +check "codegpt version is equal to 0.16.0" sh -c "codegpt version | grep '0.16.0'" + +reportResults From 826230b45c202d64a1c3c33c6c8e05fb53da81eb Mon Sep 17 00:00:00 2001 From: kvokka Date: Mon, 31 Mar 2025 07:20:53 +0700 Subject: [PATCH 7/8] Move Readme to local features --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 023f6a6f6..8b0cbe8c2 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,8 @@ of an `options` object. { "image": "mcr.microsoft.com/devcontainers/base:bookworm", "features": { - "ghcr.io/devcontainers-extra/features/deno": {}, - "ghcr.io/devcontainers-extra/features/neovim": {} + "ghcr.io/kvokka/features/lumen": {}, + "ghcr.io/kvokka/features/codegpt": {} } } ``` From b53b9c4627bbd7f34affd389e6e4260ff70da3e1 Mon Sep 17 00:00:00 2001 From: kvokka Date: Mon, 31 Mar 2025 08:10:13 +0700 Subject: [PATCH 8/8] Add aicommit2 feature --- src/aicommit2/README.md | 23 +++++++++++++++++++++++ src/aicommit2/devcontainer-feature.json | 20 ++++++++++++++++++++ src/aicommit2/install.sh | 5 +++++ test/aicommit2/scenarios.json | 16 ++++++++++++++++ test/aicommit2/test_defaults_debian.sh | 9 +++++++++ test/aicommit2/test_specific_version.sh | 9 +++++++++ 6 files changed, 82 insertions(+) create mode 100644 src/aicommit2/README.md create mode 100644 src/aicommit2/devcontainer-feature.json create mode 100755 src/aicommit2/install.sh create mode 100644 test/aicommit2/scenarios.json create mode 100755 test/aicommit2/test_defaults_debian.sh create mode 100755 test/aicommit2/test_specific_version.sh diff --git a/src/aicommit2/README.md b/src/aicommit2/README.md new file mode 100644 index 000000000..f26c9061f --- /dev/null +++ b/src/aicommit2/README.md @@ -0,0 +1,23 @@ + +# aicommit2 (via npm) + +A [CLI tool](https://github.com/tak-bro/aicommit2) that generates git commit +messages with Ollama, ChatGPT, Gemini, Claude, Mistral and other AI. + +## Example Usage + +```json +"features": { + "ghcr.io/kvokka/features/aicommit2:1": {} +} +``` + +## Options + +| Options Id | Description | Type | Default Value | +|-----|-----|-----|-----| +| version | Select the version to install. | string | latest | + +--- + +_Note: This file was auto-generated from the [devcontainer-feature.json](devcontainer-feature.json). Add additional notes to a `NOTES.md`._ diff --git a/src/aicommit2/devcontainer-feature.json b/src/aicommit2/devcontainer-feature.json new file mode 100644 index 000000000..ab919757b --- /dev/null +++ b/src/aicommit2/devcontainer-feature.json @@ -0,0 +1,20 @@ +{ + "id": "aicommit2", + "version": "1.0.0", + "name": "aicommit2 (via npm)", + "documentationURL": "http://github.com/kvokka/features/tree/main/src/aicommit2", + "description": "aicommit2 is reactive CLI that generates git commit messages with Ollama, ChatGPT, Gemini, Claude, Mistral and other AI.", + "options": { + "version": { + "default": "latest", + "description": "Select the version to install.", + "proposals": [ + "latest" + ], + "type": "string" + } + }, + "dependsOn": { + "ghcr.io/devcontainers/features/node:1": {} + } +} \ No newline at end of file diff --git a/src/aicommit2/install.sh b/src/aicommit2/install.sh new file mode 100755 index 000000000..523cb330b --- /dev/null +++ b/src/aicommit2/install.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -e + +npm install -g "aicommit2@${VERSION}" diff --git a/test/aicommit2/scenarios.json b/test/aicommit2/scenarios.json new file mode 100644 index 000000000..0c1ee295d --- /dev/null +++ b/test/aicommit2/scenarios.json @@ -0,0 +1,16 @@ +{ + "test_defaults_debian": { + "image": "mcr.microsoft.com/devcontainers/base:debian", + "features": { + "aicommit2": {} + } + }, + "test_specific_version": { + "image": "mcr.microsoft.com/devcontainers/base:debian", + "features": { + "aicommit2": { + "version": "2.2.0" + } + } + } +} \ No newline at end of file diff --git a/test/aicommit2/test_defaults_debian.sh b/test/aicommit2/test_defaults_debian.sh new file mode 100755 index 000000000..34f9d3b5e --- /dev/null +++ b/test/aicommit2/test_defaults_debian.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e + +source dev-container-features-test-lib + +check "aicommit2 --version" aicommit2 --version + +reportResults diff --git a/test/aicommit2/test_specific_version.sh b/test/aicommit2/test_specific_version.sh new file mode 100755 index 000000000..f040fda0a --- /dev/null +++ b/test/aicommit2/test_specific_version.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -e + +source dev-container-features-test-lib + +check "aicommit2 version is equal to 2.2.0" sh -c "aicommit2 --version | grep '2.2.0'" + +reportResults