[[ $EUID == 0 ]] || exec sudo "$BASH_SOURCE" "$@"
usage() {
- cat <<EOF
+ cat <<EOF
Usage: ${0##*/} []
Install or uninstall files to /usr/local/bin
Note: Uses GNU getopt options parsing style
EOF
- exit $1
+ exit $1
}
dry=false
uninstall=false # default
temp=$(getopt -l help,uninstall,dry-run hun "$@") || usage 1
eval set -- "$temp"
while true; do
- case $1 in
- -n|--dry-run) dry=true; shift ;;
- -u|--uninstall) uninstall=true; shift ;;
- -h|--help) usage ;;
- --) shift; break ;;
- *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
- esac
+ case $1 in
+ -n|--dry-run) dry=true; shift ;;
+ -u|--uninstall) uninstall=true; shift ;;
+ -h|--help) usage ;;
+ --) shift; break ;;
+ *) echo "$0: Internal error! unexpected args: $*" ; exit 1 ;;
+ esac
done
files=()
for f in *; do
- if [[ -x $f && ! -d $f && ! -L $f && $f != setup ]]; then
- files+=($f)
- fi
+ if [[ -x $f && ! -d $f && ! -L $f && $f != setup ]]; then
+ files+=($f)
+ fi
done
if $uninstall; then
- if $dry; then
- echo "setup dry run: cd /usr/local/bin"
- echo "setup dry run: rm -fv ${files[*]}"
- else
- cd /usr/local/bin
- rm -fv ${files[@]}
- fi
+ if $dry; then
+ echo "setup dry run: cd /usr/local/bin"
+ echo "setup dry run: rm -fv ${files[*]}"
+ else
+ cd /usr/local/bin
+ rm -fv ${files[@]}
+ fi
else
- if $dry; then
- echo "setup dry run: install -v ${files[*]} /usr/local/bin"
- else
- install -v ${files[@]} /usr/local/bin
- fi
+ if $dry; then
+ echo "setup dry run: install -v ${files[*]} /usr/local/bin"
+ else
+ install -v ${files[@]} /usr/local/bin
+ fi
fi