This commit is contained in:
Dennis ten Hoove 2023-11-18 08:43:35 +00:00
parent 33ed623ab0
commit f0b87dd306

38
arkdep
View file

@ -198,20 +198,20 @@ teardown () {
remove_deployment () { remove_deployment () {
# Ensure required vars are set # Ensure required vars are set
[[ -z $2 ]] && \ [[ -z $1 ]] && \
printf 'No deployment defined\n' && exit 1 printf 'No deployment defined\n' && exit 1
# Ensure deployment is not currently active # Ensure deployment is not currently active
if grep "$(readlink -m $arkdep_dir/deployments/$2)" /proc/cmdline > /dev/null; then if grep "$(readlink -m $arkdep_dir/deployments/$1)" /proc/cmdline > /dev/null; then
printf 'Target is currently active deployment\n' printf 'Target is currently active deployment\n'
exit 1 exit 1
fi fi
# Ensure user only provided a single target # Ensure user only provided a single target
[[ ! -z $3 ]] && \ [[ ! -z $2 ]] && \
printf 'Multiple targets provided, remove only accepts a single target at a time\n' && exit 1 printf 'Multiple targets provided, remove only accepts a single target at a time\n' && exit 1
declare -r hits=($(grep $2 $arkdep_dir/tracker)) declare -r hits=($(grep $1 $arkdep_dir/tracker))
if [[ ${#hits[@]} -gt 1 ]]; then if [[ ${#hits[@]} -gt 1 ]]; then
printf 'Multiple deployments match target, be more specific\n' printf 'Multiple deployments match target, be more specific\n'
@ -237,7 +237,7 @@ remove_deployment () {
rm -rf $(readlink -m $arkdep_dir/deployments/$target) rm -rf $(readlink -m $arkdep_dir/deployments/$target)
# Remove from tracker # Remove from tracker
grep -v $2 $arkdep_dir/tracker > $arkdep_dir/tracker_tmp grep -v $1 $arkdep_dir/tracker > $arkdep_dir/tracker_tmp
mv $arkdep_dir/tracker_tmp $arkdep_dir/tracker mv $arkdep_dir/tracker_tmp $arkdep_dir/tracker
exit 0 exit 0
@ -284,14 +284,14 @@ deploy () {
# target and version are optional, if not defined default to primary as defined in # target and version are optional, if not defined default to primary as defined in
# /arkdep/config and latest # /arkdep/config and latest
if [[ -n $2 ]] && [[ $2 != '-' ]]; then if [[ -n $1 ]] && [[ $2 != '-' ]]; then
declare -r deploy_target=$2 declare -r deploy_target=$1
else else
declare -r deploy_target="$repo_default_image" declare -r deploy_target="$repo_default_image"
fi fi
if [[ -n $3 ]]; then if [[ -n $2 ]]; then
declare -r deploy_version=$3 declare -r deploy_version=$2
else else
declare -r deploy_version='latest' declare -r deploy_version='latest'
fi fi
@ -304,7 +304,7 @@ deploy () {
declare curl_data=$(curl -sf "${repo_url}/${deploy_target}/database" | head -n 1) declare curl_data=$(curl -sf "${repo_url}/${deploy_target}/database" | head -n 1)
else else
# Only return first hit # Only return first hit
declare curl_data=$(curl -sf "${repo_url}/${deploy_target}/database" | grep $3 | head -1) declare curl_data=$(curl -sf "${repo_url}/${deploy_target}/database" | grep $2 | head -1)
fi fi
# Split latest_version at the delimiter, creating an array with data.0=package ver, data.1=compression method, data.2=sha1 hash # Split latest_version at the delimiter, creating an array with data.0=package ver, data.1=compression method, data.2=sha1 hash
@ -485,19 +485,7 @@ deploy () {
# Remove old deployments # Remove old deployments
for deployment in ${remove_deployments[@]}; do for deployment in ${remove_deployments[@]}; do
remove_deployment $deployment
# Ensure deployment is not currently active
if grep "$(readlink -m $arkdep_dir/deployments/$deployment)" /proc/cmdline > /dev/null; then
break
fi
printf "\e[1;34m-->\e[0m\e[1m Removing old deployment $deployment\e[0m\n"
rm -v /boot/loader/entries/$deployment.conf
btrfs property set -f -ts $(readlink -m $arkdep_dir/deployments/$deployment) ro false
rm -rfv $(readlink -m $arkdep_dir/deployments/$deployment)
rm -rfv $(readlink -m /boot/arkdep/$deployment)
grep -rv $deployment $(readlink -m $arkdep_dir/tracker) > $arkdep_dir/tracker
done done
exit 0 exit 0
@ -508,6 +496,6 @@ deploy () {
[[ $1 == 'teardown' ]] && teardown [[ $1 == 'teardown' ]] && teardown
[[ $1 == 'update' ]] && check_for_updates [[ $1 == 'update' ]] && check_for_updates
[[ $1 == 'get-available' ]] && get_available [[ $1 == 'get-available' ]] && get_available
[[ $1 == 'deploy' ]] && deploy $1 $2 $3 [[ $1 == 'deploy' ]] && deploy $2 $3
[[ $1 == 'list' ]] && list_deployed [[ $1 == 'list' ]] && list_deployed
[[ $1 == 'remove' ]] && remove_deployment $1 $2 $3 [[ $1 == 'remove' ]] && remove_deployment $2 $3