ppcrcd/conf.dir/usr/lib/ppcrcd: load-conf saveconfig
sparky
cvs at pld-linux.org
Thu Jan 5 21:08:16 CET 2006
Author: sparky
Date: Thu Jan 5 21:08:13 2006
New Revision: 6741
Modified:
ppcrcd/conf.dir/usr/lib/ppcrcd/load-conf
ppcrcd/conf.dir/usr/lib/ppcrcd/saveconfig
Log:
- use xmltar for archiving config
Modified: ppcrcd/conf.dir/usr/lib/ppcrcd/load-conf
==============================================================================
--- ppcrcd/conf.dir/usr/lib/ppcrcd/load-conf (original)
+++ ppcrcd/conf.dir/usr/lib/ppcrcd/load-conf Thu Jan 5 21:08:13 2006
@@ -39,25 +39,18 @@
[ -r "/dev/$DEV" ] || die 5 "No such device: /dev/$DEV"
fi
-[ -z "$FILE" ] && FILE=ppcrcd.tgz
+[ -z "$FILE" ] && FILE=ppcrcd.xml.gz
mkdir -p /media/conf
mount $FS /dev/$DEV /media/conf || die 7 "Can't mount"
[ -r "/media/conf/$FILE" ] || die 9 "No file; $(ls /media/conf/)"
( gunzip -c /media/conf/$FILE || die 10 "Can't uncompress" ) \
- | tar --exclude=etc/{fs,m}tab -xf - || die 11 "Can't unpack"
+ | xmluntar.pl || die 11 "Can't unpack"
[ -r etc/fstab.add ] && ( echo "#Saved:"; cat etc/fstab.add) >> etc/fstab
rm -f etc/fstab.add
-if [ -r /removed ]; then
- while read to_del; do
- rm $to_del
- done < /removed
- rm /removed
-fi
-
for DIR in $(egrep "^/dev" /etc/fstab | awk '{print $2}' | egrep "^(/media|/mnt)"); do
mkdir -p $DIR
done
Modified: ppcrcd/conf.dir/usr/lib/ppcrcd/saveconfig
==============================================================================
--- ppcrcd/conf.dir/usr/lib/ppcrcd/saveconfig (original)
+++ ppcrcd/conf.dir/usr/lib/ppcrcd/saveconfig Thu Jan 5 21:08:13 2006
@@ -4,7 +4,7 @@
# prepare and check ##########################################################
OUT_DIR=$1
-OUT_FILE=ppcrcd.tgz
+OUT_FILE=ppcrcd.xml.gz
[ -n "$OUT_DIR" ] || die 1 "Directory or file must be specified"
if ! [ -d "$OUT_DIR" ]; then
@@ -18,10 +18,10 @@
[ -e "$OUT_DIR/$OUT_FILE" ] && die 6 "File $OUT_DIR/$OUT_FILE already exists"
cd /
-rm -rf /tmp/removed /tmp/etc
+rm -rf /tmp/removed /tmp/changed
+touch /tmp/removed /tmp/changed
-
-# find and copy ##############################################################
+# find #######################################################################
echo "Searching for removed files...."
removed() {
@@ -33,34 +33,35 @@
}
find /live/etc -not -type d | removed
-echo "Searching for different files..."
+echo "Searching for changed files..."
diffs() {
while read FILE; do
[ -e "/live$FILE" ] && \
cmp "$FILE" "/live$FILE" 2>/dev/null && \
continue
- mkdir -p "/tmp$(dirname "$FILE")"
- cp -a "$FILE" "/tmp$FILE"
+ [ "$FILE" -eq "/etc/fstab" ] && continue
+ [ "$FILE" -eq "/etc/mtab" ] && continue
+ echo "$FILE" >> /tmp/changed
echo ": $FILE"
done
}
find /etc -not -type d | diffs
+echo /etc/fstab.add >> /tmp/changed
+egrep -v "(^#{0,1}none|^#/dev/hdXX|swap|^# Examples)" /etc/fstab > /etc/fstab.add
+
+sort -u /tmp/removed /tmp/changed > /tmp/different
-# tar | gzip checking for errors #############################################
-cd /tmp
-rm etc/mtab
-egrep -v "(^#{0,1}none|^#/dev/hdXX|swap|^# Examples)" etc/fstab > etc/fstab.add
-rm etc/fstab
-
-( tar -cf - etc $([ -r removed ] && echo removed); \
- echo $? > /tmp/tar-exit ) \
- | gzip -9 -c -f > "$OUT_DIR/$OUT_FILE" \
- || die 10 "Can't gzip or save file"
+# xmltar | gzip checking for errors ##########################################
+echo "Archiving..."
-[ "$(< /tmp/tar-exit)" -eq 0 ] || die 9 "Problem with tar"
+xmltar.pl -r < /tmp/different > /tmp/ppcrcd.xmltar || die 9 "Problem with xmltar"
+if [ "$OUT_FILE" -ne "$(echo "$OUT_FILE" | sed 's/\.gz$//')"]; then
+ echo "Gziping"
+ gzip -9 -c /tmp/ppcrcd.xmltar > "$OUT_DIR/$OUT_FILE" || die 10 "Can't gzip or save file"
+fi
-rm -fr removed etc
+rm -rf /tmp/{removed,changed,different}
echo "OK. Config saved as $OUT_DIR/$OUT_FILE"
More information about the pld-cvs-commit
mailing list