

As with all things arch based: void better


As with all things arch based: void better
I use an fzf based script that queries for updates and lets me choose what to install.
If you use xbps, or are just curious:
::: xu #!/bin/env sh
self=“$(basename “$0”)”
error() { printf ‘%s:’ “$self” >&2 # shellcheck disable=SC2068 printf ’ %s’ $@ >&2 printf ‘\n’ >&2 }
fatal() { error “$@” exit 1 }
if [ -x “$(command -v sk)” ]; then finder=sk elif [ -x “$(command -v fzf)” ]; then finder=fzf else echo “neither fzf or sk are installed” >&2 exit 1 fi
tmp=“$(mktemp)” || fatal “couldn’t source bindings” grep ‘^export’ “$DOTFILES/.zshenv” | grep -E ‘FZF|SKIM’ >“$tmp” . “$tmp” rm “$tmp”
choices=“$(xbps-install -nSu | cut -f1 -d’ ’ | sed ‘s/-[^-]*$//g’ | $finder | tr ‘\n’ ’ ')”
[ -n “$choices” ] || exit
guard=pkexec command -v “$guard” >/dev/null 2>/dev/null || guard=sudo
while ! $guard xbps-install -Syu $choices; do :; done
:::


Can anybody break this one down for an idiot like me?
Expressiveness isn’t the problem. No doubt it can be less efficient and re-usable but constructed languages are mostly syntactical interfaces to subsets of the semantics we express in natural languages all the time. By using them we can precisely express combinations that can be difficult to convey in natural languages without losing time to perspecctive and interpretation but that can only a problem if you’re in a hurry. In most cases, it’d be far more limiting to have to express natural semantics in a constructed language than the other way around. What’s more is that all the orimitives of these languages are developed using the same strategies we use in natural languages. It’s just the morphs and structures that differ.