Giter VIP home page Giter VIP logo

shell-versions's Introduction

alganet/shell-versions

Docker Build

Multiple versions of multiple shells. Ideal for testing portable shell scripts.

Images

  • latest - Contains the two most recent versions of each shell. Ideal for testing up to date scripts.
  • all - Everything we can build in a single image. Ideal for testing legacy and backwards compatible scripts.

You can list the shells in your image:

$ docker run -it --rm alganet/shell-versions find /opt -type f
/opt/bash_5.2.15/bin/bash
/opt/dash_0.5.11/bin/dash
...

And run them by choosing a version:

$ docker run -it --rm alganet/shell-versions /opt/bash_5.2.15/bin/bash -c "echo hello there"
hello there

Building Locally

You can pass a list of versions to TARGETS= or use sh shvr.sh [current|targets] to let the script generate a list for you:

$ docker build -t "mymultishell" --build-arg TARGETS="$(sh shvr.sh targets)" .
$ docker run -it --rm "mymultishell" ls /opt

shell-versions's People

Contributors

alganet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

shell-versions's Issues

Setup the default entrypoint/PATH for single shell images

There are two kinds of images on this project:

  • Images that provide multiple shells
  • Images that provide a single shell

On images that provide a single shell, we should export that shell binary as the docker entrypoint.

The paths for the shells also should be available on the PATH.

Automatic version list

Current version list is maintained manually in .github/workflows/docker.yml.

We need:

  • Scripts to fetch the version list for all shells
  • A way to update docker.yml with the information from the version list fetched automatically
  • Automatic tag management (update -latest tags, remove -latest from old ones, etc)

Source signature/checksum verification

We download a couple of sources from projects that provide signing, we should be able to check those upon building. For projects that don't provide it, a checksum verification of the tarball/sources should be done instead.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.