diff options
author | Minteck <contact@minteck.org> | 2022-07-03 14:23:25 +0200 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-07-03 14:23:25 +0200 |
commit | d25bdc9f3f3f6547d6c023ed7e192fc5913e9bbc (patch) | |
tree | a8e538a8e32b66fece6a10c198fe700866d1e233 /Library/SDK/Modules/Strawberry.AppManager.js | |
download | strawberry-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.js | 58 |
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 |