diff --git a/preload/menu.py b/preload/menu.py index 26cd186ad3bca3be1b9f43adc33021dbb6c96400..b99d34ab551f59c92bdfdafaa6ea8292f50bdb00 100644 --- a/preload/menu.py +++ b/preload/menu.py @@ -12,6 +12,16 @@ import os import ujson import sys +def create_folders(): + try: + os.mkdir("/apps") + except: + pass + try: + os.mkdir("/elf") + except: + pass + def read_metadata(app_folder): try: info_file = "/apps/%s/metadata.json" % (app_folder) @@ -28,11 +38,14 @@ def list_apps(): apps = [] for appFolder in appFolders: - apps.append([appFolder, read_metadata(appFolder)]) + apps.append(["/apps/%s/__init__.py" % appFolder, read_metadata(appFolder)]) + + for elfFile in sorted(os.listdir("/elf")): + if elfFile.endswith(".elf"): + apps.append(["/elf/%s" % elfFile, {'author':'', 'name':"ELF: "+elfFile[:-4], 'description':'', 'category':'', 'revision': 0}]) return apps - def button_events(): """Iterate over button presses (event-loop).""" yield 0 @@ -75,6 +88,7 @@ def draw_menu(disp, applist, idx, offset): def main(): + create_folders() disp = display.open() applist = list_apps() numapps = len(applist) @@ -112,7 +126,7 @@ def main(): disp.clear().update() disp.close() try: - os.exec("/apps/%s/__init__.py" % applist[current][0]) + os.exec(applist[current][0]) except OSError as e: print("Loading failed: ", e) os.exit(1)