feat: echo to stderr and improve helpers for new entries

This commit is contained in:
xeruf 2022-10-02 00:24:41 +02:00
parent c2aff5bc18
commit 5a51c31af3

View file

@ -7,8 +7,8 @@ dir_home="$(find "$INSTALEE_HOME" "${XDG_CONFIG_HOME:-$HOME/.config}/$name" "$HO
handlers="$dir_home/handlers.available"
dir_packages="$dir_home/packages"
highlight() { echo "$1"; }
destress() { echo "$1"; }
highlight() { echo "$1" >&2; }
destress() { echo "$1" >&2; }
# Get the content of a file or the output of its execution
getcontent() {
@ -28,8 +28,8 @@ getentries() {
# Install a package by name
installpkg() {
test "$1" = "--quiet" && local quiet=true && shift
local package_available_entries=$(getentries "$1")
local dir_package="$dir_packages/$1/"
test -d "$dir_package" && local package_available_entries=$(getentries "$1")
if test -z "$package_available_entries"; then
local pkghandlers="$(find "$dir_package" -type f -printf "%f\n" 2>/dev/null)"
for handler in $pkghandlers
@ -48,7 +48,7 @@ installpkg() {
set -e
local name="$(basename $pkg_entry)"
local base="${name%_*}"
echo "Dependencies"
echo "Dependencies" >&2
for dependency in $(cat "${dir_package}depends" "${dir_package}${base}_depends" 2>/dev/null)
do runinstalee $dependency | sed 's/^/ /'
done
@ -80,7 +80,7 @@ installpkg() {
case "$1" in
(-V|--version|"")
printf "$name r%s.%s\n" "$(git rev-list --count HEAD 2>/dev/null)" "$(git rev-parse --short HEAD 2>/dev/null)"
echo "Try '$0 --help' or 'man $name' for usage info"
echo "Try '$0 --help' or 'man $name' for usage info" >&2
# TODO license https://www.gnu.org/prep/standards/html_node/_002d_002dversion.html#g_t_002d_002dversion
exit 0
;;
@ -88,8 +88,23 @@ case "$1" in
man $name 2>/dev/null || man "$dir_home/$name.1"
exit $?
;;
(-a|--add)
(-v|--verbose) set -x; shift;;
(-d|--default) default=true; shift;;
(-x|--noexec) noexec=true; shift;;
(-a|--add*)
action=$1
shift
case "$action" in
(*=group) ${EDITOR:-vi} "$dir_home/groups/$1"; exit $?;;
(*=handler)
file="$dir_home/handlers/$1/install"
if ! test -f "$file"; then
mkdir -p "$(dirname "$file")"
printf "#!/bin/sh -e\n$1 install "'"$@"' >"$file"
fi
${EDITOR:-vi} "$file"
exit $?;;
esac
if test $# -gt 0
then packagename=$1; shift
else printf "Name of the package? "; read packagename
@ -111,17 +126,15 @@ case "$1" in
exit 0
fi
;;
(-v|--verbose) set -x; shift;;
(-d|--default) default=true; shift;;
(-x|--noexec) noexec=true; shift;;
esac
noexec=true
installdefault() {
local defaulthandler="$(head -1 "$handlers")"
highlight "Attempting install of $1 via default handler"
highlight "Attempting install of '$1' via default handler '$defaulthandler'"
$(test "$noexec" && echo "sh") "$dir_home/handlers/$defaulthandler/install" "$1" &&
$(test "$noexec" && echo "sh") "$self" --add "$1" "$defaulthandler" ""
$(test "$noexec" && echo "sh") "$self" --add "$1" "$defaulthandler" "" &&
echo "Added package entry for '$1' via '$defaulthandler'" >&2
}
runinstalee() {
@ -139,7 +152,7 @@ then copy="$(find "$dir_home" -name "handlers.available.*" -exec sh -c "echo {}
test -n "$copy" &&
echo "Bootstrapping available handlers from $copy" &&
cp "$copy" "$handlers" || {
echo "Missing available handlers in $handlers!"
echo "Missing available handlers in $handlers!" >&2
exit 1
}
fi