summaryrefslogtreecommitdiff
path: root/Library/SDK/Modules/Strawberry.AppManager.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-07-03 14:23:25 +0200
committerMinteck <contact@minteck.org>2022-07-03 14:23:25 +0200
commitd25bdc9f3f3f6547d6c023ed7e192fc5913e9bbc (patch)
treea8e538a8e32b66fece6a10c198fe700866d1e233 /Library/SDK/Modules/Strawberry.AppManager.js
downloadstrawberry-os-d25bdc9f3f3f6547d6c023ed7e192fc5913e9bbc.tar.gz
strawberry-os-d25bdc9f3f3f6547d6c023ed7e192fc5913e9bbc.tar.bz2
strawberry-os-d25bdc9f3f3f6547d6c023ed7e192fc5913e9bbc.zip
Initial commit
Diffstat (limited to 'Library/SDK/Modules/Strawberry.AppManager.js')
-rw-r--r--Library/SDK/Modules/Strawberry.AppManager.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/Library/SDK/Modules/Strawberry.AppManager.js b/Library/SDK/Modules/Strawberry.AppManager.js
new file mode 100644
index 0000000..71f7079
--- /dev/null
+++ b/Library/SDK/Modules/Strawberry.AppManager.js
@@ -0,0 +1,58 @@
+const path = require('path');
+global._STRAWBERRY_CURRENT_APP = null;
+
+module.exports = {
+ Start: (app) => {
+ Strawberry.Tick.Events = [];
+ Strawberry.ProcessKeyboard = false;
+ let name = path.basename(app, ".app");
+
+ load("Strawberry.DisplayRaw");
+ console.clear();
+ let horizontal = Math.round(process.stdout.columns / 2 - (1 + (name.length / 2)));
+ process.stdout.write(color.bgBlue.white(" ".repeat(horizontal) + name + " ".repeat(process.stdout.columns - horizontal - name.length)));
+
+ global._STRAWBERRY_INIT_APP();
+ global._STRAWBERRY_CURRENT_APP = app;
+ require(app + "/Main.js")();
+ },
+
+ Quit: () => {
+ Strawberry.Tick.Events = [];
+ Strawberry.ProcessKeyboard = false;
+
+ load("Strawberry.DisplayRaw");
+ console.clear();
+ process.stdout.write(color.bgBlue.white(" ".repeat(process.stdout.columns)));
+
+ Object.keys(require.cache).map((i) => {
+ let ji = 0;
+ require.cache[i].children.map((j) => {
+ if (require.cache[i].children[ji] !== undefined) {
+ let ki = 0;
+ require.cache[i].children[ji].children.map((k) => {
+ if (j.id.startsWith(global._STRAWBERRY_CURRENT_APP)) {
+ delete require.cache[i].children[j].children[ki];
+ }
+
+ ki++;
+ })
+ }
+
+ if (j.id.startsWith(global._STRAWBERRY_CURRENT_APP)) {
+ delete require.cache[i].children[ji];
+ }
+
+ ji++;
+ })
+
+ if (i.startsWith(global._STRAWBERRY_CURRENT_APP)) {
+ delete require.cache[i];
+ }
+ })
+
+ global._STRAWBERRY_CURRENT_APP = null;
+ global._STRAWBERRY_INIT_APP();
+ global._STRAWBERRY_SYSTEMSOFTWARE_INIT();
+ }
+} \ No newline at end of file