diff options
Diffstat (limited to 'local.sh')
-rwxr-xr-x | local.sh | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/local.sh b/local.sh new file mode 100755 index 0000000..37985c3 --- /dev/null +++ b/local.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +source "${0%/*}/common.sh" + +operations() { + for op in "$@"; do + if ! "$op" "$(hostname)"; then + error "Operation '$op' failed" >&2 + break + fi + done +} + +################################################################################ +operation="${1:-}" +if [ $# -gt 1 ]; then + echo "Invalid argument: $2" >&2 + exit 2 +fi + +case "$operation" in + help|h) + cat <<-EOF + Usage $0 operation [device]... + Local system builder and updater for remote devices. + + Operations: + build: build device system + boot: set built system to be boot default on the device + switch: switch to the built system on the target device + test: test the built system on the target device + EOF + ;; + build|b) + operations build + ;; + boot) + operations boot + ;; + switch|s) + operations switch + ;; + test|t) + operations switch_test + ;; + build-switch|bs|"") + operations build switch + ;; + build-test|bt) + operations build switch_test + ;; + build-boot|bb) + operations build boot + ;; + default) + echo "Unknown operation: $operation" >&2 + exit 2 + ;; +esac |