From 37e3e896c6878a16bc0ecb360ae4ea723c87e2b5 Mon Sep 17 00:00:00 2001 From: pika Date: Mon, 16 Jun 2025 15:48:03 +0200 Subject: [PATCH] wip --- blackarch.sh | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 blackarch.sh diff --git a/blackarch.sh b/blackarch.sh new file mode 100644 index 0000000..913fd59 --- /dev/null +++ b/blackarch.sh @@ -0,0 +1,91 @@ +{ + #!/usr/bin/env bash + + # ─< Check if the given command exists silently >───────────────────────────────────────── + command_exists() { + command -v "$@" >/dev/null 2>&1 + } + + getImports() { + local url="$1" + local import="$(mktemp)" + if command_exists curl; then + curl -fsSL $url -o $import + elif command_exists wget; then + wget -O $import $url + else + echo "curl/wget is required, but missing.." + exit 69 + fi + + source "$import" + + echo "${BLUE}Sourcing external script:${NC} $url" + sleep 0.1 + rm -f "$import" + } + + setup-env() { + # WHY: + # This import will give you the following variables: + # _sudo="sudo -E" <- only if non root user + # distro = + # arch = bool + # fedora = bool + # opensuse = bool.... + # You can then use it for, `if $arch; then` + # Also this gives you the _install command, which installs a package pased on the packagemanager/distro used. + # + # CAUTION: + # This only wokrs for generic package names, like neovim, or vim, or tmux etc.. + # not every package packagemanager has the same packagenames for their packages.. + # + # local beddu=https://git.k4li.de/scripts/beddu/raw/branch/main/dist/beddu.sh + # local pika=https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh + # dream ~= combined beddu and pika + local dream=https://git.k4li.de/scripts/imports/raw/branch/main/dream.sh + + if ! command_exists pkg-install && ! command_exists check-and-install && ! command_exists pen; then + getImports $dream + fi + } + + setup-blackarch() { + local tmpfile + local baURL=https://blackarch.org/strap.sh + tmpfile="$(mktemp)" + + curl -fsSL $baURL -o $tmpfile + + if [ -n "$tmpfile" ]; then + $_sudo chmod +x $tmpfile + $_sudo $tmpfile + else + pen bold red "$tmpfile was empty.." + fi + } + + post-setup() { + $_sudo pacman -Syyu + } + + main() { + if ! command_exists curl; then + pkg-install curl + fi + + setup-blackarch && post-setup + } + + if setup-env; then + # ─< package variable >─────────────────────────────────────────────────────────────────── + unset PACKAGE + + if $arch; then + main + else + throw bold red "Your distro $distro is not made for blackarch.." + exit 69 + fi + fi +}