#!/bin/bash -i
#
# this script is in git as gstreamer/scripts/gst-uninstalled
#
# It will set up the environment to use and develop gstreamer and projects
# that use gstreamer with an uninstalled git checkout of gstreamer and the
# plugin modules.
#
# It will set up LD_LIBRARY_PATH, DYLD_LIBRARY_PATH, PKG_CONFIG_PATH,
# GST_PLUGIN_PATH, GST_PLUGIN_SYSTEM_PATH, GST_REGISTRY, MANPATH, PYTHONPATH
# to prefer the uninstalled versions but also contain the installed ones.
# The only exception to this is, that no system installed plugins will be
# used but only the uninstalled ones.
#
# This script assumes that the relevant modules are checked out one by one
# under a given tree specified below in MYGST.
#
# Symlink this script in a directory in your path (for example $HOME/bin). You
# must name the symlink gst-something, where something is the subdirectory
# of MYGST that contains your gstreamer module checkouts.
#
# e.g.:
# - mkdir $HOME/gst/head
# - ln -sf gst-uninstalled $HOME/bin/gst-head
# - checkout copies of gstreamer modules in $HOME/gst/head
# - gst-head

# This script is run -i so that PS1 doesn't get cleared

if [ -z $GST_UNINSTALLED_ROOT ];
then
    # Change this variable to the location of your gstreamer git checkouts
    MYGST=$HOME/gst

    #
    # Everything below this line shouldn't be edited!
    #

    # extract version from $0
    # if this script is called "gst-head" then version will be "head"
    VERSION=`echo $0 | sed s/.*gst-//g`

    # base path under which dirs are installed
    GST=$MYGST/$VERSION
else
    # Alternatively, you can set the GST_UNINSTALLED_ROOT environment variable to the
    # location of your checkout and call this script directly.
    #
    # Ex: GST_UNINSTALLED_ROOT=$HOME/checkout/location gst-uninstalled

    GST=$GST_UNINSTALLED_ROOT
fi

GST_PREFIX=$GST/prefix
if test ! -e $GST; then
  echo "$GST does not exist !"
  exit
fi

# set up a bunch of paths
PATH="\
$GST/gstreamer/tools:\
$GST/gst-plugins-base/tools:\
$GST/gst-player/src:\
$GST/gst-editor/src:\
$GST/gstreamer-sharp/tools:\
$GST/orc/tools:\
$GST_PREFIX/bin:\
$PATH"

# /some/path: makes the dynamic linker look in . too, so avoid this
LD_LIBRARY_PATH=$GST_PREFIX/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
DYLD_LIBRARY_PATH=$GST_PREFIX/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}
GI_TYPELIB_PATH=$GST_PREFIX/share/gir-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}

# ORC
LD_LIBRARY_PATH=$GST/orc/orc/.libs:$GST/orc/orc-test/.libs:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$GST/orc/orc/.libs:$GST/orc/orc-test/.libs:$DYLD_LIBRARY_PATH

# GStreamer rtsp server library
LD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$GST/gst-rtsp-server/gst/rtsp-server/.libs:$DYLD_LIBRARY_PATH
GI_TYPELIB_PATH=$GST/gst-rtsp-server/gst/rtsp-server:$GI_TYPELIB_PATH

# GStreamer Editing Services library
LD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$GST/gst-editing-services/ges/.libs:$DYLD_LIBRARY_PATH
GI_TYPELIB_PATH=$GST/gst-editing-services/ges:$GI_TYPELIB_PATH
PATH=$GST/gst-editing-services/tools:$PATH

# GStreamer plugins vaapi libraries
LD_LIBRARY_PATH=$GST/gstreamer-vaapi/gst-libs/gst/vaapi/.libs:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$GST/gstreamer-vaapi/gst-libs/gst/vaapi/.libs:$DYLD_LIBRARY_PATH

# GStreamer plugins base libraries
for path in allocators app audio fft pbutils riff rtp rtsp sdp tag utils video
do
  LD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
  DYLD_LIBRARY_PATH=$GST/gst-plugins-base/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
  GI_TYPELIB_PATH=$GST/gst-plugins-base/gst-libs/gst/$path:$GI_TYPELIB_PATH
