#!/bin/bash

package=wavesurfer.js
version=-4.0.1

progname=$0

source ../cascade-make/lib/cascade-lib.bash GEXT_MARS ../.. $*

prefix=$GEXT_MARS_INSTALLED

#export CFLAGS="$CFLAGS -I$GEXT_MARS_INSTALLED/include"
#export CPPFLAGS="$CPPFLAGS -I$GEXT_MARS_INSTALLED/include"
#export CXXFLAGS="$CXXFLAGS -I$GEXT_MARS_INSTALLED/include"
#export LDFLAGS="$LDFLAGS -L$GEXT_MARS_INSTALLED/lib"
#export LD_LIBRARY_PATH="$GEXT_MARS_INSTALLED/lib"

opt_run_untar $force_untar $auto_untar $package $version

#opt_run_configure $force_config $auto_config $package $version $prefix 
if [ $force_config = "1" ] ; then
    echo "[pushd $package$version]"
    ( cd $package$version ; \
      echo "Running the *configure* stage with NodeJS source code equates to running 'npm install' to downloading required packages" ; \
      echo "npm install" ; \
      npm install )
    if [ $? != 0 ] ; then
        echo "      Error encountered running *configure* stage of $progname"
        exit 1
    fi
    echo "[popd]"
else
    # Is the following check meaningful for npm???
    if [ $auto_config = "1" ] ; then
      echo "Found top-level for ${progname%.*} => no need to run ./configure"
    fi
fi


# opt_run_make $compile $package $version
if [ $compile = "1" ] ; then
    ( cd $package$version ; \
      echo "Copying in customized renderer code: " ls *.js ; \
      /bin/cp ../wavesurfer-renderer/*.js src/. ; \
      echo "Copying in customized plugins: " ls *.js ; \
      /bin/cp ../wavesurfer-plugins/*.js src/plugin/. ; \
      echo "npm run build" ; \
      npm run build )
    if [ $? != 0 ] ; then
        echo "      Error encountered running *make $target* stage of $progname"
        exit 1
    fi
fi

# opt_run_make $install $package $version "install"
if [ $install = "1" ] ; then
    if [ ! -d ../../../web/ext ] ; then
	echo "  Making directory: ../../../web/ext"
	mkdir ../../../web/ext
    fi
    
    if [ ! -d ../../../web/ext/audio ] ; then
	echo "  Making directory: ../../../web/ext/audio"
	mkdir ../../../web/ext/audio
    fi

    if [ ! -d ../../../web/ext/audio/ws ] ; then
	echo "  Making directory: ../../../web/ext/audio/ws"
	mkdir ../../../web/ext/audio/ws
    fi

    echo "  Installing 'wavesurfer' into ../../../web/ext/audio"

    echo "Copying  $package$version/dist/* to ../../../web/ext/audio/ws/."
    /bin/cp -r "$package$version"/dist/* "../../../web/ext/audio/ws/."

# Turns out the JSON used by the Spectrogram plugin for WaveSurferJS wants
# the data directly (e.g. inline).  Can be set up with a URL call 
#   WaveSurfer.util.fetchFile() ...
# but more effort, so have opted to embed JSON directly into wavesurfer-player.js 
#    echo "Copying  colormap/hot-colormap.json to ../../../web/ext/audio/ws/."
#    /bin/cp -r colormap/hot-colormap.json ../../../web/ext/audio/ws/.

    echo "Copying  wavesurfer-player to ../../../web/ext/audio"
    /bin/cp -r wavesurfer-player/css wavesurfer-player/wavesurfer-player.js ../../../web/ext/audio/.


fi

# opt_run_make $clean $package $version "clean"
if [ $clean = "1" ] ; then
    echo "****"
    echo "* No 'clean' target currently implemented for 'npm' based src package"
    echo "****"
fi

#opt_run_make $distclean $package $version "distclean"
if [ $distclean = "1" ] ; then
    echo "****"
    echo "* No 'clean' target currently implemented for 'npm' based src package"
    echo "****"
fi

opt_run_tarclean $tarclean $package $version



