From 7118a39f6d972cceed1da5257c347a7f1e541d59 Mon Sep 17 00:00:00 2001 From: Aaron Fiore Date: Wed, 17 Jul 2024 22:39:48 -0700 Subject: [PATCH] client: optimize/refactor repository path - Reduces all calls into a single line - Redefines path as root repository path --- client/src/docker/docker.bash | 7 ++++++- .../docker/lib/internal/dev-tools/lib_doxygen.bash | 6 ++++-- .../docker/lib/internal/dev-tools/lib_license.bash | 4 +++- .../docker/lib/internal/dev-tools/lib_linter.bash | 6 ++++-- client/src/docker/lib/internal/lib_docker.bash | 4 +++- client/src/docker/lib/internal/lib_gen.bash | 10 ++++++---- client/src/docker/lib/lib_docker.bash | 14 ++++++++------ 7 files changed, 34 insertions(+), 17 deletions(-) diff --git a/client/src/docker/docker.bash b/client/src/docker/docker.bash index 9d6d86c..5f66882 100755 --- a/client/src/docker/docker.bash +++ b/client/src/docker/docker.bash @@ -21,7 +21,12 @@ # Implementation # -source "$(dirname "$(realpath -s $0)")/src/docker/lib/lib_docker.bash" || exit 1 +if [ -z "$DOCKER_FINANCE_CLIENT_REPO" ]; then + declare -gx DOCKER_FINANCE_CLIENT_REPO + DOCKER_FINANCE_CLIENT_REPO="$(dirname "$(realpath -s $0)" | rev | cut -d'/' -f2- | rev)" +fi + +source "${DOCKER_FINANCE_CLIENT_REPO}/client/src/docker/lib/lib_docker.bash" || exit 1 # # Execute diff --git a/client/src/docker/lib/internal/dev-tools/lib_doxygen.bash b/client/src/docker/lib/internal/dev-tools/lib_doxygen.bash index 73d0f7b..7482a69 100644 --- a/client/src/docker/lib/internal/dev-tools/lib_doxygen.bash +++ b/client/src/docker/lib/internal/dev-tools/lib_doxygen.bash @@ -17,12 +17,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +[ -z "$DOCKER_FINANCE_CLIENT_REPO" ] && exit 1 + # # "Libraries" # -source "$(dirname "$(realpath -s $0)")/src/docker/lib/internal/lib_docker.bash" || exit 1 -source "$(dirname "$(realpath -s $0)")/../container/src/finance/lib/internal/lib_utils.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/client/src/docker/lib/internal/lib_docker.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/container/src/finance/lib/internal/lib_utils.bash" || exit 1 # # Implementation diff --git a/client/src/docker/lib/internal/dev-tools/lib_license.bash b/client/src/docker/lib/internal/dev-tools/lib_license.bash index da48f51..01dd527 100644 --- a/client/src/docker/lib/internal/dev-tools/lib_license.bash +++ b/client/src/docker/lib/internal/dev-tools/lib_license.bash @@ -17,11 +17,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +[ -z "$DOCKER_FINANCE_CLIENT_REPO" ] && exit 1 + # # "Libraries" # -source "$(dirname "$(realpath -s $0)")/../container/src/finance/lib/internal/lib_utils.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/container/src/finance/lib/internal/lib_utils.bash" || exit 1 # # Implementation diff --git a/client/src/docker/lib/internal/dev-tools/lib_linter.bash b/client/src/docker/lib/internal/dev-tools/lib_linter.bash index 87bed26..f704010 100644 --- a/client/src/docker/lib/internal/dev-tools/lib_linter.bash +++ b/client/src/docker/lib/internal/dev-tools/lib_linter.bash @@ -17,12 +17,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +[ -z "$DOCKER_FINANCE_CLIENT_REPO" ] && exit 1 + # # "Libraries" # -source "$(dirname "$(realpath -s $0)")/src/docker/lib/internal/lib_docker.bash" || exit 1 -source "$(dirname "$(realpath -s $0)")/../container/src/finance/lib/internal/lib_utils.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/client/src/docker/lib/internal/lib_docker.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/container/src/finance/lib/internal/lib_utils.bash" || exit 1 # # Implementation diff --git a/client/src/docker/lib/internal/lib_docker.bash b/client/src/docker/lib/internal/lib_docker.bash index b6bb5b8..1214ecd 100644 --- a/client/src/docker/lib/internal/lib_docker.bash +++ b/client/src/docker/lib/internal/lib_docker.bash @@ -17,12 +17,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +[ -z "$DOCKER_FINANCE_CLIENT_REPO" ] && exit 1 + # # "Libraries" # # Utilities (a container library (but container is never exposed to client code)) -source "$(dirname "$(realpath -s $0)")/../container/src/finance/lib/internal/lib_utils.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/container/src/finance/lib/internal/lib_utils.bash" || exit 1 # # Implementation diff --git a/client/src/docker/lib/internal/lib_gen.bash b/client/src/docker/lib/internal/lib_gen.bash index 8f331b0..e149ffc 100644 --- a/client/src/docker/lib/internal/lib_gen.bash +++ b/client/src/docker/lib/internal/lib_gen.bash @@ -17,11 +17,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +[ -z "$DOCKER_FINANCE_CLIENT_REPO" ] && exit 1 + # # "Libraries" # -source "$(dirname "$(realpath -s $0)")/../container/src/finance/lib/internal/lib_utils.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/container/src/finance/lib/internal/lib_utils.bash" || exit 1 # # Implementation @@ -62,7 +64,7 @@ function lib_gen::gen() lib_utils::print_debug "Constructing environment" # Generate `docker-finance` version - global_repo_manifest="$(dirname "$(realpath -s $0)")/docker-finance.yaml" + global_repo_manifest="${DOCKER_FINANCE_CLIENT_REPO}/client/docker-finance.yaml" declare -gr global_repo_manifest global_client_version="$(grep '^version: ' $global_repo_manifest | sed -e 's/version: "//' -e 's/"//g')" @@ -70,7 +72,7 @@ function lib_gen::gen() declare -gr global_client_version # Repository-provided (not user-defined) default environment - global_repo_conf_dir="$(dirname "$(realpath -s $0)")/docker-finance.d" + global_repo_conf_dir="${DOCKER_FINANCE_CLIENT_REPO}/client/docker-finance.d" declare -gr global_repo_conf_dir # Environment @@ -98,7 +100,7 @@ function lib_gen::gen() declare -gr global_platform_image # Base location of Docker-related files (.in and final out files) - global_repo_dockerfiles="$(dirname "$(realpath -s $0)")/Dockerfiles/${global_platform_image}" + global_repo_dockerfiles="${DOCKER_FINANCE_CLIENT_REPO}/client/Dockerfiles/${global_platform_image}" # shellcheck disable=SC2034 # used in lib_docker declare -gr global_repo_dockerfiles diff --git a/client/src/docker/lib/lib_docker.bash b/client/src/docker/lib/lib_docker.bash index ad91bd7..2a5dce3 100644 --- a/client/src/docker/lib/lib_docker.bash +++ b/client/src/docker/lib/lib_docker.bash @@ -17,23 +17,25 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +[ -z "$DOCKER_FINANCE_CLIENT_REPO" ] && exit 1 + # # "Libraries" # # Docker impl -source "$(dirname "$(realpath -s $0)")/src/docker/lib/internal/lib_docker.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/client/src/docker/lib/internal/lib_docker.bash" || exit 1 # Environment generation -source "$(dirname "$(realpath -s $0)")/src/docker/lib/internal/lib_gen.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/client/src/docker/lib/internal/lib_gen.bash" || exit 1 # Development tools -source "$(dirname "$(realpath -s $0)")/src/docker/lib/internal/dev-tools/lib_doxygen.bash" || exit 1 -source "$(dirname "$(realpath -s $0)")/src/docker/lib/internal/dev-tools/lib_license.bash" || exit 1 -source "$(dirname "$(realpath -s $0)")/src/docker/lib/internal/dev-tools/lib_linter.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/client/src/docker/lib/internal/dev-tools/lib_doxygen.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/client/src/docker/lib/internal/dev-tools/lib_license.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/client/src/docker/lib/internal/dev-tools/lib_linter.bash" || exit 1 # Utilities (a container library (but container is never exposed to client code)) -source "$(dirname "$(realpath -s $0)")/../container/src/finance/lib/internal/lib_utils.bash" || exit 1 +source "${DOCKER_FINANCE_CLIENT_REPO}/container/src/finance/lib/internal/lib_utils.bash" || exit 1 # # Implementation