Commit e1d2e21b authored by jtc42's avatar jtc42
Browse files

Fixed paths (mutable files now all in /var/openflexure)

parent dfbef9c3
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@ from openflexure_microscope.api.utilities import list_routes, init_default_exten

from openflexure_microscope.config import JSONEncoder
from openflexure_microscope.paths import (
    OPENFLEXURE_ETC_PATH,
    OPENFLEXURE_VAR_PATH,
    OPENFLEXURE_EXTENSIONS_PATH,
    settings_file_path,
@@ -60,7 +59,6 @@ else:

# Log server paths being used
logging.info(f"Running with data path {OPENFLEXURE_VAR_PATH}")
logging.info(f"Running with server path {OPENFLEXURE_ETC_PATH}")

# Create flask app
app, labthing = create_app(
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ from uuid import UUID
import numpy as np
from fractions import Fraction

from .paths import OPENFLEXURE_ETC_PATH, CONFIG_FILE_PATH, DEFAULT_CONFIG_FILE_PATH
from .paths import CONFIG_FILE_PATH, DEFAULT_CONFIG_FILE_PATH


class OpenflexureSettingsFile:
+10 −33
Original line number Diff line number Diff line
@@ -10,12 +10,17 @@ def check_rw(path):

def settings_file_path(filename: str):
    """Generate a full file path for a filename to be stored in server settings folder"""
    return os.path.join(OPENFLEXURE_ETC_PATH, filename)
    return os.path.join(OPENFLEXURE_VAR_PATH, "settings", filename)


def data_file_path(filename: str):
    """Generate a full file path for a filename to be stored in server data folder"""
    return os.path.join(OPENFLEXURE_VAR_PATH, filename)
    return os.path.join(OPENFLEXURE_VAR_PATH, "data", filename)


def extensions_file_path(filename: str):
    """Generate a full file path for a folder to be stored in server extensions"""
    return os.path.join(OPENFLEXURE_VAR_PATH, "extensions", filename)


# HANDLE DEFAULTS FILES STORED IN THIS APPLICATION
@@ -26,7 +31,7 @@ HERE = os.path.abspath(os.path.dirname(__file__))
DEFAULT_CONFIG_FILE_PATH = os.path.join(HERE, "microscope_settings.default.json")


# DATA BASE PATHS
# BASE PATHS

if os.name == "nt":
    PREFERRED_VAR_PATH = os.getenv("PROGRAMDATA") or "C:\\ProgramData"
@@ -49,37 +54,9 @@ else:
    OPENFLEXURE_VAR_PATH = FALLBACK_OPENFLEXURE_VAR_PATH


# SERVER BASE PATHS

if os.name == "nt":
    PREFERRED_ETC_PATH = os.getenv("PROGRAMDATA") or "C:\\ProgramData"
    FALLBACK_ETC_PATH = os.path.expanduser("~")
else:
    PREFERRED_ETC_PATH = "/etc"
    FALLBACK_ETC_PATH = os.path.join(os.path.expanduser("~"), ".config")

PREFERRED_OPENFLEXURE_ETC_PATH = os.path.join(PREFERRED_ETC_PATH, "openflexure")
FALLBACK_OPENFLEXURE_ETC_PATH = os.path.join(FALLBACK_ETC_PATH, "openflexure")

if not os.path.exists(PREFERRED_OPENFLEXURE_ETC_PATH) and check_rw(PREFERRED_ETC_PATH):
    os.makedirs(PREFERRED_OPENFLEXURE_ETC_PATH)

if check_rw(PREFERRED_OPENFLEXURE_ETC_PATH):
    OPENFLEXURE_ETC_PATH = PREFERRED_OPENFLEXURE_ETC_PATH
else:
    if not os.path.exists(FALLBACK_OPENFLEXURE_ETC_PATH):
        os.makedirs(FALLBACK_OPENFLEXURE_ETC_PATH)
    OPENFLEXURE_ETC_PATH = FALLBACK_OPENFLEXURE_ETC_PATH


# SERVER PATHS

#: Path of microscope settings directory
CONFIG_FILE_PATH = os.path.join(OPENFLEXURE_ETC_PATH, "microscope_settings.json")
CONFIG_FILE_PATH = settings_file_path("microscope_settings.json")
#: Path of microscope extensions directory
OPENFLEXURE_EXTENSIONS_PATH = os.path.join(
    OPENFLEXURE_ETC_PATH, "microscope_extensions"
)


# DATA PATHS
OPENFLEXURE_EXTENSIONS_PATH = extensions_file_path("microscope_extensions")