diff --git a/swivel b/swivel new file mode 100755 index 0000000..ef64d88 --- /dev/null +++ b/swivel @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +# swivel - Easily switch between running glances servers. +# +# Usage: +# swivel 10.0.0.10 10.0.0.11 10.0.0.12 + +set -euo pipefail + +# Dependency check +missing_deps=() +command -v gum >/dev/null || missing_deps+=(gum) +command -v glances >/dev/null || missing_deps+=(glances) + +if (( "${#missing_deps[@]}" != 0 )); then + echo "Missing dependencies:" "${missing_deps[@]}" + exit 1 +fi + +# Check number of args supplied at cli +if (( "${#@}" == 0 )); then + echo "At least one IP address or hostname must be supplied." + echo "" + echo "Usage: swivel ... " + exit 1 +fi + +while + selection=$(gum choose "${@}" "Exit" --limit=1 --header="Selection:") + [[ "$selection" != "Exit" ]] && glances -c "@$selection" -p 61209 +do true; done