done

# GStreamer plugins bad libraries
for path in adaptivedemux audio base basecamerabinsrc codecparsers gl insertbin interfaces mpegts opencv player uridownloader video wayland
do
  LD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$LD_LIBRARY_PATH
  DYLD_LIBRARY_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
  GI_TYPELIB_PATH=$GST/gst-plugins-bad/gst-libs/gst/$path:$GI_TYPELIB_PATH
done
export GST_HAAR_CASCADES_PATH=$GST/gst-plugins-bad/ext/opencv/

# GStreamer core libraries
for path in base check controller net
do
  LD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$LD_LIBRARY_PATH
  DYLD_LIBRARY_PATH=$GST/gstreamer/libs/gst/$path/.libs:$DYLD_LIBRARY_PATH
  GI_TYPELIB_PATH=$GST/gstreamer/libs/gst/$path:$GI_TYPELIB_PATH
done
LD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$LD_LIBRARY_PATH
DYLD_LIBRARY_PATH=$GST/gstreamer/gst/.libs:$DYLD_LIBRARY_PATH
GI_TYPELIB_PATH=$GST/gstreamer/gst:$GI_TYPELIB_PATH
export LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH
export GI_TYPELIB_PATH
  
export PKG_CONFIG_PATH="\
$GST_PREFIX/lib/pkgconfig\
:$GST/gstreamer/pkgconfig\
:$GST/gst-plugins-base/pkgconfig\
:$GST/gst-plugins-good/pkgconfig\
:$GST/gst-plugins-ugly/pkgconfig\
:$GST/gst-plugins-bad/pkgconfig\
:$GST/gst-libav/pkgconfig\
:$GST/gst-ffmpeg/pkgconfig\
:$GST/gst-python/pkgconfig\
:$GST/gst-rtsp-server/pkgconfig\
:$GST/gst-editing-services/pkgconfig\
:$GST/gstreamer-sharp/pkgconfig\
:$GST/gstreamer-vaapi/pkgconfig\
:$GST/orc\
:$GST/farsight2\
:$GST/libnice/nice\
${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"

export GST_PLUGIN_PATH="\
$GST/gstreamer/plugins\
:$GST/gst-plugins-base/ext\
:$GST/gst-plugins-base/gst\
:$GST/gst-plugins-base/sys\
:$GST/gst-plugins-good/ext\
:$GST/gst-plugins-good/gst\
:$GST/gst-plugins-good/sys\
:$GST/gst-plugins-ugly/ext\
:$GST/gst-plugins-ugly/gst\
:$GST/gst-plugins-ugly/sys\
:$GST/gst-plugins-bad/ext\
:$GST/gst-plugins-bad/gst\
:$GST/gst-plugins-bad/sys\
:$GST/gst-libav/ext/\
:$GST/gst-ffmpeg/ext/\
:$GST/gst-omx/omx/.libs\
:$GST/clutter-gst/clutter-gst/.libs\
:$GST/gstreamer-vaapi/gst/vaapi/.libs\
:$GST/plugins\
:$GST/farsight2/gst\
:$GST/farsight2/transmitters\
:$GST/libnice/gst\
:$GST/gst-rpicamsrc/src/.libs\
:$GST/gst-rtsp-server/gst/rtsp-sink/.libs\
:$GST/gst-editing-services/plugins/nle/.libs\
${GST_PLUGIN_PATH:+:$GST_PLUGIN_PATH}"

export GST_PRESET_PATH="\
$GST/gst-plugins-good/gst/equalizer/\
:$GST/gst-plugins-good/gst/equalizer\
:$GST/gst-plugins-good/ext/vpx/\
:$GST/gst-plugins-ugly/ext/x264\
:$GST/gst-plugins-ugly/ext/amrnb\
:$GST/gst-plugins-bad/gst/freeverb\
:$GST/gst-plugins-bad/ext/voamrwbenc\
${GST_PRESET_PATH:+:$GST_PRESET_PATH}"

