local/bin/: Remove tlctl (use Guix instead).

master
Pierre Neidhardt 2019-09-27 22:18:30 +02:00
parent ef40e0e126
commit 79e0d99399
1 changed files with 0 additions and 74 deletions

View File

@ -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 $?