#!/bin/bash 
# Builds a debian package. The package will be in current directory
# parameters:
# 1  : kernel version
# 2,3: the modules to install
[ "$#" != "3" ] && echo "Not 3 args: $#" && exit 1
KERNEL_VERS=$1
shift

DEB_DIR=`pwd`/debbuild
cd `dirname "$0"`

export HN_VERSION=${MODULES_VERSION}-${KERNEL_VERS}
export HN_ARCH=`dpkg --print-architecture`

DATA_DIR=$DEB_DIR/data
CONTROL_DIR=$DEB_DIR/control
INSTALL_PATH=/lib/modules
HNDRIVER_INSTALL_PATH=/etc/init.d

MODULES_FULL_PATH=$DATA_DIR/lib/modules/$KERNEL_VERS/extra

# Clean build destination
rm -rf $DEB_DIR
mkdir -p $DATA_DIR
mkdir -p $MODULES_FULL_PATH
mkdir -p $CONTROL_DIR
mkdir -p $DATA_DIR/$HNDRIVER_INSTALL_PATH

# Create debian version file
echo "2.0" > $DEB_DIR/debian-binary

# Create data tree
cp -a $* $MODULES_FULL_PATH/
# Create depmod marker
touch $MODULES_FULL_PATH/.hndepmod

# Copy control file
CONTROL_FILE=$CONTROL_DIR/control
cp livenavigatormodule.deb-ctl $CONTROL_FILE

#copy hndriver script
cp -a hndriver $DATA_DIR/$HNDRIVER_INSTALL_PATH

# Create scripts
cat > $CONTROL_DIR/postrm <<ENDOFFILE
#!/bin/bash
/sbin/depmod -a
#  Unload CDP module from the kernel
if [ -d /sys/fs/redirfs/filters/hnfsflt ]; then
  if [ -x /etc/init.d/hnagent ]; then
    /etc/init.d/hnagent stop
  fi
  #  Deactivate filter
  /bin/echo '0' > /sys/fs/redirfs/filters/hnfsflt/active
  #  Clear paths
  /bin/echo 'c' > /sys/fs/redirfs/filters/hnfsflt/paths
  #  Unregister filter
  /bin/echo '1' > /sys/fs/redirfs/filters/hnfsflt/unregister
  #  Unload module 
  /sbin/rmmod hnfsflt
  if [ -x /etc/init.d/hnagent ]; then
    /etc/init.d/hnagent start
  fi
fi
if [ "\$1" = remove ]; then
    rm -f $HNDRIVER_INSTALL_PATH/hndriver
fi
ENDOFFILE
chmod +x $CONTROL_DIR/postrm

cat > $CONTROL_DIR/postinst <<ENDOFFILE
#!/bin/bash
/sbin/depmod -a
/sbin/modprobe hnfsflt
update-rc.d hndriver defaults
if [ -x /etc/init.d/hnagent ]; then
  /etc/init.d/hnagent restart
fi
ENDOFFILE
chmod +x $CONTROL_DIR/postinst

# Replace pattern by values in control files
export HN_SIZE=`du -ks $DATA_DIR/ | cut -f 1`
sed -i {s/%HN_SIZE%/$HN_SIZE/g} $CONTROL_FILE
sed -i {s/%HN_VERSION%/$HN_VERSION/g} $CONTROL_FILE
sed -i {s/%HN_ARCH%/$HN_ARCH/g} $CONTROL_FILE

# Add checksum file
(
cd $DATA_DIR
find . -type f -exec md5sum \{\} \; > $CONTROL_DIR/md5sums
)

# Disable group write in control
(
cd $CONTROL_DIR
chmod g-w *
)

# Create deb file
(
cd $DATA_DIR
tar c --owner=root --group=root -jf $DEB_DIR/data.tar.bz2 .
cd $CONTROL_DIR
tar c --owner=root --group=root -zf $DEB_DIR/control.tar.gz .
cd $DEB_DIR
ar -qc ../livenavigatormodule-"${MODULES_VERSION}-${KERNEL_VERS}_$HN_ARCH".deb debian-binary control.tar.gz data.tar.bz2
)

