#!/bin/bash


  # this scripts builds packages for ubuntu from current slimrat svn.
  
  # needed commands: svn awk expr awk dpkg fakeroot

  # instructions: make sure to have the necessary packages installed.
  #
  #               the following command should ensure this:
  #                   sudo apt-get install subversion coreutils dpkg fakeroot gawk
  #
  #               make this script executable:
  #                 chmod +x ./fetch_slimrat.sh
  #
  #               execute this script:
  #                 ./fetch_slimrat.sh
  #
  #               install the generated packages via:
  #                 sudo dpkg -i slimrat-nox_*.deb slimrat_*.deb
  #
  #               you are ready to go!

  # thanks to Loki

function writeControl {

  bytesize=`du -bs ./${slimrat_base}/ | awk '{ print $1; }'`
  kbytesize=`expr ${bytesize} / 1024`
  
  if [ "$kbytesize" == "0" ]; then
    kbytesize="1"
  fi

  if [ -f "$1" ]; then
    rm "$1"
  fi

    echo "Package: $package" >> "$1"
    echo "Version: 1.1.$version" >> "$1"
    echo "Description: $description" >> "$1"
    echo "Section: $section" >> "$1"
    echo "Priority: $priority" >> "$1"
    echo "Maintainer: $maintainer" >> "$1"
    echo "Architecture: $architecture" >> "$1"
    echo "Installed-Size: $kbytesize" >> "$1"
  
  if [ "$depends" != "" ]; then
    echo "Depends: $depends" >> "$1"
  fi

}

function writeChangelog {

  if [ -f "$1" ]; then
    rm "$1"
  fi

  createdate=`date -R`

  if [ "$stable" == "" ]; then
    stable="unstable"
  fi

  if [ "$urgency" == "" ]; then
    urgency="low"
  fi

  echo "$package ($version) $stable; urgency=$urgency" >> "$1"
  echo "" >> "$1"
  if [ -f "changelog" ]; then
    cat "changelog" >> "$1"
  else
    echo "  * $version - First release." >> "$1"
  fi
  echo "" >> "$1"
    echo " -- $author <$maintainer>  $createdate" >> "$1"

}

function writeMd5sums {

  if [ -f "$1" ]; then
    rm "$1"
  fi
  
  touch "$1"

}

function writeRules {

  if [ -f "$1" ]; then
    rm "$1"
  fi
  
  touch "$1"

}

function writeDesktopFile {

echo "[Desktop Entry]" > $1
echo "Name=Slimrat" >> $1
echo "Comment=Download files from various hosters" >> $1
echo "GenericName=File Downloader" >> $1
echo "X-GNOME-FullName=Slimrat File Downloader" >> $1
echo "Categories=GNOME;GTK;Network;" >> $1
echo "Exec=slimrat-gui %U" >> $1
echo "Icon=slimrat" >> $1
echo "Terminal=false" >> $1
echo "Type=Application" >> $1
echo "StartupNotify=true" >> $1

}

function writePostinst() {

echo "#!/bin/sh" > $1
echo "set -e" >> $1
echo "# Automatically added by dh_installmenu" >> $1
echo 'if [ "$1" = "configure" ] && [ -x "`which update-menus 2>/dev/null`" ]; then' >> $1
echo "  update-menus" >> $1
echo "fi" >> $1
echo "# End automatically added section" >> $1
echo "" >> $1
echo "update-icon-caches /usr/share/icons/hicolor" >> $1

}

function writePostrm() {

echo "#!/bin/sh" > $1
echo "set -e" >> $1
echo "# Automatically added by dh_installmenu" >> $1
echo "if [ -x "`which update-menus 2>/dev/null`" ]; then update-menus ; fi" >> $1
echo "# End automatically added section" >> $1
echo "" >> $1
echo "update-icon-caches /usr/share/icons/hicolor" >> $1

}

tmpdir="slimrat-tmp/"
if [ -d ${tmpdir} ]; then
  rm -Rf ${tmpdir}
fi
mkdir -p ${tmpdir}
cd ${tmpdir}

svn checkout http://slimrat.googlecode.com/svn/trunk/ slimrat-read-only
mv slimrat-read-only slimrat-svn-src

# slimrat package
package="slimrat"
version="svn$(date +%Y%m%d)"
architecture="all"

description="GUI application for automated downloading from file hosters"
section="net"
priority="extra"
maintainer="$(whoami)@unknown.com"
author="$(whoami)"
depends="slimrat-nox, perl, libwww-perl, libwww-mechanize-perl, libgtk2-gladexml-perl, libspiffy-perl, libcrypt-ssleay-perl, aview, imagemagick, tesseract-ocr, xclip"

