From 0fe7982c459c38ff77717d1fa52cb5b50f077047 Mon Sep 17 00:00:00 2001 From: XeonSquared Date: Mon, 31 Jul 2017 13:04:44 +1000 Subject: [PATCH] made the build system capable of self-hosting --- build.cfg | 16 ++++++++++++++++ genkernel.lua | 3 +++ genkernel.sh | 4 +--- modules/applications/genkernel.lua | 17 +++++++++++++++++ 4 files changed, 37 insertions(+), 3 deletions(-) create mode 100755 build.cfg create mode 100755 genkernel.lua create mode 100644 modules/applications/genkernel.lua diff --git a/build.cfg b/build.cfg new file mode 100755 index 0000000..630f784 --- /dev/null +++ b/build.cfg @@ -0,0 +1,16 @@ +modules/debug/log.lua +modules/base/header.lua +modules/base/component.lua +modules/lib/fs.lua +modules/lib/buffer.lua +modules/lib/io.lua +modules/drivers/tty.lua +modules/lib/print.lua +modules/drivers/kbd.lua +modules/drivers/net.lua +modules/lib/readline.lua +modules/applications/luash.lua +modules/applications/genkernel.lua +modules/setup.lua +modules/base/footer.lua + diff --git a/genkernel.lua b/genkernel.lua new file mode 100755 index 0000000..dca0aea --- /dev/null +++ b/genkernel.lua @@ -0,0 +1,3 @@ +#!/usr/bin/env lua +require "modules/applications/genkernel" +print(genkernel(...)) diff --git a/genkernel.sh b/genkernel.sh index ba77144..3472a18 100755 --- a/genkernel.sh +++ b/genkernel.sh @@ -1,4 +1,2 @@ #!/bin/bash -echo "_OSVERSION=\"PsychOS $(git rev-parse HEAD | head -c 8)\"" -echo "_BD=\"$(date '+%Y/%m/%d %H:%M %z')\"" -cat modules/debug/log.lua modules/base/header.lua modules/base/component.lua modules/lib/fs.lua modules/lib/buffer.lua modules/lib/io.lua modules/drivers/tty.lua modules/lib/print.lua modules/drivers/kbd.lua modules/drivers/net.lua modules/lib/readline.lua modules/applications/luash.lua modules/setup.lua modules/base/footer.lua +./genkernel.lua build.cfg "$(git rev-parse --short HEAD)" > kernel.lua diff --git a/modules/applications/genkernel.lua b/modules/applications/genkernel.lua new file mode 100644 index 0000000..e6077da --- /dev/null +++ b/modules/applications/genkernel.lua @@ -0,0 +1,17 @@ +function genkernel(modlistf,kname) + local nk,f = "",io.open(modlistf,"rb") + nk=nk.."_OSVERSION=\"PsychOS "..(kname or "unknown").."\"\n" + nk=nk.."_BD=\""..os.date("%Y/%m/%d %H:%M %z").."\"\n" + local c=f:read("*a") + f:close() + n=1 + for line in c:gmatch("[^\r\n]+") do + n=n+1 + f=io.open(line,"rb") + if f then + nk=nk..f:read("*a") + f:close() + end + end + return nk +end