Module src.utils.identifyhome

Onionr - Private P2P Communication.

Identify a data directory for Onionr

Expand source code
"""Onionr - Private P2P Communication.

Identify a data directory for Onionr
"""
import os
import platform
"""
    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 <https://www.gnu.org/licenses/>.
"""


def identify_home() -> str:
    """Return path of home directory.

    Take env into account with sane OS defaults
    """
    path = os.environ.get('ONIONR_HOME', None)

    if path is not None and not os.getcwd().endswith('src') \
            and 'test' not in path:
        path = 'src/' + path

    if path is None:
        system = platform.system()
        if system == 'Linux':
            path = os.path.expanduser('~') + '/.local/share/onionr/'
        elif system == 'Windows':
            path = os.path.expanduser('~') + '\\AppData\\Local\\onionr\\'
        elif system == 'Darwin':
            path = os.path.expanduser('~' +
                                      '/Library/Application Support/onionr/')
        else:
            path = 'data/'
    else:
        path = os.path.abspath(path)
    if not path.endswith('/'):
        path += '/'

    return path

Functions

def identify_home()

Return path of home directory.

Take env into account with sane OS defaults

Expand source code
def identify_home() -> str:
    """Return path of home directory.

    Take env into account with sane OS defaults
    """
    path = os.environ.get('ONIONR_HOME', None)

    if path is not None and not os.getcwd().endswith('src') \
            and 'test' not in path:
        path = 'src/' + path

    if path is None:
        system = platform.system()
        if system == 'Linux':
            path = os.path.expanduser('~') + '/.local/share/onionr/'
        elif system == 'Windows':
            path = os.path.expanduser('~') + '\\AppData\\Local\\onionr\\'
        elif system == 'Darwin':
            path = os.path.expanduser('~' +
                                      '/Library/Application Support/onionr/')
        else:
            path = 'data/'
    else:
        path = os.path.abspath(path)
    if not path.endswith('/'):
        path += '/'

    return path