Compare commits

...

4 Commits

Author SHA1 Message Date
Lockszmith 86cc420d57 add load-starship 2024-04-29 23:24:38 -04:00
Lockszmith 91aa9853eb streamlined i-have-arrived 2024-04-29 23:23:56 -04:00
Lockszmith 367e634527 revamped load-fzf and load-zellij 2024-04-29 23:23:19 -04:00
Lockszmith a18b8506a4 revamped fix-kubectl 2024-04-29 23:22:24 -04:00
5 changed files with 127 additions and 35 deletions

View File

@ -1,11 +1,26 @@
#! /usr/bin/env bash
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
USER_HOME=$HOME
[[ -n "${SUDO_USER}" ]] && USER_HOME="$(eval "echo ~${SUDO_USER}")"
# shellcheck disable=SC2034,SC1090
# SC2034 variables appear unsued. export if used externally
# - uneeded, as this checked whether script is sourced
# SC1090 Can't follow non-constant source
BASE_0="$(basename ${0#-})"
BASE_SHELL="$(basename "$SHELL")"
if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
# Helper function
is_sourced() {
if [ -n "$ZSH_VERSION" ]; then
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
else # Add additional POSIX-compatible shell names here, if needed.
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac
fi
return 1; # NOT sourced.
}
BASE_0=${BASE_0:-$0}
BASE_SHELL=$(basename "$SHELL")
if is_sourced; then
DBG_="Is Sourced"
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASE_0}" )" &> /dev/null && pwd )
USER_HOME=$HOME
[[ -n "${SUDO_USER}" ]] && USER_HOME="$(eval "echo ~${SUDO_USER}")"
[[ -n "$KUBECONFIG" && -r "$KUBECONFIG" ]] || unset KUBECONFIG
@ -13,14 +28,16 @@ if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
|| export KUBECONFIG="${KUBECONFIG:-$HOME/.kube/config}"
if [[ -z "$KUBECONFIG" && -z "$FIX_KUBECTL_RECALL" ]]; then
unset kubectl 2>/dev/null || unalias kubectl 2>/dev/null || true
(unset kubectl 2>/dev/null) || (unalias kubectl 2>/dev/null) || true
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
fi
[[ 'function' == $(type -t kubectl-fix) ]] && unset kubectl-fix
(unset kubectl-fix 2> /dev/null) || true
if [[ -n "$(type -t 'k3s')" && -z "$(type -t 'kubectl')" ]]; then
DBG_="Check if k3s exists, but kubectl isn't available"
if (type 'k3s' >/dev/null 2>&1) && ! (type 'kubectl' >/dev/null 2>&1); then
DBG_="Define kubectl"
if [[ -r "${KUBECONFIG}" ]]; then
kubectl() { k3s kubectl "${@}"; }
elif [[ -n "${KUBECONFIG}" && -e "${KUBECONFIG}" ]]; then
@ -31,19 +48,19 @@ if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
sudo install --mod 600 --owner \"$USER\" \"\${KUBECONFIG}\" \"$HOME/.kube/config\"
unset KUBECONFIG
fi
FIX_KUBECTL_RECALL=1 . \"$SCRIPT_FULL_PATH\"
FIX_KUBECTL_RECALL=1 . \"${SCRIPT_DIR}/${BASE_0}\"
}"
fi
fi
if [[ -n "$(type -t 'kubectl')" ]]; then
if (type 'kubectl' >/dev/null 2>&1); then
. <( kubectl completion ${SHELL##*/} )
. <( kubectl completion "${BASE_SHELL}" )
if [[ -n "$(type -t 'kubectl-cnpg')" ]]; then
. <( kubectl cnpg completion ${SHELL##*/} )
if (type 'kubectl-cnpg' >/dev/null 2>&1 ); then
. <( kubectl cnpg completion "${BASE_SHELL}" )
fi
if [[ -z "$(type -t 'kubectl-cnpg')" || -n "$UPGRADE" ]]; then
if ! (type 'kubectl-cnpg' >/dev/null 2>&1) || [[ -n "$UPGRADE" ]]; then
DL_VER=1.22.0
GH_URL=https://github.com/cloudnative-pg/cloudnative-pg
DL_FILE="kubectl-cnpg_${DL_VER}_linux_x86_64.deb"
@ -54,7 +71,7 @@ if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
" sudo dpkg -i $DL_FILE"
fi
if [[ -z "$(type -t 'kubetui')" || -n "$UPGRADE" ]]; then
if ! (type 'kubetui' >/dev/null 2>&1) || [[ -n "$UPGRADE" ]]; then
DL_VER=1.5.0
GH_URL=https://github.com/sarub0b0/kubetui
DL_FILE=kubetui-x86_64-unknown-linux-musl-rustls
@ -65,26 +82,26 @@ if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
" chmod +x ~/bin/kubetui"
fi
if [[ -z "$(type -t 'k9s')" || -n "$UPGRADE" ]]; then
if ! (type 'k9s' >/dev/null 2>&1) || [[ -n "$UPGRADE" ]]; then
printf '%s\n' \
'To download and install k9s, run:' \
" curl -sS https://webinstall.dev/k9s | bash"
fi
if [[ -n "$(type -t 'k3s')" ]]; then
if (type 'k3s' >/dev/null 2>&1 ); then
. <( k3s completion "${SHELL##*/}" )
fi
if [[ -n "$(type -t 'helm')" ]]; then
if (type 'helm' >/dev/null 2>&1); then
. <( helm completion "${SHELL##*/}" 2>/dev/null )
fi
kg() {
kubectl get ${NS:+--namespace=}${NS:---all-namespaces} "${@}" | { sed -u 1q; sort; }
kubectl get "${NS:+--namespace=}${NS:---all-namespaces}" "${@}" | { sed -u 1q; sort; }
}
fi
elif [[ "$1" == '-' ]]; then
printf '%s\n' "SCRIPT_FULL_PATH='$SCRIPT_DIR/$BASE_0'"
printf 'BASE_0="%s"\n' "${BASE_0}"
cat "${BASH_SOURCE[0]}"
else
SCRIPT_NAME="$BASE_0"

View File

@ -19,11 +19,12 @@ if [[ $USER == "$(sudo bash -c "echo \$SUDO_USER")" ]]; then
sudo update-alternatives --remove vim.tiny /usr/bin/vim.tiny || true
sudo apt update
sudo apt remove vim-tiny
sudo apt install fzf neovim fd-find ripgrep
sudo apt install atool caca-utils figlet zip
sudo apt install --yes mediainfo exiftool mupdf-tools cmigemo dict dict-wn dictd libsixel-bin xsel
# sudo apt install w3m-el xdg-utils unoconv
sudo apt install --yes ranger
sudo apt install neovim
# sudo apt install fzf fd-find ripgrep
# sudo apt install atool caca-utils figlet zip
# sudo apt install --yes mediainfo exiftool mupdf-tools cmigemo dict dict-wn dictd libsixel-bin xsel
# # sudo apt install w3m-el xdg-utils unoconv
# sudo apt install --yes ranger
echo "sudo section done."
fi
else

View File

@ -1,7 +1,21 @@
#! /usr/bin/env bash
# shellcheck disable=SC2034,SC1090
# SC2034 variables appear unsued. export if used externally
# - uneeded, as this checked whether script is sourced
# SC1090 Can't follow non-constant source
BASE_0="$(basename ${0#-})"
BASE_SHELL="$(basename "$SHELL")"
# Helper function
is_sourced() {
if [ -n "$ZSH_VERSION" ]; then
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
else # Add additional POSIX-compatible shell names here, if needed.
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac
fi
return 1; # NOT sourced.
}
BASE_0=${BASE_0:-$0}
BASE_SHELL=$(basename "$SHELL")
if [[ "$1" == "--force" ]]; then
[[ -e ~/.local/bin/fzf ]] && rm ~/.local/bin/fzf
@ -12,11 +26,12 @@ fi
if [[ -z "$(type -t fzf)" || ! -e "$(type -p fzf)" ]]; then
curl -sS https://webi.sh/fzf | bash >&2
# shellcheck disable=SC2016 # $ inside single quotes is intentional
printf '%s\n' \
'Run the following and then try again:' \
' exec $SHELL -l' \
'' >&2
elif [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
elif is_sourced; then
FZF_CTRL_T_COMMAND="command find -L . -xdev -mindepth 1 \\( \
-path '*/\\.*' \
@ -28,6 +43,9 @@ elif [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
-o -type l -print 2> /dev/null | cut -b3- \
"
# shellcheck disable=SC2034
# variable appears unsued. export if used externally
# - uneeded, as script is sourced
FZF_ALT_C_COMMAND="command find -L . -xdev -mindepth 1 \\( \
-path '*/\\.*' \
-xdev \

37
load-starship Executable file
View File

@ -0,0 +1,37 @@
#! /usr/bin/env bash
# Helper function
is_sourced() {
if [ -n "$ZSH_VERSION" ]; then
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
else # Add additional POSIX-compatible shell names here, if needed.
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac
fi
return 1; # NOT sourced.
}
BASE_0=${BASE_0:-$0}
BASE_SHELL=$(basename "$SHELL")
if is_sourced; then
starship() {
if [[ ! -x "$HOME/bin/starship" ]]; then
curl -sS https://starship.rs/install.sh | FORCE=1 BIN_DIR="$HOME/bin" sh > /dev/null
fi
"$HOME/bin/starship" "${@}"
}
# shellcheck disable=SC1090
. <( starship init "$BASE_SHELL" ) 2> /dev/null
elif [[ "$1" == '-' ]]; then
echo "BASE_0=${BASE_0}"
cat "${0}"
else
SCRIPT_NAME="$BASE_0"
printf '%s\n' \
"It seems $SCRIPT_NAME was invoked as a script. It should be sourced instead." \
'The easiest way is to call it like this:' \
" $ . <( $SCRIPT_NAME - ) # Note the '-' after the script's name" \
''
fi

View File

@ -1,9 +1,19 @@
#! /usr/bin/env bash
BASE_0="$(basename ${0#-})"
BASE_SHELL="$(basename "$SHELL")"
# Helper function
is_sourced() {
if [ -n "$ZSH_VERSION" ]; then
case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac
else # Add additional POSIX-compatible shell names here, if needed.
case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac
fi
return 1; # NOT sourced.
}
if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
BASE_0=${BASE_0:-$0}
BASE_SHELL=$(basename "$SHELL")
if is_sourced; then
zellij() {
if [[ -x /tmp/zellij/bootstrap/zellij ]]; then
/tmp/zellij/bootstrap/zellij "${@}"
@ -11,13 +21,22 @@ if [[ -z "${BASE_0}" || "${BASE_0}" == "$BASE_SHELL" ]]; then
bash <(curl -sL zellij.dev/launch) "${@}"
fi
}
. <( zellij setup --generate-completion "$BASE_SHELL" )
if [[ -z "$ZELLIJ_SESSION_NAME" ]]; then
(zellij list-sessions 2&>1) > /dev/null || zellij attach -c $USER@$(hostname)
# shellcheck disable=SC2210
#(zellij list-sessions 2&>1) > /dev/null || zellij attach -c "$USER@$(hostname)"
zellij attach -c "$USER@$(hostname)" || EXITCODE=$?
# shellcheck disable=SC2086 # EXITCODE might be empty
return $EXITCODE
fi
if [[ -z "$ZSH_VERSION" ]] || (type compdef > /dev/null 2>&1); then
# shellcheck disable=SC1090
. <( zellij setup --generate-completion "$BASE_SHELL" ) 2> /dev/null
fi
elif [[ "$1" == '-' ]]; then
cat "${BASH_SOURCE[0]}"
echo "BASE_0=${BASE_0}"
cat "${0}"
else
SCRIPT_NAME="$BASE_0"
printf '%s\n' \