#!/bin/sh

LIBS="ld-linux.so libc.so libcom_err.so libe2p.so libext2fs.so"
BINS="gzip ls mke2fs ash cat rm open fdisk badblocks"
ZBINS="insmod install2"

PCMCIA_SBINS="cardmgr probe"
MODLINKS="block cdrom misc net scsi"

usage () {
    echo "updsupp: <imagetree> <kernel-version>" 2>&1
    exit 1
}

if [ -z "$1" -o -z "$2" ]; then
    usage
fi

if [ ! -d "$1/misc/src/install" ]; then
    echo "$1 is not a valid directory" 2>&1
    usage
fi

if [ ! -d "/lib/modules/$2/pcmcia" ]; then
    echo "$2 is not a valid modules directory" 2>&1
    usage
fi

PATH=$1/misc/src/install:/usr/sbin:/usr/bin:/bin:/sbin

rm supp/lib/*
ln -s /tmp supp/lib/modules
for n in $LIBS; do
	cp -a /lib/${n}* supp/lib
done

for n in $BINS; do
	rm -f supp/usr/bin/$n
	cp -af `which $n` supp/usr/bin
done

for n in $ZBINS; do
	rm -f supp/usr/bin/$n
	strip `which $n`
	gzip -9 < `which $n` > supp/usr/bin/$n
	chmod 755 supp/usr/bin/$n
done

rm -rf pcmcia/lib/modules
mkdir pcmcia/lib/modules
mkdir pcmcia/lib/modules/$2
mkdir pcmcia/lib/modules/$2/pcmcia

cp /lib/modules/$2/pcmcia/* pcmcia/lib/modules/$2/pcmcia

# unfotunately, this breaks things
# strip --strip-unneeded pcmcia/lib/modules/$2/pcmcia/*.o

for n in $MODLINKS; do 
	ln -s /modules pcmcia/lib/modules/$2/$n
done

for n in $PCMCIA_SBINS; do
	rm -f pcmcia/sbin/$n
	cp -af /sbin/$n pcmcia/sbin/$n
done

rm supp/pcmcia.cgz
(cd pcmcia; find . -type f -o -type l | cpio -H crc -o) | gzip -9 > supp/pcmcia.cgz
