summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/ReadMe.py18
-rw-r--r--wasp/apps/software.py15
2 files changed, 33 insertions, 0 deletions
diff --git a/apps/ReadMe.py b/apps/ReadMe.py
new file mode 100644
index 0000000..bf6962c
--- /dev/null
+++ b/apps/ReadMe.py
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: LGPL-3.0-or-later
+# Copyright (C) 2021 Daniel Thompson
+"""Example of any automatically discovered application.
+
+Any python file (``.py`` or ``.mpy``) discovered in the ``apps/``
+directory will be automatically added to the Software application.
+"""
+
+import wasp
+
+class ReadMeApp():
+ NAME = "ReadMe"
+
+ def foreground(self):
+ draw = wasp.watch.drawable
+ draw.fill()
+ draw.string('Autoloaded from', 0, 96, width=240)
+ draw.string('apps/ReadMe.py', 0, 96+32, width=240)
diff --git a/wasp/apps/software.py b/wasp/apps/software.py
index 91bde38..c51036b 100644
--- a/wasp/apps/software.py
+++ b/wasp/apps/software.py
@@ -16,6 +16,7 @@ whilst still allowing users to activate so many awesome applications!
import wasp
import icons
+import os
class SoftwareApp():
@@ -50,6 +51,20 @@ class SoftwareApp():
db.append(('timer', factory('Timer')))
db.append(('weather', factory('Weather')))
+ # Handle user-loaded applications
+ try:
+ for app in os.listdir('apps'):
+ name = None
+ if app.endswith('.py'):
+ name = app[:-3]
+ if app.endswith('.mpy'):
+ name = app[:-4]
+ if name:
+ db.append((name, factory(name)))
+ except OSError:
+ # apps does not exist...
+ pass
+
# Get the initial state for the checkboxes
for _, checkbox in db:
label = checkbox.label.replace(' ', '')