From 7f2767c0f8af42b300bd36586c6d852462d62031 Mon Sep 17 00:00:00 2001 From: Christophe Garion <tofgarion@runbox.com> Date: Thu, 23 Feb 2023 11:54:56 +0100 Subject: [PATCH] [scripts] refactor script to launch docker --- rundocker.sh | 11 --------- scripts/rundocker.sh | 59 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 11 deletions(-) delete mode 100644 rundocker.sh create mode 100644 scripts/rundocker.sh diff --git a/rundocker.sh b/rundocker.sh deleted file mode 100644 index fa1b0749..00000000 --- a/rundocker.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -containerId=leliobrun/lustrec-env - -command -v docker >/dev/null 2>&1 || { \ - echo >&2 "docker is required but could not be found. Aborting."; \ - echo >&2 "To setup Docker: https://docs.docker.com/engine/getstarted/step_one/"; \ - exit 1; } - -docker run -it --rm --user $(id -u):$(id -g)\ - -v $PWD:/home/opam/lustrec $containerId $1 diff --git a/scripts/rundocker.sh b/scripts/rundocker.sh new file mode 100644 index 00000000..361e87e2 --- /dev/null +++ b/scripts/rundocker.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +# shell script to launch LustreC docker, mainly for launching tests +# see the usage function for more explanations + +# usage function +usage () { + echo "Usage: " $0 " [-h|--help] [-i|--id ID] [-t|--tmp TMP_DIR] [options passed to docker]" + echo " Run a docker instance named \"lustrec_docker\" built with image " $CONTAINER_ID " by default." + echo " Available options:" + echo " - [-i|--id ID] | change container image ID" + echo " - [-t|--tmp TMP_DIR] | change binding for /tmp dir in container. Default to /tmp" + exit 1 +} + +# default values +CONTAINER_ID=leliobrun/lustrec-env +TMP_DIR=/tmp + +# use getopt to get arguments +TEMP=$(getopt -o 'hi:t:' --long 'help,id:,tmp:' -n 'rundocker.sh' -- "$@") + +eval set -- "$TEMP" +unset TEMP + +# main loop to get arguments +while true; do + case "$1" in + '-h'|'--help') + usage + ;; + '-i'|'--id') + CONTAINER_ID="$2" + shift 2 + continue + ;; + '-t'|'--tmp') + TMP_DIR="$2" + shift 2 + continue + ;; + *) + shift + break + ;; + esac +done + +# check if docker is available +command -v docker >/dev/null 2>&1 || { \ + echo >&2 "docker is required but could not be found. Aborting."; \ + echo >&2 "To setup Docker: https://docs.docker.com/engine/getstarted/step_one/"; \ + exit 1; } + +# launch docker +docker run -it --rm --user $(id -u):$(id -g)\ + -name "lustrec_docker" \ + -v ${TMP_DIR}:/tmp -v ${PWD}:/home/opam/lustrec \ + ${CONTAINER_ID} $@ -- GitLab