From ccbb0da1828c9da8c7e54a75c318665872be6d12 Mon Sep 17 00:00:00 2001
From: koalo <koalo@koalo.de>
Date: Tue, 20 Aug 2019 15:33:10 +0200
Subject: [PATCH] Factory reset via menu.py

---
 preload/menu.py | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/preload/menu.py b/preload/menu.py
index 463a8687..6f325d32 100644
--- a/preload/menu.py
+++ b/preload/menu.py
@@ -11,6 +11,9 @@ import display
 import os
 
 
+FACTORY_RESET_CMD = "! RESET !"
+
+
 def list_apps():
     """Create a list of available apps."""
     apps = sorted(os.listdir("."))
@@ -21,6 +24,8 @@ def list_apps():
     if "menu.py" in apps:
         apps.remove("menu.py")
 
+    apps.append(FACTORY_RESET_CMD)
+
     return apps
 
 
@@ -83,11 +88,18 @@ def main():
             # Select & start
             disp.clear().update()
             disp.close()
-            try:
-                os.exec(applist[current])
-            except OSError as e:
-                print("Loading failed: ", e)
-                os.exit(1)
+            
+            if applist[current] == FACTORY_RESET_CMD:
+                files = os.listdir(".")
+                for f in files:
+                    os.unlink(f)
+                os.exit(0)
+            else:
+                try:
+                    os.exec(applist[current])
+                except OSError as e:
+                    print("Loading failed: ", e)
+                    os.exit(1)
 
         draw_menu(disp, applist, current, 0)
 
-- 
GitLab