diff --git a/profiles/base/.local/bin/check_ip b/profiles/base/.local/bin/check_ip index 7546645..e6c5a25 100755 --- a/profiles/base/.local/bin/check_ip +++ b/profiles/base/.local/bin/check_ip @@ -1,13 +1,14 @@ -#!/usr/bin/env bash +#!/bin/bash -readonly SCRIPT_NAME=${0##*/} +SCRIPT_NAME="${0##*/}" +readonly SCRIPT_NAME check_deps() { - command -v curl >/dev/null 2>&1 || die "curl: command not found" + command -v curl >/dev/null 2>&1 || die "curl: command not found" } usage() { - cat <&2 - exit 1 + local -r message="$1" + printf "%s: %b\n" "${SCRIPT_NAME}" "${message}" >&2 + exit 1 } invalid_option() { - local -r option=$1 - die "invalid option $(shell_quote "${option}")\nTry '${SCRIPT_NAME} --help' for usage." + local -r option="$1" + die "invalid option $(shell_quote "${option}") +Try '${SCRIPT_NAME} --help' for usage." } parse_args() { - family="auto" - while (( $# > 0 )); do - case "$1" in - -h|--help) usage; exit 0 ;; - --family) - ( (( $# < 2 )) || [[ -z "$2" ]] ) && die "--family requires an argument (auto, 4 or 6)" - family=$2 - shift 2 - ;; - --family=*) - family=${1#*=} - [[ -z "${family}" ]] && die "--family requires an argument (auto, 4 or 6)" - shift - ;; - *) invalid_option "$1" ;; - esac - done - validate_args + family="auto" + while (($# > 0)); do + case "$1" in + -h | --help) + usage + exit 0 + ;; + --family) + ( (($# < 2)) || [[ -z "$2" ]]) && + die "--family requires an argument (auto, 4 or 6)" + family="$2" + shift 2 + ;; + --family=*) + family="${1#*=}" + [[ -z "${family}" ]] && + die "--family requires an argument (auto, 4 or 6)" + shift + ;; + *) invalid_option "$1" ;; + esac + done + validate_args } validate_args() { - case ${family} in - auto|4|6) ;; - *) die "invalid value for family: '${family}' (expected auto, 4 or 6)" - esac + case "${family}" in + auto | 4 | 6) ;; + *) die "invalid value for family: '${family}' (expected auto, 4 or 6)" ;; + esac } show_ip() { - local -a curl_args=() - [[ ${family} == "4" ]] && curl_args=("-4") - [[ ${family} == "6" ]] && curl_args=("-6") - curl "${curl_args[@]}" zx2c4.com/ip + local -a curl_args=() + [[ ${family} == "4" ]] && curl_args=("-4") + [[ ${family} == "6" ]] && curl_args=("-6") + curl "${curl_args[@]}" zx2c4.com/ip } main() { - check_deps - parse_args "$@" - show_ip + check_deps + parse_args "$@" + show_ip } main "$@"