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