-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpaths.py
More file actions
39 lines (30 loc) · 1.17 KB
/
Copy pathpaths.py
File metadata and controls
39 lines (30 loc) · 1.17 KB
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
#!/usr/bin/env python3
"""
Hvor ting ligger.
Når appen kjører fra en .app-bundle er koden skrivebeskyttet, så brukerens
konfigurasjon kan ikke ligge ved siden av den. Den hører hjemme i
~/Library/Application Support/Makropad/.
Kjører vi fra kildekoden (utvikling), brukes prosjektmappa — da slipper man å
lete etter filene mens man jobber.
"""
import os
import shutil
import sys
FROZEN = getattr(sys, "frozen", False)
BUNDLE = getattr(sys, "_MEIPASS", os.path.dirname(os.path.abspath(__file__)))
if FROZEN:
DATA = os.path.expanduser("~/Library/Application Support/Makropad")
else:
DATA = os.path.dirname(os.path.abspath(__file__))
PROFILES = os.path.join(DATA, "profiles.yaml")
EXAMPLE = os.path.join(BUNDLE, "profiles.example.yaml")
def resource(name):
"""Fil som følger med programmet (ui.html, ikoner, eksempelprofil)."""
p = os.path.join(BUNDLE, name)
return p if os.path.exists(p) else None
def ensure_profiles():
"""Sørg for at det finnes en profiles.yaml å jobbe mot. Returnerer stien."""
os.makedirs(DATA, exist_ok=True)
if not os.path.exists(PROFILES) and os.path.exists(EXAMPLE):
shutil.copy(EXAMPLE, PROFILES)
return PROFILES