#!/bin/bash
#
#******************************************************************************
# packages (Sequencer64)
#------------------------------------------------------------------------------
##
# \file       	packages
# \library    	Sequencer64
# \author     	Chris Ahlstrom
# \date       	2018-09-29
# \update     	2018-11-07
# \version    	$Revision$
# \license    	$XPC_SUITE_GPL_LICENSE$
#
#  Packs up the current project directory, makes an NSIS package installer.
#  Written solely to automate some tedious stuff needed for an official
#  Sequencer64 release.
#
#-----------------------------------------------------------------------------

RELEASEMAJOR="0.96"
RELEASEMINOR="1"
RELEASENUMBER="$RELEASEMAJOR.$RELEASEMINOR"
REVNUMBER="0"
DODRYRUN="no"
DORELEASE="no"

if [ "$1" == "--help" ] || [ "$1" == "help" ] ; then

   cat << E_O_F

packages 0.4 2018-11-07

Usage:  ./packages [--dry-run] [--release [0.96.1] ]

This script packs the contents of the current directory into the following
packages:

E_O_F

else

   while [ "$1" != "" ] ; do

      case "$1" in

        --dry-run)
            DODRYRUN="yes"
            ;;

        --clean)
            DOCLEAN="yes"
            ;;

        --no-clean)
            DOCLEAN="no"
            ;;

        --release)
            shift
            DORELEASE="yes"
            if [ "$1" != "" ] ; then
               RELEASENUMBER="$1"
            fi
            ;;

        *)
            ;;

      esac
      shift
   done

fi

PACKAGENAME="qpseq64-release-package-$RELEASENUMBER.7z"
# INSTALLERNAME="sequencer64_setup_$RELEASENUMBER-$REVNUMBER.exe"
# ZIPNAME="qpseq64-portable-$RELEASENUMBER-$REVNUMBER.zip"
INSTALLERNAME="sequencer64_setup_$RELEASENUMBER.exe"
ZIPNAME="qpseq64-portable-$RELEASENUMBER.zip"
TARNAME="sequencer64-master-rtmidi-$RELEASENUMBER.tar.xz"

if [ "$DODRYRUN" == "yes" ] ; then

   echo "DRY RUN, release = '$RELEASENUMBER'...."

   if [ -f configure ] ; then
      echo " "
      echo "Making a standard Linux source/configure tarball..."
      echo "$ ./pack --release rtmidi $RELEASENUMBER"
      echo "$ mv ../$TARNAME ../sequencer64-packages/latest"
   else
      echo " "
      echo "WARNING:  'configure' does not exist, cannot make a standard Linux"
      echo "          source tarball! Aborting."
      exit 1
   fi

   echo "Extracting Windows deployment package..."
   echo "$ 7z x -y $PACKAGENAME"

#  echo "$ mv $PACKAGENAME .."

   echo "$ pushd nsis"
   echo "Building NSIS installer for release $RELEASENUMBER..."
   echo "$ makensis Seq64Setup.nsi"
   echo "$ popd"

   echo "$ mkdir -p qpseq64"
   echo "$ cp -r release/* qpseq64"
   echo "$ rm -rf release"
   echo "$ cp qpseq64/$INSTALLERNAME ../sequencer64-packages/latest"
   echo "Copying qpseq64/$INSTALLERNAME to ../sequencer64-packages/latest..."

   echo "Making a portable Zip package..."
   echo "$ zip -q -u -r $ZIPNAME qpseq64/"
   echo "Copying qpseq64/$ZIPNAME to ../sequencer64-packages/latest..."
   echo "$ cp $ZIPNAME ../sequencer64-packages/latest"
   echo "$ ls -lrt ../sequencer64-packages/latest"

else

   if [ -f configure ] ; then
      echo " "
      echo "Making a standard Linux source/configure tarball..."
      ./pack --release rtmidi $RELEASENUMBER
      mv ../$TARNAME ../sequencer64-packages/latest
   else
      echo " "
      echo "WARNING:  'configure' does not exist, cannot make a standard Linux"
      echo "          source tarball! Aborting."
      exit 1
   fi

   echo "Extracting Windows deployment package..."
   7z x -y $PACKAGENAME

#  mv $PACKAGENAME ..

   pushd nsis
   echo "Building NSIS installer for release $RELEASENUMBER..."
   makensis Seq64Setup.nsi
   popd

   mkdir -p qpseq64
   cp -r release/* qpseq64
   rm -rf release/

   echo "Copying qpseq64/$INSTALLERNAME to ../sequencer64-packages/latest..."
   cp qpseq64/$INSTALLERNAME ../sequencer64-packages/latest

   echo "Making a portable Zip package..."
   zip -q -u -r $ZIPNAME qpseq64/
   echo "Copying qpseq64/$ZIPNAME to ../sequencer64-packages/latest..."
   cp $ZIPNAME ../sequencer64-packages/latest
   ls -lrt ../sequencer64-packages/latest

fi

#******************************************************************************
# packages (Sequencer64)
#------------------------------------------------------------------------------
# vim: ts=3 sw=3 et ft=sh
#------------------------------------------------------------------------------
