Introduce `miaur self-update` / `--self-update` that clones RepoUrl@Branch, detects user vs system install prefix, and reinstalls in place. Configurable via conf/env; supports --noconfirm, --repo-url, and --branch. Co-authored-by: Frank Vitrano <WHC2006@users.noreply.github.com>
83 lines
2.6 KiB
Bash
83 lines
2.6 KiB
Bash
#!/usr/bin/env bash
|
|
# Config defaults and loader for miaur
|
|
|
|
# Defaults
|
|
MIAUR_AURURL="${MIAUR_AURURL:-https://aur.archlinux.org}"
|
|
MIAUR_AURRPC="${MIAUR_AURRPC:-https://aur.archlinux.org/rpc/v5}"
|
|
MIAUR_CLONEDIR="${MIAUR_CLONEDIR:-${XDG_CACHE_HOME:-$HOME/.cache}/miaur}"
|
|
MIAUR_SKIPREVIEW="${MIAUR_SKIPREVIEW:-0}"
|
|
MIAUR_CLEANAFTER="${MIAUR_CLEANAFTER:-0}"
|
|
MIAUR_REMOVEMAKE="${MIAUR_REMOVEMAKE:-1}"
|
|
MIAUR_BOTTOMUP="${MIAUR_BOTTOMUP:-0}"
|
|
MIAUR_SUDOLOOP="${MIAUR_SUDOLOOP:-1}"
|
|
MIAUR_NOCONFIRM="${MIAUR_NOCONFIRM:-0}"
|
|
MIAUR_MFLAGS="${MIAUR_MFLAGS:--si}"
|
|
MIAUR_SORTBY="${MIAUR_SORTBY:-votes}"
|
|
MIAUR_SEARCHBY="${MIAUR_SEARCHBY:-name-desc}"
|
|
MIAUR_MODE="${MIAUR_MODE:-}" # aur|repo|empty=both
|
|
MIAUR_SUDO="${MIAUR_SUDO:-sudo}"
|
|
MIAUR_SUDOFLAGS="${MIAUR_SUDOFLAGS:-}"
|
|
MIAUR_GIT="${MIAUR_GIT:-git}"
|
|
MIAUR_MAKEPKG="${MIAUR_MAKEPKG:-makepkg}"
|
|
MIAUR_PACMAN="${MIAUR_PACMAN:-pacman}"
|
|
MIAUR_BAT="${MIAUR_BAT:-bat}"
|
|
MIAUR_EDITOR="${VISUAL:-${EDITOR:-nano}}"
|
|
MIAUR_REPO="${MIAUR_REPO:-https://github.com/WHC2006/miaur.git}"
|
|
MIAUR_BRANCH="${MIAUR_BRANCH:-main}"
|
|
|
|
_bool_val() {
|
|
case "${1,,}" in
|
|
1 | true | yes | on) printf '1' ;;
|
|
0 | false | no | off) printf '0' ;;
|
|
*) printf '%s' "$1" ;;
|
|
esac
|
|
}
|
|
|
|
miaur_load_config() {
|
|
local conf="${XDG_CONFIG_HOME:-$HOME/.config}/miaur/miaur.conf"
|
|
[[ -f $conf ]] || return 0
|
|
local line key val
|
|
while IFS= read -r line || [[ -n $line ]]; do
|
|
line=${line%%#*}
|
|
line=${line#"${line%%[![:space:]]*}"}
|
|
line=${line%"${line##*[![:space:]]}"}
|
|
[[ -z $line ]] && continue
|
|
key=${line%%=*}
|
|
val=${line#*=}
|
|
key=${key%"${key##*[![:space:]]}"}
|
|
key=${key#"${key%%[![:space:]]*}"}
|
|
val=${val#"${val%%[![:space:]]*}"}
|
|
val=${val%"${val##*[![:space:]]}"}
|
|
val=${val#\"}
|
|
val=${val%\"}
|
|
val=${val#\'}
|
|
val=${val%\'}
|
|
case "$key" in
|
|
AurUrl | AURURL) MIAUR_AURURL=$val ;;
|
|
AurRpcUrl | AURRPC) MIAUR_AURRPC=$val ;;
|
|
CloneDir)
|
|
MIAUR_CLONEDIR=$val
|
|
[[ $MIAUR_CLONEDIR == ~* ]] && MIAUR_CLONEDIR="${MIAUR_CLONEDIR/#\~/$HOME}"
|
|
;;
|
|
SkipReview) MIAUR_SKIPREVIEW=$(_bool_val "$val") ;;
|
|
CleanAfter) MIAUR_CLEANAFTER=$(_bool_val "$val") ;;
|
|
RemoveMake) MIAUR_REMOVEMAKE=$(_bool_val "$val") ;;
|
|
BottomUp) MIAUR_BOTTOMUP=$(_bool_val "$val") ;;
|
|
SudoLoop) MIAUR_SUDOLOOP=$(_bool_val "$val") ;;
|
|
Noconfirm | NoConfirm) MIAUR_NOCONFIRM=$(_bool_val "$val") ;;
|
|
MFlags) MIAUR_MFLAGS=$val ;;
|
|
SortBy) MIAUR_SORTBY=$val ;;
|
|
SearchBy) MIAUR_SEARCHBY=$val ;;
|
|
Sudo) MIAUR_SUDO=$val ;;
|
|
SudoFlags) MIAUR_SUDOFLAGS=$val ;;
|
|
Git) MIAUR_GIT=$val ;;
|
|
Makepkg) MIAUR_MAKEPKG=$val ;;
|
|
Pacman) MIAUR_PACMAN=$val ;;
|
|
Bat) MIAUR_BAT=$val ;;
|
|
Editor) MIAUR_EDITOR=$val ;;
|
|
RepoUrl | MIAUR_REPO) MIAUR_REPO=$val ;;
|
|
Branch | MIAUR_BRANCH) MIAUR_BRANCH=$val ;;
|
|
esac
|
|
done <"$conf"
|
|
}
|