.save: renamed to .pkggen. This script is no more used to maintain backups. It only generate package lists for various distributions including TeX Live.

master
Ambrevar 2013-01-09 11:41:04 +01:00
parent 4c2bea8bcb
commit 3eb2b903ad
3 changed files with 72 additions and 258 deletions

View File

@ -1,10 +1,11 @@
amscls
amsmath
babel
beamer
carlisle
ec
eplain
eurosym
eukdate
fancyhdr
geometry
glossaries
@ -29,6 +30,5 @@ pgf
tabulary
tools
url
was
xcolor
xkeyval

70
.pkggen Executable file
View File

@ -0,0 +1,70 @@
#!/usr/bin/env zsh
################################################################################
## Package List Generator
## 2013-01-09
################################################################################
## This script used to save the file list. of my home config. However this is
## quiet cumbersome to maintain, especially in sync with a VCS. Since VCS can do
## the same job much more easily, I do not feel the need anymore to use this
## script for backup purpose. Still it remains useful to create package lists
## for pacman, FreeBSD, TeX Live, and so on.
## Git can create a bundle with:
##
## git bundle create --all
##
## and can list files with
##
## git ls-files
## This script should be compatible with ksh, bash and zsh. Issue with sh
## however: we use arrays. Therefore we do not comply with POSIX and use some
## extended syntax for file input -- the <(...) syntax. We used to write the
## file list in an array which is not support by POSIX neither.
## Note for zsh: because of the Ksh-style arrays (index starting at 0), you
## cannot use array index to append elements to arrays -- otherwise the
## KSH_ARRAYS option for zsh must be used.
## Variables
OLDPATH="$(pwd)"
cd "$HOME"
SCRIPTPATH="$(readlink -f $(dirname "$0"))"
HOST=$(hostname)
## Arch Linux
if [ -e "/usr/bin/pacman" ]; then
ARCH_PKG_OFFICIAL="$HOME/.pkg-arch-official"
ARCH_PKG_EXPLICIT="$HOME/.pkg-arch-explicit"
ARCH_PKG_AUR="$HOME/.pkg-arch-aur"
PKG_LOCAL='pacman -Qq | sort'
PKG_FOREIGN='pacman -Qmq | sort'
PKG_EXPLICIT='pacman -Qeq | sort'
comm -3 <(eval "${PKG_LOCAL}") <(eval "${PKG_FOREIGN}") >"${ARCH_PKG_OFFICIAL}-${HOST}"
eval "${PKG_EXPLICIT}" >"${ARCH_PKG_EXPLICIT}-${HOST}"
eval "${PKG_FOREIGN}" >"${ARCH_PKG_AUR}-${HOST}"
fi
## FreeBSD
if [ "$(uname)" = "FreeBSD" ]; then
pkg_info | cut -f1 -d' ' >"$HOME/.pkg-freebsd-${HOST}"
fi
## TeXlive
if type tlmgr >/dev/null 2>&1; then
HOST=$(hostname)
## We use <TAB> in the sed expressions.
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' >"$HOME/.pkg-texlive-$(uname)-${HOST}"
fi
## Cleaning
cd "${OLDPATH}"

256
.save
View File

