#!/usr/bin/env python # -*- 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. from __future__ import absolute_import, unicode_literals 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: if sys.version_info < (3,): decoded_path = sys.path[0].decode(sys.getfilesystemencoding()) else: 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()