From 381a0450e599e3a05607117e4b55bb55d4433c4a Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Sun, 9 Nov 2025 20:44:40 -0500 Subject: [PATCH] feat: Prep for new run syntax. --- run | 128 ++++++++++++++++++++++++++++++++---------------- runs/before/yay | 9 ++++ 2 files changed, 96 insertions(+), 41 deletions(-) create mode 100755 runs/before/yay diff --git a/run b/run index 9e9d50d..e173e3c 100755 --- a/run +++ b/run @@ -8,8 +8,8 @@ # if [ -z "$DEV_ENV" ]; then - echo "env var DEV_ENV needs to be present" - exit 1 + echo "env var DEV_ENV needs to be present" + exit 1 fi # if i just did DEV_ENV=$(pwd) ./run then this is needed for the rest of the @@ -21,62 +21,108 @@ dry_run="0" uninstall="0" while [[ $# -gt 0 ]]; do - echo "ARG: \"$1\"" + echo "ARG: \"$1\"" - # Handle a --dry or --dry-run argument - if [[ "$1" =~ ^--dry ]]; then - dry_run="1" - # Handle an --uninstall argument - elif [[ "$1" =~ ^--u ]]; then - uninstall="1" - # Handle an --install argument (default) - elif [[ ! "$1" =~ ^--i ]]; then - grep="$1" - fi - shift + # TODO: Fix some of these arguments, should we add a '--grep' option, should '[un]install' be args / not options? + # Handle a --dry or --dry-run argument + if [[ "$1" =~ ^--dry ]]; then + dry_run="1" + # Handle an --uninstall argument + elif [[ "$1" =~ ^--u ]]; then + uninstall="1" + # Handle an --install argument (default) + elif [[ ! "$1" =~ ^--i ]]; then + grep="$1" + else + grep="$1" + fi + shift done +# TODO: Setup proper logging using '$SCRIPTS/hypr/logging' log() { - if [[ $dry_run == "1" ]]; then - echo "[DRY_RUN]: $1" - else - echo "$1" - fi + if [[ $dry_run == "1" ]]; then + echo "[DRY_RUN]: $1" + else + echo "$1" + fi } +# TODO: Remove. run() { - local script=$1 - local flag=$2 - log "running script: $script $flag" + local script=$1 + local flag=$2 + log "running script: $script $flag" - local actual_flags="-S --noconfirm" + local actual_flags="-S --noconfirm" - if [[ $flag == "--uninstall" ]]; then - actual_flags="-Rns" - fi - log "ok, here's the actual script:: $s $actual_flags" + if [[ $flag == "--uninstall" ]]; then + actual_flags="-Rns" + fi + log "ok, here's the actual script:: $s $actual_flags" - if [[ $dry_run == "0" ]]; then - $script $actual_flags - fi + if [[ $dry_run == "0" ]]; then + $script $actual_flags + fi } +install() { + local file line pkg + + file=${1:-""} + # Early out if the file is not readable. + [[ ! -r $file ]] && exit 1 + + # Loop over lines in the file and install the packages. + while read -r line; do + # Skip lines that begin with '#' (comments) + if [[ ! $line =~ ^# ]]; then + # Remove any inline comments. + pkg=${line%% \#*} + # TODO: We should log something here?? + [[ $dry_run == "0" ]] && yay -S --noconfirm --needed "$pkg" + fi + done <"$file" +} + +uninstall() { + local file line pkg + + file=${1:-""} + # Early out if the file is not readable. + [[ ! -r $file ]] && exit 1 + + # Loop over lines in the file and uninstall the packages. + while read -r line; do + # Skip lines that begin with '#' (comments) + if [[ ! $line =~ ^# ]]; then + # Remove any inline comments. + pkg=${line%% \#*} + # TODO: We should log something here?? + [[ $dry_run == "0" ]] && yay -Rns "$pkg" + fi + done <"$file" +} + ############################## MAIN ############################## -log "RUN: env: $env -- grep: $grep" +log "RUN: -- grep: $grep" -runs_dir=$(find $DEV_ENV/runs -mindepth 1 -maxdepth 1 -executable) +#runs_dir=$(find $DEV_ENV/runs -mindepth 1 -maxdepth 1 -type f) # TODO: keep +runs_dir=$(find $DEV_ENV/runs -mindepth 1 -maxdepth 1 -executable) # TODO: remove. for s in $runs_dir; do - if basename $s | grep -vq "$grep"; then - log "grep \"$grep\" filtered out $s" - continue - fi + if basename $s | grep -vq "$grep"; then + log "grep \"$grep\" filtered out $s" + continue + fi - if [[ $uninstall == "1" ]]; then - run $s --uninstall - else - run $s --install - fi + if [[ $uninstall == "1" ]]; then + # TODO: Use function instead. + run $s --uninstall + else + # TODO: Use function instead. + run $s --install + fi done diff --git a/runs/before/yay b/runs/before/yay new file mode 100755 index 0000000..c90f2b2 --- /dev/null +++ b/runs/before/yay @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +if ! command -v yay >/dev/null 2>&1; then + sudo pacman -S --noconfirm --needed git base-devel + git clone https://aur.archlinux.org/yay.git ~/yay + cd ~/yay + makepkg -si + rm -rf ~/yay +fi