diff --git a/fix-kubectl b/fix-kubectl index 0c86bb4..d4c7cc7 100755 --- a/fix-kubectl +++ b/fix-kubectl @@ -44,7 +44,7 @@ if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then . <( kubectl cnpg completion ${SHELL##*/} ) fi if [[ -z "$(type -t 'kubectl-cnpg')" || -n "$UPGRADE" ]]; then - DL_VER=1.21.1 + DL_VER=1.22.0 GH_URL=https://github.com/cloudnative-pg/cloudnative-pg DL_FILE="kubectl-cnpg_${DL_VER}_linux_x86_64.deb" URL=${GH_URL}/releases/download/v${DL_VER}/${DL_FILE} @@ -55,7 +55,7 @@ if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then fi if [[ -z "$(type -t 'kubetui')" || -n "$UPGRADE" ]]; then - DL_VER=1.4.2 + DL_VER=1.5.0 GH_URL=https://github.com/sarub0b0/kubetui DL_FILE=kubetui-x86_64-unknown-linux-musl-rustls URL=${GH_URL}/releases/download/v${DL_VER}/${DL_FILE} diff --git a/foreach-secret.sh b/foreach-secret.sh new file mode 100755 index 0000000..6371176 --- /dev/null +++ b/foreach-secret.sh @@ -0,0 +1,47 @@ +#! /usr/bin/env bash +set -e + +if [[ $# -lt 1 ]]; then + MYNAME="$(basename $0)" + cat - < [ [cmdline with \$FILE receiving content]] + +Example: + $MYNAME dns-ingress external-service-tls-0 '{ + echo /opt/adguardhome/conf/\$FILE; + ssh szdocker@szdocker.lan sudo tee /srv/containeriszed/0.local/adguardhome/conf/\$FILE > /dev/null; + }' + +Arguments + app-name - name of the ix-app + secret-name - name of the secret, when ommitted, a sorted list of + secrets will be listed + cmdline... - Command to run on the secret, \$FILE will be the + secret name, where stdin will contain the content of + the secret + +USAGE + false +else + APPNAME="${1}" + NS="--namespace=ix-${APPNAME:?Appname was not specified}" + if [[ -z "${2}" ]]; then + # shellcheck disable=SC2086 # ${NS} unqouted on purpose + k3s kubectl get secrets ${NS} | sort + exit + fi + SECRETNAME="${APPNAME}-${2}" + PIPECMD="${*:3}" + PIPECMD="${PIPECMD:-cat -}" + # shellcheck disable=SC2086 # ${NS} unqouted on purpose + mapfile -t FILES < <(k3s kubectl get secrets ${NS} "${SECRETNAME}" --output=json | jq -r '.data | keys[]') + for FILE in "${FILES[@]}"; do + # shellcheck disable=SC2086 # ${NS} and $PIPECMD unqouted on purpose + k3s kubectl get secrets ${NS} "${SECRETNAME}" --output=json | jq -r '.data["'"${FILE}"'"] | @base64d' | eval $PIPECMD + done +fi diff --git a/show-console.sh b/show-console.sh new file mode 100755 index 0000000..d9bb92c --- /dev/null +++ b/show-console.sh @@ -0,0 +1,34 @@ +#! /usr/bin/env bash + +res() { + + old=$(stty -g) + stty raw -echo min 0 time 5 + + printf '\0337\033[r\033[999;999H\033[6n\0338' > /dev/tty + IFS='[;R' read -r _ rows cols _ < /dev/tty + + stty "$old" + + # echo "cols:$cols" + # echo "rows:$rows" + stty cols "$cols" rows "$rows" +} + +res2() { + + old=$(stty -g) + stty raw -echo min 0 time 5 + + printf '\033[18t' > /dev/tty + IFS=';t' read -r _ rows cols _ < /dev/tty + + stty "$old" + + # echo "cols:$cols" + # echo "rows:$rows" + stty cols "$cols" rows "$rows" +} + +stty cols 80 +cat /dev/vcs