About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / lguest / extract


Based on kernel version 2.6.39.1. Page generated on 2011-06-03 13:47 EST.

1	#! /bin/sh
2	
3	set -e
4	
5	PREFIX=$1
6	shift
7	
8	trap 'rm -r $TMPDIR' 0
9	TMPDIR=`mktemp -d`
10	
11	exec 3>/dev/null
12	for f; do
13	    while IFS="
14	" read -r LINE; do
15		case "$LINE" in
16		    *$PREFIX:[0-9]*:\**)
17			NUM=`echo "$LINE" | sed "s/.*$PREFIX:\([0-9]*\).*/\1/"`
18			if [ -f $TMPDIR/$NUM ]; then
19			    echo "$TMPDIR/$NUM already exits prior to $f"
20			    exit 1
21			fi
22			exec 3>>$TMPDIR/$NUM
23			echo $f | sed 's,\.\./,,g' > $TMPDIR/.$NUM
24			/bin/echo "$LINE" | sed -e "s/$PREFIX:[0-9]*//" -e "s/:\*/*/" >&3
25			;;
26		    *$PREFIX:[0-9]*)
27			NUM=`echo "$LINE" | sed "s/.*$PREFIX:\([0-9]*\).*/\1/"`
28			if [ -f $TMPDIR/$NUM ]; then
29			    echo "$TMPDIR/$NUM already exits prior to $f"
30			    exit 1
31			fi
32			exec 3>>$TMPDIR/$NUM
33			echo $f | sed 's,\.\./,,g' > $TMPDIR/.$NUM
34			/bin/echo "$LINE" | sed "s/$PREFIX:[0-9]*//" >&3
35			;;
36		    *:\**)
37			/bin/echo "$LINE" | sed -e "s/:\*/*/" -e "s,/\*\*/,," >&3
38			echo >&3
39			exec 3>/dev/null
40			;;
41		    *)
42			/bin/echo "$LINE" >&3
43			;;
44		esac
45	    done < $f
46	    echo >&3
47	    exec 3>/dev/null
48	done
49	
50	LASTFILE=""
51	for f in $TMPDIR/*; do
52	    if [ "$LASTFILE" != $(cat $TMPDIR/.$(basename $f) ) ]; then
53		LASTFILE=$(cat $TMPDIR/.$(basename $f) )
54		echo "[ $LASTFILE ]"
55	    fi
56	    cat $f
57	done
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog