More robust handling of environment variables.

This commit is contained in:
Bob
2024-07-12 18:03:31 -07:00
parent 324222eebf
commit 9875f9b92c
2 changed files with 80 additions and 9 deletions

View File

@@ -1,16 +1,23 @@
FROM node:lts-slim AS base FROM node:lts-slim AS base
RUN npm i holesail -g WORKDIR /temp
COPY run.sh .
RUN chmod +x run.sh
ENV MODE client RUN npm install -g holesail
ENV MODE server
ENV HOST 0.0.0.0 ENV HOST 0.0.0.0
ENV PORT 8989 ENV PORT 8989
ENV PUBLIC true
ENV USERNAME admin
ENV PASSWORD admin
ENV ROLE user
ENV CONNECTOR ""
ENV FORCE ""
EXPOSE 8989 #EXPOSE 8989
ENTRYPOINT sh -c ' \ WORKDIR /data
if [ "$MODE" = "server" ]; then \
holesail --live $PORT --host $HOST --connector $CONNECTOR; \ ENTRYPOINT [ "/temp/run.sh" ]
elif [ "$MODE" = "client" ]; then \
holesail --port $PORT --host $HOST $CONNECTOR; \
fi '

64
run.sh Normal file
View File

@@ -0,0 +1,64 @@
#!/bin/bash
CYAN="\033[1;96m"
RED="\033[0;91m"
GREEN="\033[0;92m"
RESET='\033[0m'
print () {
echo -e "$1 $2 $RESET"
}
info () {
print "$CYAN" "$1"
}
error() {
print "$RED" "$1"
}
success() {
print "$GREEN" "$1"
}
cmd_argument_builder () {
local args="";
case "$MODE" in
"client")
[[ "$PORT" ]] && args="$args --port $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$CONNECTOR" ]] && args="$args $CONNECTOR";
;;
"server")
[[ "$PORT" ]] && args="$args --live $PORT";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$PUBLIC" = "true" ]] && args="$args --public";
[[ "$FORCE" = "true" ]] && args="$args --force";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
;;
"filemanager")
args="--filemanager";
[[ "$FORCE" = "true" ]] && args="$args --force";
[[ "$PUBLIC" = "true" ]] && args="$args --public";
[[ "$HOST" ]] && args="$args --host $HOST";
[[ "$USERNAME" ]] && args="$args --username $USERNAME";
[[ "$PASSWORD" ]] && args="$args --password $PASSWORD";
[[ "$ROLE" = "admin" ]] && args="$args --role admin";
[[ "$ROLE" = "user" ]] && args="$args --role user";
[[ "$CONNECTOR" ]] && args="$args --connector $CONNECTOR";
;;
esac
printf "%s" "$args";
}
ARGS="$(cmd_argument_builder)"
if [[ ! $ARGS ]]; then
error "Invalid Mode."
exit 1
fi
holesail $ARGS