#!/bin/bash
##########################################################################
# Driver Disk builder for RHEL5 kernels
#
# This has to be post the main build as it needs to run as root
# to make the floppy image using loopback mounts
#########################################################################
me=$(basename "$0")
bin=$(cd "$(dirname "$0")" && /bin/pwd)

err  () { echo >&2 "$*";    }
log  () { err "$me: $*";    }
vlog () { $verbose && err "$me: $*"; }
fail () { log "$*"; exit 1; }
try  () { "$@" || fail "'$*' failed"; }
trace() { log "invoking: $*"; "$@"; }
vtrace() { vlog "invoking: $*"; "$@"; }

usage() {
  err
  err "usage:"
  err "  $me [options] <dir> <tag> net <arch>"
  err
  err "options:"
  err "  --disttag <x>     -- specify disttag (only used for log file name)"
  err "  -v                -- verbose logging"
  err
  err "eg: $me /home/bob/v5 v1_1_5010 net i686"
  err
  exit 1
}
######################################################################
# main()

verbose=false
disttag=

  # Parse the command line arguments.
while [ $# -gt 0 ]; do
  case "$1" in
    --disttag)  disttag="$2"; shift;;
    -v)         verbose=true;;
    -*)         usage;;
    *)          break;;
  esac
  shift
done

[ $# -eq 4 ] || usage
dir="$1/rpm"
TAG="$2"
version="$(echo "$TAG" | sed 's/^v//; s/_/./g')"
[ "x$3" = xnet ] || fail "$me: type must be 'net'"
kerver=${4##*:}
arch=${4%%:*}

[ "`whoami`" != root ] && fail "You have to run this as root."

vlog "whoami=$(whoami)"
vlog "$(uname -a)"

  # Some sanity please!
try [ -d "$dir" ]
try cd "$dir"

######################################################################
log "In ddrhel5-builder-post"

wd=$dir/ddisk/rhel5
cwd=$wd/ddiskit-0.9.9

[ -d "$cwd" ] || {
    err "Nothing to do. Perhaps ddrhel5-builder did not run"
    exit 0
}
try cd $cwd

 # Avoid permission problems
rm -Rf images/tmp

 # MAIN: Make the ext2 floppy images
try make diskimg

try gunzip $cwd/images/dd.img.gz
try chmod +x $cwd/images/* 
 # change name of driver disk with easy identifiable name then store it.
dImgTar="$cwd/images/ddrhel5-$kerver-"`date '+%Y%m%d'`".tar.gz"
echo "$dImgTar"
try tar -czvf $dImgTar $cwd/images/* 
echo "prepared tar.gz file"
try cp $cwd/images/*.tar.gz $wd
echo "INFO:Copied disk image to $wd"

echo " INFO:cleaning files"
# cleanup causes problems as all X-builders are called before X-builder-post
# due to the architectural split between what is in/out of the chroot
#try rm -r $cwd
echo "INFO:Driver disk preparation for $kerver kernel version completed."
