valconomy/controller/app.py

44 lines
1.1 KiB
Python

import logging
import os
import sys
import time
import infi.systray
import pkg_resources # needed for pyinstaller?
import valconomy
DATA_DIR = os.path.join(os.environ['LOCALAPPDATA'], 'Valconomy')
LOG_FILE = os.path.join(DATA_DIR, 'app.log')
log = logging.getLogger('valconomy')
def data_file(fname: str) -> str:
return os.path.abspath(os.path.join(os.path.dirname(__file__), fname))
running = True
def do_quit(tray: infi.systray.SysTrayIcon):
global running
log.info('Shutting down')
running = False
def do_view_logs(tray: infi.systray.SysTrayIcon):
os.startfile(DATA_DIR)
def main():
os.makedirs(DATA_DIR, exist_ok=True)
logging.basicConfig(
format='%(asctime)s %(levelname)s %(message)s', level=logging.INFO,
handlers=(
logging.StreamHandler(sys.stderr), # log to stderr as well as file
logging.FileHandler(LOG_FILE),
))
log.info('Starting up')
with infi.systray.SysTrayIcon(data_file('icon.ico'), 'Valconomy', menu_options=(('View logs', None, do_view_logs),), on_quit=do_quit) as tray:
while running:
time.sleep(0.5)
if __name__ == '__main__':
main()