diff options
author | Minteck <contact@minteck.org> | 2022-11-28 17:31:34 +0100 |
---|---|---|
committer | Minteck <contact@minteck.org> | 2022-11-28 17:31:34 +0100 |
commit | 7923aa8942b55884320ef2428417e3ee4b121613 (patch) | |
tree | 7993632f2898b1998f25b11ce40a8d2eb3d44730 /StartupItems | |
download | mistyos-og-mane.tar.gz mistyos-og-mane.tar.bz2 mistyos-og-mane.zip |
Diffstat (limited to 'StartupItems')
-rw-r--r-- | StartupItems/001--MistyOSRoot.js | 3 | ||||
-rw-r--r-- | StartupItems/002--Logs.js | 13 | ||||
-rw-r--r-- | StartupItems/100--Preferences.js | 15 | ||||
-rw-r--r-- | StartupItems/200--Hostname.js | 6 | ||||
-rw-r--r-- | StartupItems/201--Keyboard.js | 3 | ||||
-rw-r--r-- | StartupItems/999--Shell.js | 8 |
6 files changed, 48 insertions, 0 deletions
diff --git a/StartupItems/001--MistyOSRoot.js b/StartupItems/001--MistyOSRoot.js new file mode 100644 index 0000000..2e000b3 --- /dev/null +++ b/StartupItems/001--MistyOSRoot.js @@ -0,0 +1,3 @@ +log("MistyCore-Startup-MistyOSRoot", "Attempting to mount root read-write..."); +require('child_process').execFileSync("/System/Binaries/mount", [ "-o", "remount,rw", "/" ]); +log("MistyCore-Startup-MistyOSRoot", "Mounted root read-write");
\ No newline at end of file diff --git a/StartupItems/002--Logs.js b/StartupItems/002--Logs.js new file mode 100644 index 0000000..fccd1d5 --- /dev/null +++ b/StartupItems/002--Logs.js @@ -0,0 +1,13 @@ +log("MistyCore-Startup-Logs", "Rotating journal..."); +const fs = require('fs'); + +let date = new Date().toISOString().replaceAll(":", "-"); +if (!fs.existsSync(systemRoot + "/Logs")) fs.mkdirSync(systemRoot + "/Logs"); +if (!fs.existsSync(systemRoot + "/Logs/LaunchDaemons")) fs.mkdirSync(systemRoot + "/Logs/LaunchDaemons"); +_originalSystemLog = systemLog; +if (fs.existsSync(systemLog)) fs.copyFileSync(systemLog, systemRoot + "/Logs/" + date + ".log"); +global.systemLog = systemRoot + "/Logs/" + date + ".log"; +if (!fs.existsSync(systemLog)) fs.writeFileSync(systemLog, ""); +fs.writeFileSync(systemRoot + "/../Volumes/VM/SystemLog", systemLog); + +log("MistyCore-Startup-Logs", "Done rotating journal");
\ No newline at end of file diff --git a/StartupItems/100--Preferences.js b/StartupItems/100--Preferences.js new file mode 100644 index 0000000..3c8a79b --- /dev/null +++ b/StartupItems/100--Preferences.js @@ -0,0 +1,15 @@ +log("MistyCore-Startup-Preferences", "Verifying system preferences..."); +const fs = require('fs'); + +if (!fs.existsSync(systemRoot + "/Preferences")) fs.mkdirSync(systemRoot + "/Preferences"); +if (!fs.existsSync(systemRoot + "/Preferences/Hostname")) fs.writeFileSync(systemRoot + "/Preferences/Hostname", "MistyOS"); +if (!fs.existsSync(systemRoot + "/Preferences/Keyboard")) fs.writeFileSync(systemRoot + "/Preferences/Keyboard", "qwerty"); +fs.writeFileSync(systemRoot + "/Preferences/os-release", ` +NAME="MistyOS" +VERSION="${fs.readFileSync(systemRoot + "/MistyOSVersion").toString().trim()}" +PRETTY_NAME="MistyOS ${fs.readFileSync(systemRoot + "/MistyOSVersion").toString().trim()}" +ID=mistyos +LOGO=mistyos-icon +`); + +log("MistyCore-Startup-Preferences", "System preferences are OK");
\ No newline at end of file diff --git a/StartupItems/200--Hostname.js b/StartupItems/200--Hostname.js new file mode 100644 index 0000000..9148c7d --- /dev/null +++ b/StartupItems/200--Hostname.js @@ -0,0 +1,6 @@ +const fs = require("fs"); +log("MistyCore-Startup-Hostname", "Setting hostname to " + require('fs').readFileSync(systemRoot + "/Preferences/Hostname").toString().trim()); +require('child_process').execFileSync("/System/Binaries/hostname", [ "--", require('fs').readFileSync(systemRoot + "/Preferences/Hostname").toString().trim() ]); +global.hostname = require('fs').readFileSync(systemRoot + "/Preferences/Hostname").toString().trim(); +fs.writeFileSync(systemRoot + "/../Volumes/VM/Hostname", hostname); +log("MistyCore-Startup-Hostname", "Set hostname successfully");
\ No newline at end of file diff --git a/StartupItems/201--Keyboard.js b/StartupItems/201--Keyboard.js new file mode 100644 index 0000000..7e3dbcd --- /dev/null +++ b/StartupItems/201--Keyboard.js @@ -0,0 +1,3 @@ +log("MistyCore-Startup-Keyboard", "Installing keyboard layout..."); +require('child_process').execFileSync("/System/Binaries/sh", [ "-c", "loadkeys < /System/Library/Keyboards/" + require('fs').readFileSync(systemRoot + "/Preferences/Keyboard").toString().trim().replace(/[^a-z\d]/gm, "") + ".kmap" ]); +log("MistyCore-Startup-Keyboard", "Installed keyboard layout: " + require('fs').readFileSync(systemRoot + "/Preferences/Keyboard").toString().trim().replace(/[^a-z\d]/gm, ""));
\ No newline at end of file diff --git a/StartupItems/999--Shell.js b/StartupItems/999--Shell.js new file mode 100644 index 0000000..ee33c6a --- /dev/null +++ b/StartupItems/999--Shell.js @@ -0,0 +1,8 @@ +const fs = require('fs'); + +log("MistyCore-Startup-Shell", "Starting user interface..."); +if (!fs.existsSync("/User")) fs.mkdirSync("/User"); +process.env.HOME = "/User"; +global.uiProcess = require('child_process').spawn("/System/Library/Frameworks/NodeJS/MistyRuntime", [ "/System/Library/MistyCore/shell.js" ], { stdio: "inherit", cwd: "/User" }); + +log("MistyCore-Startup-Shell", "Started user interface");
\ No newline at end of file |