Skip to content
Snippets Groups Projects
Commit 9ae6a5b9 authored by François  LAURENT's avatar François LAURENT
Browse files

feat: verbose logging for externally sourced variables

parent 53f78614
No related branches found
No related tags found
1 merge request!22Set of commits to be tagger v0.19
Pipeline #136204 passed
...@@ -9,7 +9,7 @@ ENV PIP_DISABLE_PIP_VERSION_CHECK=1 \ ...@@ -9,7 +9,7 @@ ENV PIP_DISABLE_PIP_VERSION_CHECK=1 \
RUN apt-get update \ RUN apt-get update \
&& apt-get install --no-install-recommends -y make wget unzip \ && apt-get install --no-install-recommends -y make wget unzip \
&& if ! command -v poetry; then \ && if ! command -v poetry &>/dev/null; then \
apt-get install --no-install-recommends -y python3-dev python3-pip \ apt-get install --no-install-recommends -y python3-dev python3-pip \
&& pip install "poetry==$POETRY_VERSION"; \ && pip install "poetry==$POETRY_VERSION"; \
fi \ fi \
......
...@@ -4,9 +4,13 @@ ...@@ -4,9 +4,13 @@
if [ -z "$BIN_DIR" ]; then if [ -z "$BIN_DIR" ]; then
BIN_DIR=~/.local/bin BIN_DIR=~/.local/bin
else
echo "Using environment variable: BIN_DIR= $BIN_DIR"
fi fi
if [ -z "$LARVATAGGER_PATH" ]; then if [ -z "$LARVATAGGER_PATH" ]; then
LARVATAGGER_PATH=~/.local/share/larvatagger LARVATAGGER_PATH=~/.local/share/larvatagger
else
echo "Using environment variable: LARVATAGGER_PATH= $LARVATAGGER_PATH"
fi fi
if [ "$1" = "--uninstall" ]; then if [ "$1" = "--uninstall" ]; then
...@@ -21,52 +25,62 @@ if [ "$1" = "--uninstall" ]; then ...@@ -21,52 +25,62 @@ if [ "$1" = "--uninstall" ]; then
else else
PYTHON_VERSION=3.8 PYTHON_VERSION=3.8
# the internal_<VAR> variables need to be set non-empty only if
# the corresponding <VAR> variable is non-empty; they are used to
# determine whether or not to report externally sourced variables
internal_WITH_BACKEND=
internal_MAGGOTUBA_ADAPTER_BRANCH=
for arg in "$@"; do for arg in "$@"; do
if [ "$arg" = "--with-default-backend" ]; then if [ "$arg" = "--with-default-backend" ]; then
WITH_BACKEND=1 WITH_BACKEND=1
internal_WITH_BACKEND=1
MAGGOTUBA_CORE_BRANCH= MAGGOTUBA_CORE_BRANCH=
MAGGOTUBA_ADAPTER_BRANCH= MAGGOTUBA_ADAPTER_BRANCH=
break break
elif [ "$arg" = "--with-backend" ]; then elif [ "$arg" = "--with-backend" ]; then
WITH_BACKEND=1 WITH_BACKEND=1
internal_WITH_BACKEND=1
elif [ "$arg" = "--experimental" ]; then elif [ "$arg" = "--experimental" ]; then
MAGGOTUBA_CORE_BRANCH= MAGGOTUBA_CORE_BRANCH=
MAGGOTUBA_ADAPTER_BRANCH=torch2 MAGGOTUBA_ADAPTER_BRANCH=torch2
internal_MAGGOTUBA_ADAPTER_BRANCH=1
PYTHON_VERSION=3.11 PYTHON_VERSION=3.11
fi fi
done done
if ! command -v curl >/dev/null; then if ! command -v curl &>/dev/null; then
if command -v brew >/dev/null; then if command -v brew &>/dev/null; then
# macOS users are not given the choice as they usually do not care about freedom # macOS users are not given the choice as they usually do not care about freedom
brew install curl brew install curl
fi fi
fi fi
if ! command -v curl >/dev/null; then if ! command -v curl &>/dev/null; then
echo "Command curl required; aborting" echo "Command curl required; aborting"
else else
check_brew() { check_brew() {
if [ "`uname`" = "Darwin" ]; then if [ "`uname`" = "Darwin" ]; then
# macOS # macOS
if ! command -v brew >/dev/null; then if ! command -v brew &>/dev/null; then
echo "Installing Homebrew; admin rights will be requested" echo "Installing Homebrew; admin rights will be requested"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
fi fi
fi fi
} }
if ! command -v realpath >/dev/null; then if ! command -v realpath &>/dev/null; then
# macOS # macOS
check_brew check_brew
if command -v brew >/dev/null; then if command -v brew &>/dev/null; then
brew install coreutils brew install coreutils
fi fi
fi fi
if ! command -v julia >/dev/null; then if ! command -v julia &>/dev/null; then
if [ -z "$JULIA_INSTALL_ARGS" ]; then if [ -z "$JULIA_INSTALL_ARGS" ]; then
JULIA_INSTALL_ARGS=-y JULIA_INSTALL_ARGS=-y
else
echo "Using environment variable: JULIA_INSTALL_ARGS= $JULIA_INSTALL_ARGS"
fi fi
curl -fsSL https://install.julialang.org | sh -s -- $JULIA_INSTALL_ARGS curl -fsSL https://install.julialang.org | sh -s -- $JULIA_INSTALL_ARGS
if [ -f ~/.bashrc ]; then if [ -f ~/.bashrc ]; then
...@@ -80,8 +94,8 @@ if [ -n "$WITH_BACKEND" ]; then ...@@ -80,8 +94,8 @@ if [ -n "$WITH_BACKEND" ]; then
if [ "`uname`" = "Darwin" ]; then if [ "`uname`" = "Darwin" ]; then
echo "WARNING: the default tagging backend is not supported by macOS" echo "WARNING: the default tagging backend is not supported by macOS"
fi fi
if ! command -v python$PYTHON_VERSION >/dev/null; then if ! command -v python$PYTHON_VERSION &>/dev/null; then
if command -v pyenv >/dev/null; then if command -v pyenv &>/dev/null; then
[ `pyenv versions | grep $PYTHON_VERSION` ] || pyenv install $PYTHON_VERSION [ `pyenv versions | grep $PYTHON_VERSION` ] || pyenv install $PYTHON_VERSION
elif [[ "`uname -r`" =~ "-microsoft-standard-WSL2" ]]; then elif [[ "`uname -r`" =~ "-microsoft-standard-WSL2" ]]; then
echo echo
...@@ -96,21 +110,21 @@ if [ -n "$WITH_BACKEND" ]; then ...@@ -96,21 +110,21 @@ if [ -n "$WITH_BACKEND" ]; then
eval "$(~/.pyenv/bin/pyenv init -)" eval "$(~/.pyenv/bin/pyenv init -)"
cat <<"EOF" >>~/.bashrc cat <<"EOF" >>~/.bashrc
command -v pyenv >/dev/null || export PATH=~/.pyenv/bin:$PATH command -v pyenv &>/dev/null || export PATH=~/.pyenv/bin:$PATH
eval "$(~/.pyenv/bin/pyenv init -)" eval "$(~/.pyenv/bin/pyenv init -)"
EOF EOF
pyenv install $PYTHON_VERSION pyenv install $PYTHON_VERSION
else else
check_brew check_brew
if command -v brew >/dev/null; then if command -v brew &>/dev/null; then
brew install python@$PYTHON_VERSION brew install python@$PYTHON_VERSION
else else
echo "WARNING: command python$PYTHON_VERSION not found" echo "WARNING: command python$PYTHON_VERSION not found"
fi fi
fi fi
fi fi
if ! command -v poetry >/dev/null; then if ! command -v poetry &>/dev/null; then
if command -v pipx >/dev/null; then if command -v pipx &>/dev/null; then
pipx install poetry pipx install poetry
else else
curl -fsSL https://install.python-poetry.org | python3 - curl -fsSL https://install.python-poetry.org | python3 -
...@@ -127,6 +141,7 @@ else ...@@ -127,6 +141,7 @@ else
if [ -z "$PLANARLARVAE_BRANCH" ]; then if [ -z "$PLANARLARVAE_BRANCH" ]; then
PLANARLARVAE_BRANCH=main PLANARLARVAE_BRANCH=main
else else
echo "Using environment variable: PLANARLARVAE_BRANCH= $PLANARLARVAE_BRANCH"
curl -fsSL https://gitlab.pasteur.fr/nyx/planarlarvae.jl/-/archive/${PLANARLARVAE_BRANCH}/planarlarvae.jl-${PLANARLARVAE_BRANCH}.tar.gz | tar zxv curl -fsSL https://gitlab.pasteur.fr/nyx/planarlarvae.jl/-/archive/${PLANARLARVAE_BRANCH}/planarlarvae.jl-${PLANARLARVAE_BRANCH}.tar.gz | tar zxv
mv planarlarvae.jl-${PLANARLARVAE_BRANCH} PlanarLarvae mv planarlarvae.jl-${PLANARLARVAE_BRANCH} PlanarLarvae
fi fi
...@@ -137,6 +152,8 @@ if [ -d LarvaTagger.jl ]; then ...@@ -137,6 +152,8 @@ if [ -d LarvaTagger.jl ]; then
else else
if [ -z "$LARVATAGGER_BRANCH" ]; then if [ -z "$LARVATAGGER_BRANCH" ]; then
LARVATAGGER_BRANCH=dev LARVATAGGER_BRANCH=dev
else
echo "Using environment variable: LARVATAGGER_BRANCH= $LARVATAGGER_BRANCH"
fi fi
curl -fsSL https://gitlab.pasteur.fr/nyx/larvatagger.jl/-/archive/${LARVATAGGER_BRANCH}/larvatagger.jl-${LARVATAGGER_BRANCH}.tar.gz | tar zxv curl -fsSL https://gitlab.pasteur.fr/nyx/larvatagger.jl/-/archive/${LARVATAGGER_BRANCH}/larvatagger.jl-${LARVATAGGER_BRANCH}.tar.gz | tar zxv
mv larvatagger.jl-${LARVATAGGER_BRANCH} LarvaTagger.jl mv larvatagger.jl-${LARVATAGGER_BRANCH} LarvaTagger.jl
...@@ -155,9 +172,11 @@ EOF ...@@ -155,9 +172,11 @@ EOF
else else
[ -z "$internal_WITH_BACKEND" ] && echo "Using environment variable: WITH_BACKEND= $WITH_BACKEND"
activate() { activate() {
# pyenv activation is necessary on WSL # pyenv activation is necessary on WSL
command -v pyenv >/dev/null && pyenv local $PYTHON_VERSION command -v pyenv &>/dev/null && pyenv local $PYTHON_VERSION
poetry env use $PYTHON_VERSION poetry env use $PYTHON_VERSION
} }
...@@ -166,6 +185,8 @@ if [ -d TaggingBackends ]; then ...@@ -166,6 +185,8 @@ if [ -d TaggingBackends ]; then
else else
if [ -z "$TAGGINGBACKENDS_BRANCH" ]; then if [ -z "$TAGGINGBACKENDS_BRANCH" ]; then
TAGGINGBACKENDS_BRANCH=main TAGGINGBACKENDS_BRANCH=main
else
echo "Using environment variable: TAGGINGBACKENDS_BRANCH= $TAGGINGBACKENDS_BRANCH"
fi fi
curl -fsSL https://gitlab.pasteur.fr/nyx/TaggingBackends/-/archive/${TAGGINGBACKENDS_BRANCH}/TaggingBackends-${TAGGINGBACKENDS_BRANCH}.tar.gz | tar zxv curl -fsSL https://gitlab.pasteur.fr/nyx/TaggingBackends/-/archive/${TAGGINGBACKENDS_BRANCH}/TaggingBackends-${TAGGINGBACKENDS_BRANCH}.tar.gz | tar zxv
mv TaggingBackends-${TAGGINGBACKENDS_BRANCH} TaggingBackends mv TaggingBackends-${TAGGINGBACKENDS_BRANCH} TaggingBackends
...@@ -180,6 +201,7 @@ else ...@@ -180,6 +201,7 @@ else
if [ -z "$MAGGOTUBA_CORE_BRANCH" ]; then if [ -z "$MAGGOTUBA_CORE_BRANCH" ]; then
MAGGOTUBA_CORE_BRANCH=main MAGGOTUBA_CORE_BRANCH=main
else else
echo "Using environment variable: MAGGOTUBA_CORE_BRANCH= $MAGGOTUBA_CORE_BRANCH"
curl -fsSL https://gitlab.pasteur.fr/nyx/maggotuba-core/-/archive/${MAGGOTUBA_CORE_BRANCH}/maggotuba-core-${MAGGOTUBA_CORE_BRANCH}.tar.gz | tar zxv curl -fsSL https://gitlab.pasteur.fr/nyx/maggotuba-core/-/archive/${MAGGOTUBA_CORE_BRANCH}/maggotuba-core-${MAGGOTUBA_CORE_BRANCH}.tar.gz | tar zxv
mv maggotuba-core-${MAGGOTUBA_CORE_BRANCH} MaggotUBA-core mv maggotuba-core-${MAGGOTUBA_CORE_BRANCH} MaggotUBA-core
fi fi
...@@ -190,6 +212,8 @@ if [ -d MaggotUBA ]; then ...@@ -190,6 +212,8 @@ if [ -d MaggotUBA ]; then
else else
if [ -z "$MAGGOTUBA_ADAPTER_BRANCH" ]; then if [ -z "$MAGGOTUBA_ADAPTER_BRANCH" ]; then
MAGGOTUBA_ADAPTER_BRANCH=main MAGGOTUBA_ADAPTER_BRANCH=main
elif [ -z "$internal_MAGGOTUBA_ADAPTER_BRANCH" ]; then
echo "Using environment variable: MAGGOTUBA_ADAPTER_BRANCH= $MAGGOTUBA_ADAPTER_BRANCH"
fi fi
curl -fsSL https://gitlab.pasteur.fr/nyx/MaggotUBA-adapter/-/archive/${MAGGOTUBA_ADAPTER_BRANCH}/MaggotUBA-adapter-${MAGGOTUBA_ADAPTER_BRANCH}.tar.gz | tar zxv curl -fsSL https://gitlab.pasteur.fr/nyx/MaggotUBA-adapter/-/archive/${MAGGOTUBA_ADAPTER_BRANCH}/MaggotUBA-adapter-${MAGGOTUBA_ADAPTER_BRANCH}.tar.gz | tar zxv
mv MaggotUBA-adapter-${MAGGOTUBA_ADAPTER_BRANCH} MaggotUBA #-adapter mv MaggotUBA-adapter-${MAGGOTUBA_ADAPTER_BRANCH} MaggotUBA #-adapter
...@@ -213,22 +237,29 @@ fi ...@@ -213,22 +237,29 @@ fi
chmod a+x "$BIN_DIR/larvatagger" chmod a+x "$BIN_DIR/larvatagger"
if ! command -v larvatagger >/dev/null; then if ! command -v larvatagger &>/dev/null; then
# ~/.local/bin not in $PATH? if [ "`realpath $BIN_DIR`" = "`realpath ~/.local/bin`" ]; then
if [ "$SHELL" = "/bin/zsh" ]; then # ~/.local/bin not in $PATH?
rcfile=~/.zshrc if [ "$SHELL" = "/bin/zsh" ]; then
elif [ "$SHELL" = "/bin/bash" ]; then rcfile=~/.zshrc
if [ -f ~/.bashrc ]; then elif [ "$SHELL" = "/bin/bash" ]; then
rcfile=~/.bashrc if [ -f ~/.bashrc ]; then
elif [ -f ~/.bash_profile ]; then rcfile=~/.bashrc
rcfile=~/.bash_profile elif [ -f ~/.bash_profile ]; then
rcfile=~/.bash_profile
fi
fi fi
fi echo "Extending the PATH environment variable in $rcfile"
cat <<"EOF" >>$rcfile cat <<"EOF" >>$rcfile
export PATH=$PATH:~/.local/bin export PATH=$PATH:~/.local/bin
EOF EOF
export PATH=$PATH:~/.local/bin else
echo "the larvatagger command is available in directory:"
echo " $BIN_DIR"
echo "consider adding the directory to the PATH variable"
fi
export PATH=$PATH:$BIN_DIR
fi fi
## ##
......
...@@ -45,14 +45,15 @@ if [ -z "$without_rm" ]; then ...@@ -45,14 +45,15 @@ if [ -z "$without_rm" ]; then
fi fi
if [ -z "$docker" ]; then if [ -z "$docker" ]; then
if docker --version &> /dev/null; then docker=docker
docker=docker if command -v podman &> /dev/null; then
else
docker=podman docker=podman
if [ "$cmd" != "build" ]; then if [ "$cmd" != "build" ]; then
DOCKER_ARGS="${DOCKER_ARGS}--security-opt label=disable " DOCKER_ARGS="${DOCKER_ARGS}--security-opt label=disable "
fi fi
fi fi
else
echo "Using environment variable: docker= $docker"
fi fi
if [ -z "$LARVATAGGER_IMAGE" ]; then if [ -z "$LARVATAGGER_IMAGE" ]; then
...@@ -61,6 +62,8 @@ LARVATAGGER_IMAGE=larvatagger ...@@ -61,6 +62,8 @@ LARVATAGGER_IMAGE=larvatagger
else else
LARVATAGGER_IMAGE=flaur/larvatagger LARVATAGGER_IMAGE=flaur/larvatagger
fi fi
else
echo "Using environment variable: LARVATAGGER_IMAGE= $LARVATAGGER_IMAGE"
fi fi
HOST_UID=$(id -u $USER) HOST_UID=$(id -u $USER)
...@@ -104,7 +107,10 @@ DOCKER_ARGS="--target $TARGET $DOCKER_ARGS" ...@@ -104,7 +107,10 @@ DOCKER_ARGS="--target $TARGET $DOCKER_ARGS"
fi fi
if [ -z "$DOCKERFILE" ]; then if [ -z "$DOCKERFILE" ]; then
DOCKERFILE=recipes/Dockerfile DOCKERFILE=recipes/Dockerfile
else
echo "Using environment variable DOCKERFILE= $DOCKERFILE"
fi fi
DOCKER_ARGS="-f \"$DOCKERFILE\" $DOCKER_ARGS"
if [ "$BUILD" == "--dev" ]; then if [ "$BUILD" == "--dev" ]; then
if ! [[ "$LARVATAGGER_IMAGE" == *:* ]]; then LARVATAGGER_IMAGE="${LARVATAGGER_IMAGE}:dev"; fi if ! [[ "$LARVATAGGER_IMAGE" == *:* ]]; then LARVATAGGER_IMAGE="${LARVATAGGER_IMAGE}:dev"; fi
PROJECT_ROOT=$(basename $(pwd)) PROJECT_ROOT=$(basename $(pwd))
...@@ -112,7 +118,7 @@ cd .. ...@@ -112,7 +118,7 @@ cd ..
DOCKER_BUILDKIT=1 $docker build -t "$LARVATAGGER_IMAGE" -f "$PROJECT_ROOT/recipes/Dockerfile.local" ${DOCKER_ARGS}. DOCKER_BUILDKIT=1 $docker build -t "$LARVATAGGER_IMAGE" -f "$PROJECT_ROOT/recipes/Dockerfile.local" ${DOCKER_ARGS}.
elif [ "$BUILD" == "--stable" ]; then elif [ "$BUILD" == "--stable" ]; then
if ! [[ "$LARVATAGGER_IMAGE" == *:* ]]; then LARVATAGGER_IMAGE="${LARVATAGGER_IMAGE}:stable"; fi if ! [[ "$LARVATAGGER_IMAGE" == *:* ]]; then LARVATAGGER_IMAGE="${LARVATAGGER_IMAGE}:stable"; fi
$docker build -t "$LARVATAGGER_IMAGE" -f recipes/Dockerfile ${DOCKER_ARGS}. $docker build -t "$LARVATAGGER_IMAGE" ${DOCKER_ARGS}.
else else
if ! [[ "$LARVATAGGER_IMAGE" == *:* ]]; then LARVATAGGER_IMAGE="${LARVATAGGER_IMAGE}:latest"; fi if ! [[ "$LARVATAGGER_IMAGE" == *:* ]]; then LARVATAGGER_IMAGE="${LARVATAGGER_IMAGE}:latest"; fi
if [ -z "$LARVATAGGER_BRANCH" ]; then if [ -z "$LARVATAGGER_BRANCH" ]; then
...@@ -122,12 +128,16 @@ if [ -z "$LARVATAGGER_BRANCH" ]; then ...@@ -122,12 +128,16 @@ if [ -z "$LARVATAGGER_BRANCH" ]; then
echo "Deprecation notice: LARVATAGGER_DEFAULT_BRANCH has been renamed LARVATAGGER_BRANCH" echo "Deprecation notice: LARVATAGGER_DEFAULT_BRANCH has been renamed LARVATAGGER_BRANCH"
LARVATAGGER_BRANCH=$LARVATAGGER_DEFAULT_BRANCH LARVATAGGER_BRANCH=$LARVATAGGER_DEFAULT_BRANCH
fi fi
else
echo "Using environment variable: LARVATAGGER_BRANCH= $LARVATAGGER_BRANCH"
fi fi
if [ -z "$TAGGINGBACKENDS_BRANCH" ]; then if [ -z "$TAGGINGBACKENDS_BRANCH" ]; then
TAGGINGBACKENDS_BRANCH=$LARVATAGGER_BRANCH TAGGINGBACKENDS_BRANCH=$LARVATAGGER_BRANCH
else
echo "Using environment variable: TAGGINGBACKENDS_BRANCH= $TAGGINGBACKENDS_BRANCH"
fi fi
DOCKER_ARGS="--build-arg TAGGINGBACKENDS_BRANCH=$TAGGINGBACKENDS_BRANCH $DOCKER_ARGS" DOCKER_ARGS="--build-arg TAGGINGBACKENDS_BRANCH=$TAGGINGBACKENDS_BRANCH $DOCKER_ARGS"
$docker build -t "$LARVATAGGER_IMAGE" -f $DOCKERFILE ${DOCKER_ARGS}--build-arg BRANCH=$LARVATAGGER_BRANCH . $docker build -t "$LARVATAGGER_IMAGE" ${DOCKER_ARGS}--build-arg BRANCH=$LARVATAGGER_BRANCH .
fi fi
;; ;;
...@@ -137,6 +147,7 @@ if [ -z "$LARVATAGGER_PORT" -o "$LARVATAGGER_PORT" == "9284" ]; then ...@@ -137,6 +147,7 @@ if [ -z "$LARVATAGGER_PORT" -o "$LARVATAGGER_PORT" == "9284" ]; then
DOCKER_ARGS="-p 9284:9284 $DOCKER_ARGS" DOCKER_ARGS="-p 9284:9284 $DOCKER_ARGS"
TAGGER_ARGS= TAGGER_ARGS=
else else
echo "Using environment variable: LARVATAGGER_PORT= $LARVATAGGER_PORT"
DOCKER_ARGS="-p $LARVATAGGER_PORT:$LARVATAGGER_PORT $DOCKER_ARGS" DOCKER_ARGS="-p $LARVATAGGER_PORT:$LARVATAGGER_PORT $DOCKER_ARGS"
TAGGER_ARGS="--port=$LARVATAGGER_PORT" TAGGER_ARGS="--port=$LARVATAGGER_PORT"
fi fi
...@@ -150,7 +161,7 @@ RUN_ARGS="$RUN_ARGS -v \"$parentdir\":/data" ...@@ -150,7 +161,7 @@ RUN_ARGS="$RUN_ARGS -v \"$parentdir\":/data"
backend=MaggotUBA backend=MaggotUBA
while [ -n "$1" -a "$1" = "--external-instance" ]; do while [ -n "$1" -a "$1" = "--external-instance" ]; do
instance=$2; shift 2 instance=$2; shift 2
if [ -z "$(which realpath)" ]; then if ! command -v realpath &>/dev/null; then
echo "realpath: command not found" echo "realpath: command not found"
echo "on macOS: brew install coreutils" echo "on macOS: brew install coreutils"
exit 1 exit 1
...@@ -269,7 +280,7 @@ fi ...@@ -269,7 +280,7 @@ fi
done done
if [ -n "$tagger_path" ]; then if [ -n "$tagger_path" ]; then
if [ -z "$(which realpath)" ]; then if ! command -v realpath &>/dev/null; then
echo "realpath: command not found" echo "realpath: command not found"
echo "on macOS: brew install coreutils" echo "on macOS: brew install coreutils"
exit 1 exit 1
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment