gstreamer/validate/tools/gst-validate-launcher.in
2019-02-09 17:23:28 -03:00

77 lines
No EOL
2.5 KiB
Python
Executable file

#!/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'@LIBDIR@'
BUILDDIR = r'@BUILDDIR@'
SRCDIR = r'@SRCDIR@'
GIT_FIRST_HASH = 'da962d096af9460502843e41b7d25fdece7ff1c2'
def _get_git_first_hash(path):
cdir = os.path.abspath(os.curdir)
try:
os.chdir(path)
res = subprocess.check_output(['git', 'rev-list', '--max-parents=0', 'HEAD']).decode().rstrip('\n')
except (subprocess.CalledProcessError, OSError):
res = ''
finally:
os.chdir(cdir)
return res
def _in_devel():
root_dir = os.path.abspath(os.path.dirname(os.path.join(os.path.dirname(os.path.abspath(__file__)),
"..", "..", "..")))
return _get_git_first_hash(root_dir) == GIT_FIRST_HASH
def _add_gst_launcher_path():
f = os.path.abspath(__file__)
if _in_devel():
print("Running with development path")
dir_ = os.path.dirname(os.path.abspath(__file__))
root = os.path.split(dir_)[0]
elif 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()
res = prof.runcall(main, libsdir)
prof.dump_stats('gst-validate-launcher-runstats')
exit(res)
exit(main(libsdir))