# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports: see http://grml.org/bugs/
# License: This file is licensed under the GPL v2.
-# Latest change: Son Mai 13 11:46:44 CEST 2007 [mika]
################################################################################
# some zsh-stuff {{{
LC_ALL=C
[[ $(id -u) != 0 ]] && runas='sudo' # important for /etc
- check4progs mutt || echo "Warning, mutt not available for mail handling.">&2
check4progs findchanged tar || { echo "Sorry, can't continue. Exiting.">&2 ; exit 1 }
CONFIG=/etc/grml/saveconfig
MAILFILE="$TMPDIR/mail.txt"
[ -n "$FILELIST" ] || FILELIST=$(mktemp $TMPDIR/filelist.XXXXXX)
+# }}}
# functions {{{
debug(){
save_etc(){
debug "save etc"
if [ -n "$NEWLAYOUT" ] ; then
- $runas find /live/cow/etc | sed -e 's#/live/cow## ; /etc$/d' >> $FILELIST
+ $runas find /live/cow/etc -type f -o -type l | sed -e 's#/live/cow## ; /etc$/d' >> $FILELIST
else
$runas findchanged /etc /GRML/etc >> $FILELIST
fi
save_configdir(){
debug "save configdir"
if [ -d $HOME/config ] ; then
- ls $HOME/config/* >> $FILELIST 2>/dev/null
+ ls $HOME/config/* >> $FILELIST 2>/dev/null
ls $HOME/config/.* >> $FILELIST 2>/dev/null
fi
}
if ! [ -r "$FILELIST" ]; then
echo "Sorry, filelist $FILELIST could not be read." >&2
echo "Error when generating $FILENAME." >&2
+ exit 1
else
# GNU tar sucks so much, really. Avoid the "file changed as we read it":
- tar cf /dev/null /etc
+ tar cf /dev/null /etc 2>/dev/null
# now really execute the according tar command:
BZIP2=-9 $runas tar -T - -cpPjf "$FILENAME" <"$FILELIST" && \
echo "Successfully stored configuration in file $FILENAME" || \
fi
if [[ "$o_mail" != "" ]]; then
- check4progs mutt || { echo "Sorry, mutt not available for sending mail. Exiting.">&2 ; exit 1 }
+ check4progs mutt || { echo "Sorry, mutt not available for sending mail. Exiting.">&2 ; exit 1 ; }
recipient=$o_mail[2]
debug "send mail to $recipient"
echo "Created on $DATE on host $HOSTNAME running grml $GRML_VERSION" > $MAILFILE
save_home
SETSAVE=1
fi
+
if [[ $SAVE_GRMLHOME == "yes" ]]; then
debug "running save_grmlhome"
save_grmlhome
SETSAVE=1
fi
+
if [[ $SAVE_ETC == "yes" ]] ; then
debug "running save_etc"
save_etc
SETSAVE=1
fi
+
if [[ $SAVE_CONFIGDIR == "yes" ]] ; then
debug "running save_configdir"
save_configdir
SETSAVE=1
fi
+
if [ -z $SETSAVE ] ; then
- echo "Sorry, you did not select any configuration which should be saved. Exiting." ; exit 1
+ echo "Sorry, you did not select any configuration which should be saved. Exiting.">&2
+ exit 1
fi
}