#!/bin/sh
# Set initial variables:
CWD=`pwd`
if [ "$TMP" = "" ]; then
  TMP=/tmp
fi
PKG=$TMP/package-util
SRC=/devel/manpagesrc
INFO=$PKG/usr/info
TEX=/devel/texinfo-docs

if [ ! -d $TMP ]; then
  mkdir -p $TMP # location to build the source
fi
if [ ! -d $PKG ]; then
  mkdir -p $PKG # place for the package to be built
fi

# Explode the package framework:
cd $PKG
explodepkg $CWD/_util.tar.gz

# Function to handle manpage source:
man2gz () { # $1 is source page name, $2 is target name for preformatted
            # output (full path && name) and $3 is the same, but for the
            # source.
  mkdir -p `dirname $2`
  groff -Tascii -mandoc $1 | gzip -9c > $2
  if [ ! "$3" = "" ]; then
    mkdir -p `dirname $3`
    cat $1 > $3 
  fi 
}

echo "+=================+"
echo "| util-linux-2.4 |"
echo "+=================+"
cd $TMP
tar xzvf $CWD/util-linux-2.4.tar.gz
cd util-linux-2.4
( cd disk-utils ; zcat $CWD/fdisk.diff.gz | patch )
( cd bsd ; zcat $CWD/pathnames.h.diff.gz | patch )
make
cat sys-utils/arch > $PKG/bin/arch
cat sys-utils/dmesg > $PKG/bin/dmesg
cat misc-utils/getoptprog > $PKG/bin/getoptprog
cat misc-utils/md5sum > $PKG/usr/bin/md5sum
cat misc-utils/mcookie > $PKG/usr/bin/mcookie
cat misc-utils/hostname > $PKG/bin/hostname
cat misc-utils/kill > $PKG/bin/kill
cat login-utils/login > $PKG/bin/login
cat text-utils/more > $PKG/bin/more
cat mount/mount > $PKG/bin/mount
cat mount/umount > $PKG/bin/umount
( cd historic/selection ; make )
cat historic/selection/selection > $PKG/usr/bin/selection
cat historic/selection/test-mouse > $PKG/usr/bin/test-mouse
cat sys-utils/setserial > $PKG/bin/setserial
cat misc-utils/setterm > $PKG/bin/setterm
cat sys-utils/sln > $PKG/bin/sln
cat sys-utils/sync > $PKG/bin/sync
cat login-utils/agetty > $PKG/sbin/agetty
cat login-utils/chfn > $PKG/usr/bin/chfn
#cat bdflush > $PKG/sbin/bdflush
cat sys-utils/clock > $PKG/sbin/clock
cat disk-utils/fdisk > $PKG/sbin/fdisk
#cat fsck > $PKG/sbin/fsck
cat disk-utils/fsck.minix > $PKG/sbin/fsck.minix
cat sys-utils/readprofile > $PKG/usr/bin/readprofile
cat sys-utils/kbdrate > $PKG/sbin/kbdrate
cat disk-utils/mkfs.minix > $PKG/sbin/mkfs.minix
cat disk-utils/mkfs > $PKG/sbin/mkfs
cat disk-utils/mkswap > $PKG/sbin/mkswap
cat sys-utils/rdev > $PKG/sbin/rdev
cat mount/swapon > $PKG/sbin/swapon
cat games/banner > $PKG/usr/bin/banner
cat misc-utils/cal > $PKG/usr/bin/cal
cat login-utils/chsh > $PKG/usr/bin/chsh
#cat clear > $PKG/usr/bin/clear
cat text-utils/col > $PKG/usr/bin/col
cat text-utils/colcrt > $PKG/usr/bin/colcrt
cat text-utils/colrm > $PKG/usr/bin/colrm
cat text-utils/column > $PKG/usr/bin/column
cat games/ddate > $PKG/usr/bin/ddate
cat misc-utils/dsplit > $PKG/usr/bin/dsplit
cat disk-utils/fdformat > $PKG/usr/bin/fdformat
cat text-utils/hexdump > $PKG/usr/bin/hexdump
cat misc-utils/hostid > $PKG/usr/bin/hostid
cat sys-utils/ipcrm > $PKG/usr/bin/ipcrm
cat sys-utils/ipcs > $PKG/usr/bin/ipcs
cat login-utils/last > $PKG/usr/bin/last
cat misc-utils/logger > $PKG/usr/bin/logger
cat misc-utils/look > $PKG/usr/bin/look
cat login-utils/mesg > $PKG/usr/bin/mesg
cat misc-utils/namei > $PKG/usr/bin/namei
cat login-utils/newgrp > $PKG/usr/bin/newgrp
cat login-utils/passwd > $PKG/usr/bin/passwd
cat login-utils/vipw > $PKG/usr/sbin/vipw
cat sys-utils/renice > $PKG/usr/bin/renice
#cat reset > $PKG/usr/bin/reset
cat text-utils/rev > $PKG/usr/bin/rev
cat misc-utils/script > $PKG/usr/bin/script
cat disk-utils/setfdprm > $PKG/usr/bin/setfdprm
cat sys-utils/setsid > $PKG/usr/bin/setsid
cat text-utils/strings > $PKG/usr/bin/strings
cat misc-utils/tsort > $PKG/usr/bin/tsort
cat sys-utils/tunelp > $PKG/usr/bin/tunelp
cat text-utils/ul > $PKG/usr/bin/ul
cat login-utils/wall > $PKG/usr/bin/wall
cat misc-utils/whereis > $PKG/usr/bin/whereis
cat misc-utils/write > $PKG/usr/bin/write
cat time/zic > $PKG/usr/bin/zic
cat time/zdump > $PKG/usr/bin/zdump
cat time/yearistype > $PKG/usr/bin/yearistype
cat disk-utils/cfdisk > $PKG/usr/sbin/cfdisk
cat sys-utils/chroot > $PKG/usr/sbin/chroot
cat sys-utils/ctrlaltdel > $PKG/usr/sbin/ctrlaltdel
#cat disk-utils/frag > $PKG/usr/sbin/frag
mkdir -p $INFO
cat sys-utils/ipc.info | gzip -9c > $INFO/ipc.info.gz
cp sys-utils/ipc.texi $TEX/ipc.texi
for page in misc-utils/mcookie.1 historic/mesg.1 misc-utils/md5sum.1 \
historic/selection/selection.1 misc-utils/namei.1 login-utils/chfn.1 \
misc-utils/reset.1 login-utils/chsh.1 misc-utils/script.1 login-utils/last.1 \
misc-utils/setterm.1 login-utils/login.1 misc-utils/tsort.1 login-utils/mesg.1 \
misc-utils/whereis.1 login-utils/newgrp.1 misc-utils/write.1 \
login-utils/passwd.1 sys-utils/arch.1 login-utils/wall.1 \
sys-utils/readprofile.1 misc-utils/cal.1 misc-utils/col.1 \
misc-utils/chkdupexe.1 text-utils/colcrt.1 misc-utils/clear.1 \
text-utils/colrm.1 misc-utils/dnsdomainname.1 text-utils/column.1 \
misc-utils/domainname.1 text-utils/hexdump.1 misc-utils/dsplit.1 \
text-utils/more.1 misc-utils/getoptprog.1 text-utils/od.1 \
misc-utils/hostid.1 text-utils/rev.1 misc-utils/hostname.1 \
text-utils/strings.1 misc-utils/kill.1 text-utils/ul.1 \
misc-utils/logger.1 time/date.1 misc-utils/look.1 ; do
  cat $page | gzip -9c > $PKG/usr/man/man1/`basename $page`.gz
