#!/usr/bin/env python3
# -*- python-mode -*-
# -*- coding: UTF-8 -*-

## Copyright (C) 2012-2013  Daniel Pavel
##
## 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 2 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, write to the Free Software Foundation, Inc.,
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


def init_paths():
    """Make the app work in the source tree."""
    import sys
    import os.path as _path

    # Python 2 need conversion from utf-8 filenames
    # Python 3 might have problems converting back to UTF-8 in case of Unicode surrogates
    try:
        decoded_path = sys.path[0]
        sys.path[0].encode(sys.getfilesystemencoding())

    except UnicodeError:
        sys.stderr.write(
            'ERROR: Solaar cannot recognize encoding of filesystem path, '
            'this may happen because non UTF-8 characters in the pathname.\n'
        )
        sys.exit(1)

    prefix = _path.normpath(_path.join(_path.realpath(decoded_path), '..'))
    src_lib = _path.join(prefix, 'lib')
    share_lib = _path.join(prefix, 'share', 'solaar', 'lib')
    for location in src_lib, share_lib:
        init_py = _path.join(location, 'solaar', '__init__.py')
        # print ("sys.path[0]: checking", init_py)
        if _path.exists(init_py):
            # print ("sys.path[0]: found", location, "replacing", sys.path[0])
            sys.path[0] = location
            break


if __name__ == '__main__':
    init_paths()
    import solaar.gtk
    solaar.gtk.main()