# don't use any system-installed plug-ins at all
export GST_PLUGIN_SYSTEM_PATH=
# set our registry somewhere else so we don't mess up the registry generated
# by an installed copy
rm -f $GST/gstreamer/registry.xml 2>/dev/null
export GST_REGISTRY=$GST/gstreamer/registry.dat
# Point at the uninstalled plugin scanner
export GST_PLUGIN_SCANNER=$GST/gstreamer/libs/gst/helpers/gst-plugin-scanner
# Point at the uninstalled PTP helper
export GST_PTP_HELPER=$GST/gstreamer/libs/gst/helpers/.libs/gst-ptp-helper

# once MANPATH is set, it needs at least an "empty"component to keep pulling
# in the system-configured man paths from man.config
# this still doesn't make it work for the uninstalled case, since man goes
# look for a man directory "nearby" instead of the directory I'm telling it to
export MANPATH=$GST/gstreamer/tools:$GST_PREFIX/share/man:$GST/gst-editing-services/docs/man/:$MANPATH
if [ -z "$PYTHON" ]; then PYTHON="python3"; fi
pythonver=`$PYTHON -c "import sys; print (sys.version[:3])"`
pythonsites=`$PYTHON -c "import site; print(':'.join(site.getsitepackages()))"`
export PYTHONPATH="${PYTHONPATH}:${pythonsites}:${GST}/gst-python"

# clutter-gst
export PKG_CONFIG_PATH=$GST/clutter-gst:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$GST/clutter-gst/clutter-gst/.libs:$DYLD_LIBRARY_PATH

# totem-pl-parser
export PKG_CONFIG_PATH=$GST/totem-pl-parser:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$GST/totem-pl-parser/plparse/.libs:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$GST/totem-pl-parser/plparse/.libs:$DYLD_LIBRARY_PATH

# totem
export PATH=$GST/totem/src:$PATH

# gstreamer-sharp
export MONO_PATH=$GST/gstreamer-sharp/gstreamer-sharp:$MONO_PATH
export LD_LIBRARY_PATH=$GST/gstreamer-sharp/gstreamer-sharp/glue/.libs:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$GST/gstreamer-sharp/gstreamer-sharp/glue/.libs:$DYLD_LIBRARY_PATH

# gst-devtools/validate
export PATH=$GST/gst-devtools/validate/tools:$PATH
export PKG_CONFIG_PATH=$GST/gst-devtools/validate/pkgconfig:$PKG_CONFIG_PATH
export GST_VALIDATE_SCENARIOS_PATH=$GST/gst-devtools/validate/data/scenarios:$GST_VALIDATE_SCENARIOS_PATH
export GST_VALIDATE_APPS_DIR=$GST_VALIDATE_APPS_DIR:$GST/gst-editing-services/tests/validate/
export GST_VALIDATE_PLUGIN_PATH=$GST_VALIDATE_PLUGIN_PATH:$GST/gst-devtools/validate/plugins/
export GIO_EXTRA_MODULES=$GST/prefix/lib/gio/modules:$GIO_EXTRA_MODULES

if [ -d "$GST/gst-libav" -a -d "$GST/gst-ffmpeg" ]; then
  echo
  echo "====================================================================="
  echo " You have both an uninstalled gst-ffmpeg checkout and a gst-libav"
  echo " checkout. You need to remove one of those. You should remove"
  echo
  echo "   $GST/gst-ffmpeg"
  echo
  echo " since gst-libav replaces gst-ffmpeg."
  echo "====================================================================="
  echo
fi

# if we got a command, run it, else start a shell
if test ! -z "$1";
then
  $@
  exit $?
fi

# set up prompt to help us remember we're in a subshell, cd to
# the gstreamer base dir and start $SHELL
cd $GST
shell=$SHELL
if test "x$SHELL" = "x/bin/bash"
then
  # debian/ubuntu resets our PS1.  bastards.
  shell="$SHELL --noprofile"
fi
PS1="[gst-$VERSION] $PS1" $shell

