From 3222837c9f07f0411f87f27b337e8e9422ba631b Mon Sep 17 00:00:00 2001 From: Siak Hooi <73884114+siakhooi@users.noreply.github.com> Date: Sun, 14 May 2023 08:04:42 +0000 Subject: [PATCH] bin: add ka, kd --- src/DEBIAN/control | 2 +- src/bin/shed | 12 ++++++++++++ src/bin/shed-kubectl-apply | 16 ++++++++++++++++ src/bin/shed-kubectl-delete | 16 ++++++++++++++++ src/bin/shed-kubectl-resources | 3 +++ .../init.d/shed-init/50-shed-kubectl-resources | 18 ++++++++++++++++++ src/lib/shed-init | 1 + test/expected/shed-env/shed-env.out | 1 + test/expected/shed-env/shed_env.out | 1 + 9 files changed, 69 insertions(+), 1 deletion(-) create mode 100755 src/bin/shed-kubectl-apply create mode 100755 src/bin/shed-kubectl-delete create mode 100755 src/bin/shed-kubectl-resources create mode 100755 src/lib/init.d/shed-init/50-shed-kubectl-resources diff --git a/src/DEBIAN/control b/src/DEBIAN/control index 8f9156f..ed18bba 100644 --- a/src/DEBIAN/control +++ b/src/DEBIAN/control @@ -1,5 +1,5 @@ Package: siakhooi-shed -Version: 1.7.2 +Version: 1.8.0 Maintainer: Siak Hooi Depends: bash, coreutils, findutils, grep, vim, man-db, sed, siakhooi-devutils-echo-colors (>= 1.0.0), git, siakhooi-textutils (>= 1.3.0), bash-completion Architecture: amd64 diff --git a/src/bin/shed b/src/bin/shed index 697c214..0ded377 100755 --- a/src/bin/shed +++ b/src/bin/shed @@ -65,6 +65,18 @@ kubectl-logs-follow) shed-kubectl-logs-follow "$@" exit $? ;; +kubectl-resources) + shed-kubectl-resources "$@" + exit $? + ;; +kubectl-apply) + shed-kubectl-apply "$@" + exit $? + ;; +kubectl-delete) + shed-kubectl-delete "$@" + exit $? + ;; helm) shed-helm "$@" exit $? diff --git a/src/bin/shed-kubectl-apply b/src/bin/shed-kubectl-apply new file mode 100755 index 0000000..4a4aa28 --- /dev/null +++ b/src/bin/shed-kubectl-apply @@ -0,0 +1,16 @@ +#!/bin/bash + +if [[ $# -ne 1 ]]; then + echo "Usage: $(basename "$0") kubectl-resource" + exit 0 +fi + +RESOURCE_DIRECTORY="$SHED_CONFIG_DIRECTORY_RESOURCES/$1" + +if [[ ! -d "$RESOURCE_DIRECTORY" ]]; then + echo "$1 not exists. ($RESOURCE_DIRECTORY)" + exit 1 +fi + +set -x +shed-kubectl apply -f "$RESOURCE_DIRECTORY" diff --git a/src/bin/shed-kubectl-delete b/src/bin/shed-kubectl-delete new file mode 100755 index 0000000..434f2bd --- /dev/null +++ b/src/bin/shed-kubectl-delete @@ -0,0 +1,16 @@ +#!/bin/bash + +if [[ $# -ne 1 ]]; then + echo "Usage: $(basename "$0") kubectl-resource" + exit 0 +fi + +RESOURCE_DIRECTORY="$SHED_CONFIG_DIRECTORY_RESOURCES/$1" + +if [[ ! -d "$RESOURCE_DIRECTORY" ]]; then + echo "$1 not exists. ($RESOURCE_DIRECTORY)" + exit 1 +fi + +set -x +shed-kubectl delete -f "$RESOURCE_DIRECTORY" diff --git a/src/bin/shed-kubectl-resources b/src/bin/shed-kubectl-resources new file mode 100755 index 0000000..81ba951 --- /dev/null +++ b/src/bin/shed-kubectl-resources @@ -0,0 +1,3 @@ +#!/bin/bash + +[[ -d $SHED_CONFIG_DIRECTORY_RESOURCES ]] && ls "$SHED_CONFIG_DIRECTORY_RESOURCES" diff --git a/src/lib/init.d/shed-init/50-shed-kubectl-resources b/src/lib/init.d/shed-init/50-shed-kubectl-resources new file mode 100755 index 0000000..fee001a --- /dev/null +++ b/src/lib/init.d/shed-init/50-shed-kubectl-resources @@ -0,0 +1,18 @@ +#!/bin/bash + +alias ka='shed-kubectl-apply' +alias kd='shed-kubectl-delete' + +shed-completions-with-shed-kubectl-resources() { + local cur choices + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + choices=$(shed-kubectl-resources) + mapfile -t COMPREPLY < <(compgen -W "${choices}" -- "${cur}") +} + +complete -F shed-completions-with-shed-kubectl-resources shed-kubectl-apply +complete -F shed-completions-with-shed-kubectl-resources ka + +complete -F shed-completions-with-shed-kubectl-resources shed-kubectl-delete +complete -F shed-completions-with-shed-kubectl-resources kd diff --git a/src/lib/shed-init b/src/lib/shed-init index 2a6ebba..bb5d0f2 100755 --- a/src/lib/shed-init +++ b/src/lib/shed-init @@ -2,6 +2,7 @@ export SHED_CONFIG_HOME="${SHED_CONFIG_HOME:-$HOME/.shed}" export SHED_CONFIG_FILE=${SHED_CONFIG_HOME}/config.yaml +export SHED_CONFIG_DIRECTORY_RESOURCES=$SHED_CONFIG_HOME/kubectl-resources [[ -d "$SHED_CONFIG_HOME" ]] || mkdir -p "$SHED_CONFIG_HOME" [[ -f "$SHED_CONFIG_FILE" ]] || /usr/lib/shed/shed-config-create-sample diff --git a/test/expected/shed-env/shed-env.out b/test/expected/shed-env/shed-env.out index 7f99730..b431a27 100644 --- a/test/expected/shed-env/shed-env.out +++ b/test/expected/shed-env/shed-env.out @@ -1,5 +1,6 @@ KUBECONFIG=/root/.kube/config:/root/.shed/kubectl-config/kubeconfig-D:/root/.shed/kubectl-config/kubeconfig-T SHED_CODE=D +SHED_CONFIG_DIRECTORY_RESOURCES=/root/.shed/kubectl-resources SHED_CONFIG_FILE=/root/.shed/config.yaml SHED_CONFIG_HOME=/root/.shed SHED_KUBECONFIG_NUMBER=0 diff --git a/test/expected/shed-env/shed_env.out b/test/expected/shed-env/shed_env.out index 7f99730..b431a27 100644 --- a/test/expected/shed-env/shed_env.out +++ b/test/expected/shed-env/shed_env.out @@ -1,5 +1,6 @@ KUBECONFIG=/root/.kube/config:/root/.shed/kubectl-config/kubeconfig-D:/root/.shed/kubectl-config/kubeconfig-T SHED_CODE=D +SHED_CONFIG_DIRECTORY_RESOURCES=/root/.shed/kubectl-resources SHED_CONFIG_FILE=/root/.shed/config.yaml SHED_CONFIG_HOME=/root/.shed SHED_KUBECONFIG_NUMBER=0