"""Separate bundled program files from persistent customer data."""
import os
import shutil
import sys

SOURCE_DIR = os.path.abspath(os.path.dirname(__file__))
FROZEN = bool(getattr(sys, "frozen", False))
RESOURCE_DIR = getattr(sys, "_MEIPASS", SOURCE_DIR)

if FROZEN:
    DATA_DIR = os.environ.get(
        "POS_DATA_DIR",
        os.path.join(os.environ.get("LOCALAPPDATA", os.path.expanduser("~")), "ShopManagerPOS"),
    )
else:
    DATA_DIR = os.environ.get("POS_DATA_DIR", SOURCE_DIR)

os.makedirs(DATA_DIR, exist_ok=True)
TEMPLATE_DIR = os.path.join(RESOURCE_DIR, "templates")
STATIC_DIR = os.path.join(DATA_DIR if FROZEN else RESOURCE_DIR, "static")

if FROZEN and not os.path.exists(STATIC_DIR):
    shutil.copytree(os.path.join(RESOURCE_DIR, "static"), STATIC_DIR)


def resource_path(filename):
    return os.path.join(RESOURCE_DIR, filename)
