mirror of
https://git.pumpin.online/funkpower/menologion.git
synced 2026-10-22 18:57:14 +00:00
the documented way to use this did not work
`import qs.horologion.modules` was the README's headline instruction and it
fails outright: Quickshell resolves `qs` against the host config root, not
the subtree, so in an empty shell the type is unavailable and in a populated
one the widget would have silently bound to the host's Config and Theme
instead of its own. The imports inside are now relative and each directory
carries a qmldir, so `import "horologion/modules"` works in any host and the
three pieces really are usable on their own.
- refresh() dropped a request made while a run was in flight, so a
jurisdiction or date set a moment after startup never took effect until
midnight. It queues now.
- The waybar script exited non-zero on its error paths, and waybar hides a
module whose script does that -- so a missing typikon made the module
vanish rather than say so, and the .error CSS was dead. An unrecognised
--format field raised instead of rendering empty, and the tooltip
interpolated unescaped text into Pango markup, which matters because
--update-menaion fetches commemorations from a page nobody here controls.
- The installer aborted the whole run at the point where it printed
'leaving it alone', and a wholly successful run exited 1 because the last
statement was a failed [ -d ] test under set -e. --help demanded typikon,
which is what --help would have told you to install.
- eww painted every day with the feast colour and printed a dangling
separator, because it compares against "" and eww renders a JSON null as
the string "null". The parenthesised ?: form two lines away was already
right. The week list also repeated today.
pip install typikon installed nothing; there is no such package, and that was
the first line of every install path. Pascha now carries its label instead of
being a bare ISO date in a corner.
tests/smoke.sh covers the scripts, which is where all of this lived and where
nothing was covered. It caught two of these while being written.
This commit is contained in:
+23
-8
@@ -20,12 +20,17 @@ horologion-install [quickshell|waybar|eww|bin|all]
|
||||
USAGE
|
||||
}
|
||||
|
||||
# Set when something was skipped, so the run can report it in its exit status
|
||||
# without `set -e` tearing the rest of the install down.
|
||||
skipped=0
|
||||
|
||||
link() {
|
||||
local from="$1" to="$2"
|
||||
mkdir -p "$(dirname "$to")"
|
||||
if [ -e "$to" ] && [ ! -L "$to" ]; then
|
||||
echo " ! $to exists and is not a link — leaving it alone" >&2
|
||||
return 1
|
||||
skipped=1
|
||||
return 0
|
||||
fi
|
||||
ln -sfn "$from" "$to"
|
||||
echo " $to -> $from"
|
||||
@@ -74,13 +79,19 @@ do_eww() {
|
||||
NOTE
|
||||
}
|
||||
|
||||
command -v typikon >/dev/null 2>&1 || {
|
||||
require_typikon() {
|
||||
command -v typikon >/dev/null 2>&1 && return 0
|
||||
echo "horologion: typikon is not on PATH." >&2
|
||||
echo " pip install typikon" >&2
|
||||
echo " https://git.pumpin.online/funkpower/typikon" >&2
|
||||
echo " pipx install git+https://git.pumpin.online/funkpower/typikon" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# --help must not be gated behind the dependency it tells you about.
|
||||
case "${1:-all}" in
|
||||
-h|--help|help) usage; exit 0 ;;
|
||||
esac
|
||||
require_typikon
|
||||
|
||||
case "${1:-all}" in
|
||||
quickshell) do_bin; do_quickshell ;;
|
||||
waybar) do_bin; do_waybar ;;
|
||||
@@ -88,10 +99,14 @@ case "${1:-all}" in
|
||||
bin) do_bin ;;
|
||||
all)
|
||||
do_bin
|
||||
[ -d "$config/quickshell" ] && do_quickshell
|
||||
[ -d "$config/waybar" ] && do_waybar
|
||||
[ -d "$config/eww" ] && do_eww
|
||||
# `[ -d x ] && f` as the last statement of the script would make a
|
||||
# perfectly good run exit 1 under `set -e` whenever the directory is
|
||||
# absent. Hence the `|| true`, and the explicit exit below.
|
||||
[ -d "$config/quickshell" ] && do_quickshell || true
|
||||
[ -d "$config/waybar" ] && do_waybar || true
|
||||
[ -d "$config/eww" ] && do_eww || true
|
||||
;;
|
||||
-h|--help|help) usage ;;
|
||||
*) usage; exit 2 ;;
|
||||
esac
|
||||
|
||||
exit "$skipped"
|
||||
|
||||
Reference in New Issue
Block a user