UpCloudLtd / upcloud-cli

UpCloud command line client (upctl)
https://upcloudltd.github.io/upcloud-cli/
MIT License
29 stars 7 forks source link

Return non-zero exit code if command execution fails #156

Closed kangasta closed 2 years ago

kangasta commented 2 years ago

Script to test this:

#!/bin/bash -x
prefix=exit-codes-test-
result=0

assert_exit_code() {
    actual=${1}
    expected=${2}

    if [ ${actual} -ne ${expected} ]; then
        echo "Assert failed: got ${actual}, expected ${expected}."
        result=$((result + 1))
    fi
}

./bin/upctl server create
assert_exit_code $? 100

./bin/upctl server create --hostname ${prefix}vm-1 --zone pl-waw1 --ssh-keys ~/.ssh/*.pub --wait
assert_exit_code $? 0

./bin/upctl server create --hostname ${prefix}vm-2 --zone pl-waw1 --ssh-keys ~/.ssh/*.pub --wait
assert_exit_code $? 0

./bin/upctl server stop ${prefix}vm-1 --wait
assert_exit_code $? 0

./bin/upctl server stop ${prefix}vm-1 ${prefix}vm-2 --wait
assert_exit_code $? 1

./bin/upctl server stop ${prefix}vm-1 ${prefix}vm-2 --wait
assert_exit_code $? 2

./bin/upctl server delete ${prefix}vm-1 ${prefix}vm-2 --delete-storages
assert_exit_code $? 0

exit ${result}