summaryrefslogtreecommitdiff
path: root/src/user/init/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/user/init/init.c')
-rw-r--r--src/user/init/init.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/user/init/init.c b/src/user/init/init.c
new file mode 100644
index 0000000..b8536be
--- /dev/null
+++ b/src/user/init/init.c
@@ -0,0 +1,31 @@
+#include <knob/user.h>
+#include <knob/file.h>
+#include <knob/task.h>
+
+void main() {
+ struct file *f = open_file("SYS/STARTUP.RC");
+ if (!f) {
+ tell_user_sz("Could not open SYS/STARTUP.RC\n");
+ return;
+ }
+
+ char buf[1024];
+ char *bufp = buf;
+ while (read_from_file(f, 1, bufp)) {
+ if (*bufp == '\n') {
+ if (bufp == buf)
+ continue;
+ *bufp = '\0';
+ try_run_command(buf);
+ bufp = buf;
+ }
+ else
+ ++bufp;
+ }
+ if (bufp != buf) {
+ *bufp = '\0';
+ try_run_command(buf);
+ }
+
+ close_file(f);
+}