From 6d0bf0957f1f09436470cef8c9fd40a0ebfbb233 Mon Sep 17 00:00:00 2001 From: Dietrich Rink Date: Sat, 10 Jun 2023 15:50:08 +0200 Subject: [PATCH] add ability to build local variants from a ./.code directory --- build.sh | 12 ++++++++++-- code | 11 +++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/build.sh b/build.sh index 4e1ca31..92c0f78 100755 --- a/build.sh +++ b/build.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s extglob -cd "$(dirname "$0")" +readonly DIR="$(cd "$(dirname "$0")"; pwd)" if (( $# == 0 )); then readonly images=(core basic !(template|core|basic)/) @@ -11,5 +11,13 @@ else fi for image in "${images[@]}"; do - podman build -t "code-${image%/}" -f "${image%/}/Containerfile" + if [[ "$image" == '.' ]]; then + tag="$(basename "$(pwd)")" + contdir='.code' + else + tag="$image" + contdir="$DIR/${image%/}" + fi + + podman build -t "code-${tag}" -f "${contdir}/Containerfile" done diff --git a/code b/code index 6f9fc11..186de44 100755 --- a/code +++ b/code @@ -25,19 +25,18 @@ readonly DIR="$(dirname "$(readlink -f -- "$0")")" ports=() loopback=false variant="$DEFAULT_VARIANT" +variants=($( + podman image list code- -n | sed -n 's|^[^ ]\+/code-\([^ ]\+\) .*|\1|p' +)) for arg in "$@"; do case "$arg" in --publish ) shift; ports+=("$1");; --loopback ) loopback=true;; - --variants ) - for f in "$DIR"/*; do - [[ "$f" == */template || ! -d "$f" ]] || echo "${f##*/}"; - done - exit;; + --variants ) printf '%s\n' "${variants[@]}"; exit;; -h | --help ) echo >&2 "$HELP"; exit;; --* ) - if [[ ! -d "${DIR}/${arg#--}" ]]; then break; fi + [[ " ${variants[*]} " == *" ${arg#--} "* ]] || break variant="${arg#--}";; * ) break;; esac