#!/bin/sh ## Create lists of system- and TeX Live packages. ## Variables HOST="$(hostname)" PKG_ROOT="$HOME/.pkg" mkdir -p "$PKG_ROOT" ## Arch Linux if command -v pacman >/dev/null 2>&1; then ## Note: the "-n" option was added between 2012 and 2013. pacman -Qnq | sort >"$PKG_ROOT/arch-official-${HOST}" pacman -Qmq | sort >"$PKG_ROOT/arch-aur-${HOST}" fi ## FreeBSD if [ "$(uname)" = "FreeBSD" ]; then pkg_info | cut -f1 -d' ' >"$PKG_ROOT/freebsd-${HOST}" fi ## TeXlive if command -v tlmgr >/dev/null 2>&1; then ## We use in the sed expressions. TEXLIVE_BASIC="$(mktemp)" tlmgr info collection-basic --list | sed -n '/^ /{s/ //g;p;}' | sort >"$TEXLIVE_BASIC" TEXLIVE_ALL="$(mktemp)" tlmgr info --only-installed | grep -v 'x86_64\|amd64' | cut -d' ' -f2 | cut -f1 -d':' | sort >"$TEXLIVE_ALL" comm -3 "$TEXLIVE_BASIC" "$TEXLIVE_ALL" | sed 's/ //g' | \ grep -vi 'collection-basic\|scheme-minimal\|texlive-common\|texlive-docindex\|texlive-en' >"$PKG_ROOT/texlive-$(uname)-${HOST}" rm "$TEXLIVE_ALL" "$TEXLIVE_BASIC" fi ## Zsh version # TEXLIVE_BASIC="$(tlmgr info collection-basic --list | sed -n '/^ /{s/ //g;p;}' | sort)" # TEXLIVE_ALL="$(tlmgr info --only-installed | grep -v 'x86_64\|amd64' | cut -d' ' -f2 | cut -f1 -d':' | sort)" # comm -3 <(echo "$TEXLIVE_BASIC") <(echo "$TEXLIVE_ALL") | sed 's/ //g' | \ # grep -vi 'collection-basic\|scheme-minimal\|texlive-common\|texlive-docindex\|texlive-en' >"$PKG_ROOT/texlive-$(uname)-${HOST}"