done
for page in makedev-1.5/devinfo.5 mount/nfs.5 makedev-1.5/makedev.cfg.5 \
syslogd/syslog.conf.5 mount/fstab.5 time/tzfile.5 ; do
  cat $page | gzip -9c > $PKG/usr/man/man5/`basename $page`.gz
done
for page in games/banner.6 games/ddate.6 ; do
  cat $page | gzip -9c > $PKG/usr/man/man6/`basename $page`.gz
done
for page in disk-utils/cfdisk.8 login-utils/reboot.8 sys-utils/kbdrate.8 \
disk-utils/fdformat.8     login-utils/shutdown.8    sys-utils/ramsize.8 \
disk-utils/fdisk.8        login-utils/simpleinit.8  sys-utils/rdev.8 \
disk-utils/fsck.minix.8   login-utils/vipw.8        sys-utils/renice.8 \
disk-utils/mkfs.8         makedev-1.5/MAKEDEV-C.8   sys-utils/rootflags.8 \
disk-utils/mkfs.minix.8   mount/mount.8             sys-utils/setserial.8 \
disk-utils/mkswap.8       mount/swapoff.8           sys-utils/setsid.8 \
disk-utils/setfdprm.8     mount/swapon.8            sys-utils/swapdev.8 \
historic/frag.8           mount/umount.8            sys-utils/sync.8 \
historic/lpcntl.8         sys-utils/MAKEDEV.8       sys-utils/tunelp.8 \
historic/makehole.8       sys-utils/chroot.8        sys-utils/update_state.8 \
historic/mkswap.8         sys-utils/clock.8         sys-utils/vidmode.8 \
historic/update.8         sys-utils/ctrlaltdel.8    syslogd/syslogd.8 \
login-utils/agetty.8      sys-utils/cytune.8        time/zdump.8 \
login-utils/fastboot.8    sys-utils/dmesg.8         time/zic.8 \
login-utils/fasthalt.8    sys-utils/ipcrm.8 \
login-utils/halt.8        sys-utils/ipcs.8 ; do
  cat $page | gzip -9c > $PKG/usr/man/man8/`basename $page`.gz
done

echo "+=============+"
echo "| bdflush-1.5 |"
echo "+=============+"
cd $TMP
tar xzvf $CWD/bdflush-1.5.tar.gz
cd bdflush-1.5
cc -s -Wall -O2 -o bdflush bdflush.c
cat bdflush > $PKG/sbin/bdflush
cat bdflush.8 | gzip -9c > $PKG/usr/man/man8/bdflush.8.gz

# Build the package:
cd $PKG
tar czvf $TMP/util.tgz .

# Clean up the extra stuff:
if [ "$1" = "--cleanup" ]; then
  rm -rf $TMP/util-linux-2.4
  rm -rf $TMP/bdflush-1.5
  rm -rf $TMP/mount
  rm -rf $PKG
fi