@ -1,256 +0,0 @@
#!/usr/bin/env zsh
################################################################################
## Home Config Backup Script
## 2012-11-01
################################################################################
## This script should be compatible with ksh, bash and zsh. Issue with sh
## however: we use arrays. Therefore we do not comply with POSIX and use some
## extended syntax for arrays and file input -- the <(...) syntax.
## Note for Zsh: because of the Ksh-style arrays (index starting at 0), you
## cannot use array index to append elements to arrays -- otherwise the
## KSH_ARRAYS option for zsh must be used.
##==============================================================================
## Options
##==============================================================================
## Set Debug mode on
DEBUG=no
if [ "$DEBUG" = "yes" ]; then
set -x
fi
## Variables
OLDPATH="$(pwd)"
cd "$HOME"
SCRIPTPATH="$(readlink -f $(dirname "$0"))"
COMPRESSION="gz"
ARCHIVENAME="$HOME/home-config-$(date "+%y-%m-%d-%H%M%S")"
ARCEXT="tar.gz"
ARCOPT="czf"
print_help()
{
echo "Synopsis:"
echo " $1 [-o ARCHIVENAME] [-m COMPRESSION]"
echo
echo "Usage:"
echo " default: "
echo " -h:\t\tDisplay this help."
echo " -m: compression method among"
echo " * gz (default)"
echo " * xz"
echo " -o: output archive name (without extension)."
echo ""
echo "Note: xz is not available on older Unices."
}
while getopts ":hm:o:" opt; do
case $opt in
h)
print_help "$0"
exit 1
;;
m)
COMPRESSION="$OPTARG"
;;
o)
ARCHIVENAME="${OLDPATH}/$OPTARG"
;;
?)
print_help "$0"
exit 1
;;
:)
echo "Missing argument."
echo "Use $0 -h for help."
exit 1
;;
esac
done
shift $(($OPTIND - 1))
case $COMPRESSION in
"gz")
ARCEXT="tar.gz"
ARCOPT="czf"
;;
"xz")
ARCEXT="tar.xz"
ARCOPT="cJf"
;;
*)
ARCEXT="tar.gz"
ARCOPT="czf"
;;
esac
if [ "${DEBUG}" = "yes" ]; then
echo "COMPRESSION=[$COMPRESSION]"
echo "ARCHIVENAME=[$ARCHIVENAME]"
echo "ARCEXT=[$ARCEXT]"
echo "ARCOPT=[$ARCOPT]"
fi
if [ -e "${ARCHIVENAME}.${ARCEXT}" ]; then
echo "Error: ${ARCHIVENAME}.${ARCEXT} already exists!">&2
exit 0
fi
##==============================================================================
## Packages list
##==============================================================================
HOST=$(hostname)
## Arch Linux
if [ -e "/usr/bin/pacman" ]; then
ARCH_PKG_OFFICIAL="$HOME/.pkg-arch-official"
ARCH_PKG_EXPLICIT="$HOME/.pkg-arch-explicit"
ARCH_PKG_AUR="$HOME/.pkg-arch-aur"
PKG_LOCAL='pacman -Qq | sort'
PKG_FOREIGN='pacman -Qmq | sort'
PKG_EXPLICIT='pacman -Qeq | sort'
comm -3 <(eval "${PKG_LOCAL}") <(eval "${PKG_FOREIGN}") >"${ARCH_PKG_OFFICIAL}-${HOST}"
eval "${PKG_EXPLICIT}" >"${ARCH_PKG_EXPLICIT}-${HOST}"
eval "${PKG_FOREIGN}" >"${ARCH_PKG_AUR}-${HOST}"
fi
## FreeBSD
if [ "$(uname)" = "FreeBSD" ]; then
pkg_info | cut -f1 -d' ' >"$HOME/.pkg-freebsd-${HOST}"
fi
## TeXlive
if type tlmgr >/dev/null 2>&1; then
HOST=$(hostname)
## We use <TAB> in the sed expressions.
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' >"$HOME/.pkg-texlive-$(uname)-${HOST}"
fi
##==============================================================================
## Let's fill the file list:
##==============================================================================
FILELIST=()
## Distro + TeXlive Package list
for i in $(find . -maxdepth 1 -name '.pkg*' -exec basename {} \;)
do
FILELIST=(${FILELIST[*]} "$i")
done
## Awesome
FILELIST=(${FILELIST[*]} ".config/awesome/rc.lua")
FILELIST=(${FILELIST[*]} ".config/awesome/themes/custom/theme.lua")
## cmus
FILELIST=(${FILELIST[*]} ".cmus/rc")
## DWB
FILELIST=(${FILELIST[*]} ".config/dwb/searchengines")
FILELIST=(${FILELIST[*]} ".config/dwb/settings")
## Emacs
FILELIST=(${FILELIST[*]} ".emacs")
FILELIST=(${FILELIST[*]} ".emacs.d/abbrev_defs")
FILELIST=(${FILELIST[*]} ".emacs.d/functions.el")
FILELIST=(${FILELIST[*]} ".emacs.d/main.el")
FILELIST=(${FILELIST[*]} ".emacs.d/modes.el")
FILELIST=(${FILELIST[*]} ".emacs.d/plugins.el")
FILELIST=(${FILELIST[*]} ".emacs.d/snippets")
FILELIST=(${FILELIST[*]} ".emacs.d/theme.el")
## GTK
FILELIST=(${FILELIST[*]} ".gtkrc-2.0")
# FILELIST=(${FILELIST[*]} ".config/gtk-3.0/settings.ini")
## Git
FILELIST=(${FILELIST[*]} ".gitconfig")
## Homeinit
FILELIST=(${FILELIST[*]} ".homeinit")
## Luakit
FILELIST=(${FILELIST[*]} ".config/luakit/rc.lua")
FILELIST=(${FILELIST[*]} ".config/luakit/globals.lua")
## Mutt
FILELIST=(${FILELIST[*]} ".muttrc")
FILELIST=(${FILELIST[*]} ".mutt.d/colors.ambrevar")
FILELIST=(${FILELIST[*]} ".mutt.d/colorset.sh")
FILELIST=(${FILELIST[*]} ".mutt.d/mailcap")
## Netinit
FILELIST=(${FILELIST[*]} ".netinit")
## Ranger
FILELIST=(${FILELIST[*]} ".config/ranger/apps.py")
FILELIST=(${FILELIST[*]} ".config/ranger/options.py")
FILELIST=(${FILELIST[*]} ".config/ranger/rc.conf")
FILELIST=(${FILELIST[*]} ".config/ranger/scope.sh")
## README
FILELIST=(${FILELIST[*]} "README")
## rtorrent
FILELIST=(${FILELIST[*]} ".rtorrent.rc")
## Shells
FILELIST=(${FILELIST[*]} ".bash_profile")
FILELIST=(${FILELIST[*]} ".bashrc")
FILELIST=(${FILELIST[*]} ".zshrc")
for i in $(ls -a .shell.d/*|grep -vi 'bhistory')
do
FILELIST=(${FILELIST[*]} "$i")
done
## Taskwarrior
FILELIST=(${FILELIST[*]} ".taskrc")
## Terminfo
# FILELIST=(${FILELIST[*]} ".terminfo/x/xterm")
## TeXlive
FILELIST=(${FILELIST[*]} ".texmf")
## Vim
FILELIST=(${FILELIST[*]} ".vimrc")
## Xinit
FILELIST=(${FILELIST[*]} ".xinitrc")
## XKB
FILELIST=(${FILELIST[*]} ".xkb")
## Xresource
FILELIST=(${FILELIST[*]} ".Xresources")
##==============================================================================
## Archiving
##==============================================================================
tar ${ARCOPT} "${ARCHIVENAME}.${ARCEXT}" -C "$HOME" ${FILELIST[*]} -C "$SCRIPTPATH" "$(basename "$0")"
##==============================================================================
## Cleaning
##==============================================================================
cd "${OLDPATH}"
## Set Debug mode off
if [ "$DEBUG" = "yes" ]; then
set +x
fi