mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-13 22:02:34 +00:00
feat: Prep for new run syntax.
This commit is contained in:
128
run
128
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
|
||||
|
||||
Reference in New Issue
Block a user