#!/usr/bin/env python3
#
# Copyright (c) 2014,Thibault Saunier <thibault.saunier@collabora.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301, USA.

import os
import subprocess
import sys

LIBDIR = r'/usr/local/lib'
BUILDDIR = r'/usr/obj/ports/gst-devtools-1.28.3/build-amd64/validate/tools'
SRCDIR = r'/usr/obj/ports/gst-devtools-1.28.3/gst-devtools-1.28.3/validate/tools'


def _add_gst_launcher_path():
    f = os.path.abspath(__file__)
    if f.startswith(BUILDDIR):
        # Make sure to have the configured config.py in the python path
        sys.path.insert(0, os.path.abspath(os.path.join(BUILDDIR, "..")))
        root = os.path.abspath(os.path.join(SRCDIR, "../"))
    else:
        root = os.path.join(LIBDIR, 'gst-validate-launcher', 'python')

    sys.path.insert(0, root)
    return os.path.join(root, "launcher")


if "__main__" == __name__:
    libsdir = _add_gst_launcher_path()
    from launcher.main import main
    run_profile = os.environ.get('GST_VALIDATE_LAUNCHER_PROFILING', False)
    if run_profile:
        import cProfile
        prof = cProfile.Profile()
        try:
            res = prof.runcall(main, libsdir)
        finally:
            prof.dump_stats('gst-validate-launcher-runstats')
        exit(res)

    exit(main(libsdir))
