From 78759b8c34757efb52b1c64df66c0fb064b287c1 Mon Sep 17 00:00:00 2001 From: Oleg Sheynin Date: Mon, 27 Nov 2023 17:46:49 -0500 Subject: [PATCH] progress --- release_version.txt | 2 +- utils/set_ops_version.sh | 78 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100755 utils/set_ops_version.sh diff --git a/release_version.txt b/release_version.txt index 9e11b32..d15723f 100644 --- a/release_version.txt +++ b/release_version.txt @@ -1 +1 @@ -0.3.1 +0.3.2 diff --git a/utils/set_ops_version.sh b/utils/set_ops_version.sh new file mode 100755 index 0000000..5d457bb --- /dev/null +++ b/utils/set_ops_version.sh @@ -0,0 +1,78 @@ +#!/bin/bash + +function usage() { + echo "Usage: ${0} " + exit 1 + +} +Version=${1} + +if [ "${Version}" == "" ] +then + usage +fi + +Project=ops +# ----- Settings +LocalSoftwareDir=/opt/software/cvtt2 + +ProdDir=/home/cvtt/prod + +Location="${LocalSoftwareDir}/${Project}/${Version}/${Project}" + + +ReleaseHosts=("cryptovaltrading.com" "cryptoval1.sheynin.home" "cloudstore.cvtt.vpn") +ReleasePorts=("1588" "22" "22") +ReleaseUsers=("cryptova" "cvtt" "cvtt") +ReleaseDir=("/home/cryptova/opt/software/cvtt2" "/opt/software/cvtt2" "/opt/software/cvtt2") + +# ----- Settings + +function rsync_load_version() { + for idx in "${!ReleaseHosts[@]}" + do + host=${ReleaseHosts[${idx}]} + port=${ReleasePorts[${idx}]} + user=${ReleaseUsers[${idx}]} + rel_dir=${ReleaseDir[${idx}]} + + echo "Checking ${user}@${host} for ${rel_dir}/${Project}/${Version} ..." + if ssh -q -p ${port} ${user}@${host} "test -d ${rel_dir}/${Project}/${Version}" + then + echo "Directory found..." + rsync_cmd="rsync -ahvv -e \"ssh -p ${port}\"" + rsync_cmd="${rsync_cmd} ${user}@${host}:${rel_dir}/${Project}/${Version}" + rsync_cmd="${rsync_cmd} ${LocalSoftwareDir}/${Project}/" + echo ${rsync_cmd} + eval ${rsync_cmd} + status=$? + if [ ${status} -eq 0 ] + then + echo "Loading successful..." + break + fi + else + echo "Not Found ${rel_dir}/${Project}/${Version} on ${user}@${host}" + fi + done + if [[ ! -d ${LocalSoftwareDir}/${Project} ]] ; then + echo ERROR loading software + exit 1 + fi +} + + +# exists and not empty +if [[ ! -d "${Location}" ]] ; then + rsync_load_version +fi + +Cmd="cd ${ProdDir}" + +Cmd="${Cmd} && rm -rf ${Project}" +Cmd="${Cmd} && ln -snf ${Location} ${Project}" + +echo ${Cmd} +eval ${Cmd} + +echo "Done: $0 $*"