#!/bin/bash
# Copyright (C) 2014 by Bundesamt f�r Sicherheit in der Informationstechnik
# Software engineering by Intevation GmbH
#
# This file is Free Software under the GNU GPL (v>=2)
# and comes with ABSOLUTELY NO WARRANTY!
# See LICENSE.txt for details.

TMPDIR=$(mktemp -d)
TMPSHAR=$(mktemp "@CMAKE_BINARY_DIR@/shar.XXXXXXXXXX")

INSTALLER="@CMAKE_BINARY_DIR@/TrustBridge-@PROJECT_VERSION@.sh"

EXEFILES=("@CMAKE_BINARY_DIR@/cinst/cinst"
          "@CMAKE_BINARY_DIR@/cinst/mozilla"
          "@CMAKE_BINARY_DIR@/ui/trustbridge"
          "@CMAKE_BINARY_DIR@/ui/trustbridge-tray-starter.sh")
ICON="@CMAKE_SOURCE_DIR@/ui/img/logo-128.png"
HELPFILES=$(find @CMAKE_BINARY_DIR@/manuals/help-manual/html \
    -maxdepth 1 -type f -printf "%p \n")
HELPFILES_STATIC=$(find @CMAKE_BINARY_DIR@/manuals/help-manual/html/_static \
    -maxdepth 1 -type f -printf "%p \n")
HELPFILES_IMG=$(find @CMAKE_BINARY_DIR@/manuals/help-manual/html/_images \
    -maxdepth 1 -type f -printf "%p \n")
HELPFILES_SOURCES=$(find @CMAKE_BINARY_DIR@/manuals/help-manual/html/_sources \
    -maxdepth 1 -type f -printf "%p \n")

L10N_DE_FILE="@CMAKE_BINARY_DIR@/packaging/linux-installer.l10n-de"

# Make installation in TMPDIR, this is what we will put into the
# shar-archive.
echo "Using $TMPDIR for temporary installation to build installer..."
install -d "$TMPDIR/bin"
install -d "$TMPDIR/share/pixmaps/trustbridge"
install -d "$TMPDIR/share/doc/trustbridge"
install -d "$TMPDIR/share/doc/trustbridge/_static"
install -d "$TMPDIR/share/doc/trustbridge/_sources"
install -d "$TMPDIR/share/doc/trustbridge/_images"
install "${EXEFILES[@]}" "$TMPDIR/bin"
install "$ICON" "$TMPDIR/share/pixmaps/trustbridge/trustbridge.png"

echo "Building $INSTALLER..."
cp "@CMAKE_BINARY_DIR@/packaging/linux-installer.inc" "$INSTALLER"
binnames=""
for file in "${EXEFILES[@]}" ; do
  binnames="`basename $file` $binnames"
done
for file in ${HELPFILES} ; do
  install "$file" "$TMPDIR/share/doc/trustbridge"
  helpnames="`basename $file` $helpnames"
done
for file in ${HELPFILES_IMAGES} ; do
  install "$file" "$TMPDIR/share/doc/trustbridge/_images"
  helpnames_img="`basename $file` $helpnames_img"
done
for file in ${HELPFILES_STATIC} ; do
  install "$file" "$TMPDIR/share/doc/trustbridge/_static"
  helpnames_static="`basename $file` $helpnames_static"
done
for file in ${HELPFILES_SOURCES}; do
  install "$file" "$TMPDIR/share/doc/trustbridge/_sources"
  helpnames_sources="`basename $file` $helpnames_sources"
done

echo "Creating shar archive ..."
cd "$TMPDIR"
shar -z -B `find -type f` | sed 's/^exit 0//' >>"$TMPSHAR"

sed -i "s/###BINNAMES###/${binnames}/" "$INSTALLER"
sed -i "s/###ICONNAME###/trustbridge.png/" "$INSTALLER"
sed -i "/###SHAR###/r $TMPSHAR" "$INSTALLER"
sed -i "/###L10N_DE###/r $L10N_DE_FILE" "$INSTALLER"
sed -i "s/###HELPNAMES###/${helpnames}/" "$INSTALLER"
sed -i "s/###HELPNAMES_SOURCES###/${helpnames_sources}/" "$INSTALLER"
sed -i "s/###HELPNAMES_STATIC###/${helpnames_static}/" "$INSTALLER"
sed -i "s/###HELPNAMES_IMG###/${helpnames_img}/" $INSTALLER

chmod +x "$INSTALLER"
echo "Signing"
@CMAKE_SOURCE_DIR@/ui/tests/append-sig.sh @CMAKE_SOURCE_DIR@/ui/tests/data/codesign/codesigning.key \
                 $INSTALLER ${INSTALLER}_signed
mv ${INSTALLER}_signed $INSTALLER

echo "Cleaning up..."
rm -r "$TMPDIR"
rm  "$TMPSHAR"
