dotfiles/symlinks/script_utils/parse-package-managers-para...

53 lines
836 B
Bash
Executable File

#!/bin/bash
declare -A SKIP=()
POSITIONAL=()
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-s|--skip)
shift # past argument
SKIP["$1"]=1
shift # past value
;;
*) # unknown option
POSITIONAL+=("$1") # save it in an array for later
shift # past argument
;;
esac
done
declare -A RUN=()
for command in "pacman" "apt" "dnf" "flatpak" "gem" "nvim" "mise" "brew" "pacman" "pip" "pip2" "pip3";
do
if type $command > /dev/null 2>&1
then
if [ "${SKIP[$command]}" = "1" ]; then
RUN[$command]=0
else
RUN[$command]=1
fi
else
RUN[$command]=0
fi
done
# Special case for vim
if type -f vim > /dev/null 2>&1
then
if [ "${SKIP[vim]}" = "1" ]; then
RUN[vim]=0
else
RUN[vim]=1
fi
else
RUN[vim]=0
fi
export SKIP=$SKIP
export RUN=$RUN
export POSITIONAL=$POSITIONAL