#!/usr/bin/env python
# -*- coding: utf-8; mode: python; -*-
#
#  GStreamer Debug Viewer - View and analyze GStreamer debug log files
#
#  Copyright (C) 2007 René Stadler <mail@renestadler.de>
#
#  This program is free software; you can redistribute it and/or modify it
#  under the terms of the GNU General Public License as published by the Free
#  Software Foundation; either version 3 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 General Public License for
#  more details.
#
#  You should have received a copy of the GNU General Public License along with
#  this program.  If not, see <http://www.gnu.org/licenses/>.

"""GStreamer Debug Viewer program invocation."""

def main ():

    import sys
    import os.path

    def substituted (s):
        if s.startswith ("$") and s.endswith ("$"):
            return None
        else:
            return s

    # These "$"-enclosed strings are substituted at install time by a custom
    # distutils extension (see setup.py).  If you don't see any dollar signs at
    # all, you are looking at an installed version of this file.
    data_dir = substituted ("$DATADIR$")
    lib_dir = substituted ("$LIBDIR$")

    if data_dir:
        installed = True
    else:
        # Substitution has not been run, we are running uninstalled:
        lib_dir = os.path.dirname (os.path.abspath (sys.argv[0]))
        installed = False

    if lib_dir:
        if not os.path.normpath (lib_dir) in [os.path.normpath (p)
                                              for p in sys.path]:
            sys.path.insert (0, lib_dir)

    try:
        import GstDebugViewer
    except ImportError as exc:
        print >> sys.stderr, str (exc)
        sys.exit (1)
    else:
        if installed:
            GstDebugViewer.Paths.setup_installed (data_dir)
        else:
            # Assume that we reside inside the source dist.
            source_dir = os.path.dirname (os.path.abspath (sys.argv[0]))
            GstDebugViewer.Paths.setup_uninstalled (source_dir)

    GstDebugViewer.run ()

if __name__ == "__main__":
    main ()