From ae6e5e76278f6ca90c6a7782f97ae9adb23aaed8 Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Wed, 20 Dec 2023 16:24:35 +0100 Subject: [PATCH] new: [vps] add ``vps monujo set-version`` command --- bin/vps | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/bin/vps b/bin/vps index 5f1fcd5..ddb9394 100755 --- a/bin/vps +++ b/bin/vps @@ -147,6 +147,12 @@ compose:has-container-project-myc() { [[ $'\n'"$projects"$'\n' == *$'\n'"myc"$'\n'* ]] } +compose:service:exists() { + local project="$1" service="$2" service_cfg + service_cfg=$(cat "$(compose:get-compose-yml)" | + shyaml get-value -y "$service" 2>/dev/null) || return 1 + [ -n "$service_cfg" ] +} compose:file:value-change() { local key="$1" value="$2" @@ -2517,4 +2523,33 @@ cmdline.spec::cmd:bench:run() { } +cmdline.spec::cmd:monujo:run() { + : +} + +cmdline.spec.gnu monujo +cmdline.spec:monujo:cmd:set-version:run() { + + : :posarg: TARGET_VERSION "Target version to put in options" + : :optval: --service,-s "The monujo service name (defaults to 'monujo')" + + local URL + + monujo_service="${opt_service:-monujo}" + project_name=$(compose:project_name) || exit 1 + + ## check if service exists in compose.yml + compose:service:exists "$project_name" "$monujo_service" || { + err "Service '$monujo_service' was not found in current 'compose.yml'." + exit 1 + } + + Wrap -d "Changing ${DARKYELLOW}$monujo_service${NORMAL} version" -- \ + compose:file:value-change \ + "${monujo_service}.options.version" \ + "${TARGET_VERSION}" || exit 1 + +} + + cmdline::parse "$@"