summaryrefslogtreecommitdiff
path: root/lib/utils/paths.py
blob: 2e9faa591d011008d9eef12601eff85b65528eb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Authors: see git history
#
# Copyright (c) 2010 Authors
# Licensed under the GNU GPL version 3.0 or later.  See the file LICENSE for details.

import sys
import os
from os.path import dirname, realpath

import appdirs


def get_bundled_dir(name=None):
    if getattr(sys, 'frozen', None) is not None:
        if sys.platform == "darwin":
            path = os.path.join(sys._MEIPASS, "..", 'Resources')
        else:
            path = os.path.join(sys._MEIPASS, "..")
    else:
        path = os.path.join(dirname(realpath(__file__)), '..', '..')

    if name is not None:
        path = os.path.join(path, name)

    return realpath(path)


def get_resource_dir(name):
    if getattr(sys, 'frozen', None) is not None:
        if sys.platform == "darwin":
            return realpath(os.path.join(sys._MEIPASS, "..", 'Resources', name))
        else:
            return realpath(os.path.join(sys._MEIPASS, name))
    else:
        return realpath(os.path.join(dirname(realpath(__file__)), '..', '..', name))


def get_user_dir(name=None):
    path = appdirs.user_config_dir("inkstitch")

    if name is not None:
        path = os.path.join(path, name)

    return path