#!/bin/sh

#
# "SystemImager" - Copyright (C) 1999-2001 Brian Elliott Finley <brian@systemimager.org>
#
#   $Id: makedist,v 1.13 2001/09/06 04:21:09 brianfinley Exp $
#
#   Written by Michael Jennings <mej@valinux.com>
#
#   Others who have contributed to this code:
#     Brian Finley <brian@systemimager.org>
#

if [ ! -f VERSION ]; then
  echo "Must be run from the base of the systemimager development directory!"
  echo "Like this:"
  echo "\$ ./makedist"
  exit 1
fi

# what is the formal name for this package?
BASE="systemimager"

# get version numbers
VER_MAJOR=`cat VERSION | awk -F. '{print $1'}`
VER_CLIENT=`cat VERSION | awk -F. '{print $2'}`
VER_SERVER=`cat VERSION | awk -F. '{print $3'}`
VERSION=${VER_MAJOR}.${VER_CLIENT}.${VER_SERVER}

# functions
wrap_it_up() {
  # remove stale cruft
  rm    -rf /tmp/${PACKAGE} || exit 1
  rm     -f /tmp/${PACKAGE}.tar.bz2 || exit 1
  
  # temporary housing
  mkdir -p  /tmp/${PACKAGE} || exit 1

  # copy down selected files
  echo 
  echo "Copying files from file.listing.${SUBSET} down to /tmp/${PACKAGE}..."
  tar -cf - `cat file.listing.${SUBSET}` | tar -C /tmp/${PACKAGE} -x || exit 1

  # package up
  ( cd /tmp/ && tar --owner=root --group=root -cvf ${PACKAGE}.tar ${PACKAGE}/ ) || exit 1

  # compress -- no more of this wimpy gzip stuff
  bzip2 /tmp/${PACKAGE}.tar || exit 1

  # put it back in our working directory
  mv /tmp/${PACKAGE}.tar.bz2 . || exit 1

  # remove fresh cruft
  rm -rf /tmp/${PACKAGE} || exit 1
}

# set version number on perl files with $version_number
FILES_TO_VERSION=`ls sbin/[a-z]*`
FILES_TO_VERSION="${FILES_TO_VERSION} `ls tftpstuff/systemimager/updateclient`"
for file in $FILES_TO_VERSION; do
  sed "s/^\$version_number=.*/\$version_number=\"$VERSION\";/" $file > $file.$$
  cat $file.$$ > $file
  rm -f $file.$$
done

# set version number on shell files with ^version_number
FILES_TO_VERSION=`ls tftpstuff/systemimager/prepareclient`
for file in $FILES_TO_VERSION; do
  sed "s/^version_number=.*/version_number=$VERSION/" $file > $file.$$
  cat $file.$$ > $file
  rm -f $file.$$
done

# set version number on special files with vN.N.N
FILES_TO_VERSION=`ls tftpstuff/pxelinux.cfg/message.txt`
for file in $FILES_TO_VERSION; do
  sed "s/v[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\./v${VERSION}./g" $file  > $file.$$
  cat $file.$$ > $file
  rm -f $file.$$
done

#cp ${BASE}.spec ${BASE}.spec.in
#sed 's/^%define ver \([ ]*\) [0-9].*$/%define ver \1 '$VERSION'/g' ${BASE}.spec.in > ${BASE}.spec
#rm -f ${BASE}.spec.in

SUBSET="server"
PACKAGE="${BASE}-${SUBSET}-${VERSION}"
wrap_it_up

SUBSET="client"
PACKAGE="${BASE}-${SUBSET}-${VERSION}"
wrap_it_up

SUBSET="source"
PACKAGE="${BASE}-${SUBSET}-${VERSION}"
wrap_it_up

SUBSET="ssh"
PACKAGE="${BASE}-${SUBSET}-${VERSION}"
wrap_it_up
