From c5b53cfd7c72141c5d1b188af82685799f7b907e Mon Sep 17 00:00:00 2001 From: xeruf <27jf@pm.me> Date: Sat, 28 Jan 2023 22:01:00 +0100 Subject: [PATCH] feat: improve handler detection and suffixes --- ...available.deb => handlers.available.debian | 0 handlers.available.ubuntu | 4 ++++ handlers/apt/source | 7 ++++++ handlers/ubuntu/install | 2 ++ handlers/{apt => ubuntu}/ppa | 0 instalee | 22 +++++++++++-------- packages/caddy/apt | 1 + packages/kubectl/apt | 5 ++++- packages/telegram/{apt_ppa => ubuntu_ppa} | 0 packages/xcaddy/apt | 10 +++++++++ 10 files changed, 41 insertions(+), 10 deletions(-) rename handlers.available.deb => handlers.available.debian (100%) create mode 100644 handlers.available.ubuntu create mode 100755 handlers/apt/source create mode 100755 handlers/ubuntu/install rename handlers/{apt => ubuntu}/ppa (100%) create mode 100644 packages/caddy/apt mode change 100644 => 100755 packages/kubectl/apt rename packages/telegram/{apt_ppa => ubuntu_ppa} (100%) create mode 100755 packages/xcaddy/apt diff --git a/handlers.available.deb b/handlers.available.debian similarity index 100% rename from handlers.available.deb rename to handlers.available.debian diff --git a/handlers.available.ubuntu b/handlers.available.ubuntu new file mode 100644 index 0000000..1b9e7e8 --- /dev/null +++ b/handlers.available.ubuntu @@ -0,0 +1,4 @@ +ubuntu +apt +binary +linux diff --git a/handlers/apt/source b/handlers/apt/source new file mode 100755 index 0000000..65273ce --- /dev/null +++ b/handlers/apt/source @@ -0,0 +1,7 @@ +#!/bin/sh -e +sudo apt-get install -y debian-keyring debian-archive-keyring apt-transport-https +curl="curl --tlsv1.2 -fsSL $1" +case $1 in +(*.gpg) sudo $curl -o "$2";; +(*.key) $curl | sudo gpg --dearmor --yes -o "$2";; +(*) echo 'Unknown key type' >&2; false;; diff --git a/handlers/ubuntu/install b/handlers/ubuntu/install new file mode 100755 index 0000000..73eb7df --- /dev/null +++ b/handlers/ubuntu/install @@ -0,0 +1,2 @@ +#!/bin/sh +sudo apt-get install -y "$@" diff --git a/handlers/apt/ppa b/handlers/ubuntu/ppa similarity index 100% rename from handlers/apt/ppa rename to handlers/ubuntu/ppa diff --git a/instalee b/instalee index de76fac..142506b 100755 --- a/instalee +++ b/instalee @@ -16,8 +16,8 @@ export dir_home="$(dirname $(find "$INSTALEE_HOME" \ handlersfile="$dir_home/handlers.available" dir_packages="$dir_home/packages" -highlight() { echo "$1" >&2; } -destress() { echo "$1" >&2; } +highlight() { echo $2 "$1" >&2; } +destress() { echo $2 "$1" >&2; } # Get the content of a file or the output of its execution getcontent() { @@ -77,12 +77,16 @@ installpkg() { local install args="$(getcontent "$pkg_entry")" args="${args:-$1}" - install="$(find "$handler" -name "install$ext" | head -1)" - destress " $install $args" - pkg_entry="$install $args" + installhandler="$(find "$handler" -name "install$ext")" + if test -n "$installhandler" + then pkg_entry="$installhandler $args" + else $(find "$handler" -name "${ext#_}") $args + pkg_entry="$(find "$handler" -name "install") $1" + fi else - destress " running unhandled $pkg_entry" + destress " running unhandled" -n fi + destress " $pkg_entry" $pkg_entry ) set +e @@ -135,7 +139,8 @@ case "$1" in while printf "Handler? (Ctrl-C or Ctrl-D to exit, / to list all) " && read handler do case "$handler" in - (/*) find "$dir_packages" "$dir_home/handlers" -type f -not -name "depends*" -printf "%f\n" | sort | uniq | paste -s -d ' ';; + (/*) find "$dir_packages" "$dir_home/handlers" -type f -not -name "depends*" -printf "%f\n" | + sort | uniq | paste -s -d ' ';; (*) ${EDITOR:-vi} "$dir/$handler";; esac done @@ -163,9 +168,8 @@ runinstalee() { fi } -# TODO Manjaro if ! test -f "$handlersfile" -then copy="$(find "$dir_home" -name "handlers.available.*" -exec sh -c "echo {} | rev | cut -d'.' -f1 | rev | xargs -i% expr $(cat /etc/os-release | grep '^ID=' | cut -d= -f2 | grep . || lsb_release -s -i | tr 'A-Z' 'a-z') : % >/dev/null" \; -a -print)" && +then copy=$(ls $({ cat /etc/os-release | grep -E '^ID(_LIKE)?=' | cut -d= -f2 | grep . || lsb_release -s -i | tr 'A-Z' 'a-z'; } | sed 's/^/handlers.available./' | paste -d' ' -s) 2>/dev/null | head -1) && test -n "$copy" && echo "Bootstrapping available handlers from $copy" && cp "$copy" "$handlersfile" || { diff --git a/packages/caddy/apt b/packages/caddy/apt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/packages/caddy/apt @@ -0,0 +1 @@ + diff --git a/packages/kubectl/apt b/packages/kubectl/apt old mode 100644 new mode 100755 index 575268f..b2ab183 --- a/packages/kubectl/apt +++ b/packages/kubectl/apt @@ -1,4 +1,7 @@ #!/bin/sh -e -sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg +{ +sudo curl --tlsv1.2 -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list +sudo apt-get update +} >&2 echo kubectl diff --git a/packages/telegram/apt_ppa b/packages/telegram/ubuntu_ppa similarity index 100% rename from packages/telegram/apt_ppa rename to packages/telegram/ubuntu_ppa diff --git a/packages/xcaddy/apt b/packages/xcaddy/apt new file mode 100755 index 0000000..0157ad8 --- /dev/null +++ b/packages/xcaddy/apt @@ -0,0 +1,10 @@ +#!/bin/sh -e +{ +sudo apt-get install -y debian-keyring debian-archive-keyring apt-transport-https +curl --tlsv1.2 -sSLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key' | + sudo gpg --dearmor --yes -o /usr/share/keyrings/caddy-xcaddy-archive-keyring.gpg +curl --tlsv1.2 -sSLf 'https://dl.cloudsmith.io/public/caddy/xcaddy/debian.deb.txt' | + sudo tee /etc/apt/sources.list.d/caddy-xcaddy.list +sudo apt-get update +} >&2 +echo xcaddy