local/bin/: Remove tlctl (use Guix instead).
parent
ef40e0e126
commit
79e0d99399
|
@ -1,74 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
usage () {
|
|
||||||
cat <<EOF>&2
|
|
||||||
Usage: ${0##*/} COMMAND [PACKAGES]
|
|
||||||
|
|
||||||
Wrapper around essential features of 'tlmgr' TeXlive manager.
|
|
||||||
|
|
||||||
List of commands:
|
|
||||||
|
|
||||||
f: Search files.
|
|
||||||
i: Install packages.
|
|
||||||
l List installed packages.
|
|
||||||
q Query info about package.
|
|
||||||
r: Remove packages.
|
|
||||||
s: Search packages.
|
|
||||||
u: Update tlmgr.
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
[ $# -eq 0 ] && usage && exit 1
|
|
||||||
|
|
||||||
|
|
||||||
if ! command -v tlmgr >/dev/null 2>&1; then
|
|
||||||
echo 'tlmgr not found'
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
command="$1"
|
|
||||||
shift 1
|
|
||||||
|
|
||||||
## It is important to set umask properly, otherwise users might not have
|
|
||||||
## authorization to use the packages.
|
|
||||||
case "$command" in
|
|
||||||
f)
|
|
||||||
tlmgr search --global --file "$@" ;;
|
|
||||||
h)
|
|
||||||
usage ;;
|
|
||||||
i)
|
|
||||||
sudo sh -c 'umask 022 && tlmgr install $0 "$@"' "$@" ;;
|
|
||||||
l)
|
|
||||||
## Note: We use <TAB> in the sed expressions.
|
|
||||||
TEXLIVE_BASIC="$(mktemp)"
|
|
||||||
tlmgr info collection-basic --list | sed -n '/^ /{s/ //g;p;}' | LC_ALL=C sort >"$TEXLIVE_BASIC"
|
|
||||||
|
|
||||||
TEXLIVE_ALL="$(mktemp)"
|
|
||||||
tlmgr info --only-installed | grep -v 'x86_64\|amd64' | cut -d' ' -f2 | cut -f1 -d':' | LC_ALL=C sort >"$TEXLIVE_ALL"
|
|
||||||
|
|
||||||
LC_ALL=C comm -3 "$TEXLIVE_BASIC" "$TEXLIVE_ALL" | sed 's/ //g' | \
|
|
||||||
grep -vi 'collection-basic\|scheme-minimal\|texlive-common\|texlive-docindex\|texlive-en'
|
|
||||||
|
|
||||||
rm "$TEXLIVE_ALL" "$TEXLIVE_BASIC"
|
|
||||||
;;
|
|
||||||
q)
|
|
||||||
## First query locally, then online db if needed.
|
|
||||||
buf=$(tlmgr info --list --only-installed "$@")
|
|
||||||
installed=$(echo "$buf" | awk '$1 == "package:" {firstline=$0; getline; if($1!="category:") next; else print firstline } 1')
|
|
||||||
echo "$installed"
|
|
||||||
missing=$(echo "$buf" | awk '$1 == "package:" {pkg=$2; getline; if($1!="category:") print pkg}')
|
|
||||||
[ -n "$missing" ] && tlmgr info --list "$missing"
|
|
||||||
;;
|
|
||||||
r)
|
|
||||||
sudo sh -c 'umask 022 && tlmgr remove $0 "$@"' "$@" ;;
|
|
||||||
s)
|
|
||||||
tlmgr search --global "$@" ;;
|
|
||||||
u)
|
|
||||||
sudo sh -c 'umask 022 && tlmgr update --self' ;;
|
|
||||||
*)
|
|
||||||
echo "wrong command '$command'"
|
|
||||||
usage
|
|
||||||
exit 1 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit $?
|
|
Loading…
Reference in New Issue