slimrat_base="slimrat"

mkdir -p ${slimrat_base}/DEBIAN

mkdir -p ${slimrat_base}/usr/lib/slimrat
mv slimrat-svn-src/src/slimrat-gui          ${slimrat_base}/usr/lib/slimrat
mv slimrat-svn-src/src/slimrat.glade        ${slimrat_base}/usr/lib/slimrat
mv slimrat-svn-src/src/Clipboard.pm         ${slimrat_base}/usr/lib/slimrat

mkdir -p ${slimrat_base}/usr/bin
ln -s  /usr/lib/slimrat/slimrat-gui        ${slimrat_base}/usr/bin/slimrat-gui                  

mkdir -p ${slimrat_base}/usr/share/applications
writeDesktopFile ${slimrat_base}/usr/share/applications/slimrat.desktop

mkdir -p ${slimrat_base}/usr/share/icons/hicolor/scalable/apps
mkdir -p ${slimrat_base}/usr/share/icons/hicolor/16x16/apps
mkdir -p ${slimrat_base}/usr/share/icons/hicolor/48x48/apps
mkdir -p ${slimrat_base}/usr/share/icons/hicolor/128x128/apps
mv slimrat-svn-src/icon/icon-slimrat.svg        ${slimrat_base}/usr/share/icons/hicolor/scalable/apps/slimrat.svg
mv slimrat-svn-src/icon/icon-slimrat-16.png     ${slimrat_base}/usr/share/icons/hicolor/16x16/apps/slimrat.png
mv slimrat-svn-src/icon/icon-slimrat-48.png     ${slimrat_base}/usr/share/icons/hicolor/48x48/apps/slimrat.png
mv slimrat-svn-src/icon/icon-slimrat-128.png    ${slimrat_base}/usr/share/icons/hicolor/128x128/apps/slimrat.png

writeControl      "${slimrat_base}/DEBIAN/control"
writeChangelog    "${slimrat_base}/DEBIAN/changelog"
writeMd5sums      "${slimrat_base}/DEBIAN/md5sums"
writeRules        "${slimrat_base}/DEBIAN/rules"
writePostinst     "${slimrat_base}/DEBIAN/postinst"
writePostrm       "${slimrat_base}/DEBIAN/postrm"

chmod 755 ${slimrat_base}/DEBIAN
chmod 755 ${slimrat_base}/DEBIAN/*
chmod -R  u=rwX,og=rX ${slimrat_base}/usr

filename=${package}_${version}_${architecture}.deb
if [ -f $filename ]; then
  rm -f $filename
fi

fakeroot dpkg -b ${slimrat_base} ../${filename}

# slimrat-nox package
package="slimrat-nox"
version="svn$(date +%Y%m%d)"
architecture="all"

description="CLI application for automated downloading from file hosters"
section="net"
priority="extra"
maintainer="$(whoami)@unknown.com"
author="$(whoami)"
depends="perl, libwww-perl, libwww-mechanize-perl, libcrypt-ssleay-perl, aview, imagemagick, tesseract-ocr"

slimrat_base="slimrat-nox"

mkdir -p ${slimrat_base}/DEBIAN

mkdir -p ${slimrat_base}/usr/lib/slimrat/plugins
mv slimrat-svn-src/src/slimrat            ${slimrat_base}/usr/lib/slimrat
mv slimrat-svn-src/src/*.pm               ${slimrat_base}/usr/lib/slimrat/
mv slimrat-svn-src/src/plugins/*          ${slimrat_base}/usr/lib/slimrat/plugins/

mkdir -p ${slimrat_base}/usr/bin
ln -s  /usr/lib/slimrat/slimrat           ${slimrat_base}/usr/bin/slimrat

mkdir -p ${slimrat_base}/etc/slimrat
mv slimrat-svn-src/slimrat.conf           ${slimrat_base}/etc/slimrat

writeControl    "${slimrat_base}/DEBIAN/control"
writeChangelog  "${slimrat_base}/DEBIAN/changelog"
writeMd5sums    "${slimrat_base}/DEBIAN/md5sums"
writeRules      "${slimrat_base}/DEBIAN/rules"
echo "/etc/slimrat/slimrat.conf" > "${slimrat_base}/DEBIAN/conffiles"

chmod 755 ${slimrat_base}/DEBIAN
chmod -R  u=rwX,og=rX ${slimrat_base}/usr

filename=${package}_${version}_${architecture}.deb
if [ -f $filename ]; then
  rm -f $filename
fi

fakeroot dpkg -b ${slimrat_base} ../${filename}

cd ..
rm -Rf ${tmpdir}

