Compare commits

...

2 Commits

Author SHA1 Message Date
0ac4923568 added a free function to shutil 2020-03-18 01:57:05 +11:00
d90ce84cdb made init actually work, whoops 2020-03-18 01:31:44 +11:00
2 changed files with 49 additions and 11 deletions

View File

@ -3,6 +3,17 @@ local fs = require "fs"
local shell = require "shell"
local shutil = {}
local function wrapUnits(n)
local scale = {"K","M","G","T","P"}
local count = 0
while n >= 1024 do
count = count + 1
if not scale[count] then return "inf" end
n = n / 1024
end
return tostring(math.floor(n))..(scale[count] or "")
end
function shutil.import(lib)
local cE = os.getenv("INCLUDE") or shell.include
local nE = {}
@ -51,16 +62,6 @@ function shutil.df()
ml = v:len()
end
end
local scale = {"K","M","G","T","P"}
local function wrapUnits(n)
local count = 0
while n > 1024 do
count = count + 1
if not scale[count] then return "inf" end
n = n / 1024
end
return tostring(math.floor(n))..(scale[count] or "")
end
local fstr = "%-"..tostring(ml).."s %5s %5s"
print("fs"..(" "):rep(ml-2).." size used")
for k,v in pairs(mt) do
@ -94,6 +95,11 @@ function shutil.mount(addr,path)
end
end
function shutil.free()
print("Total Used Free")
print(string.format("%5s %5s %5s",wrapUnits(computer.totalMemory()),wrapUnits(computer.totalMemory()-computer.freeMemory()),wrapUnits(computer.freeMemory())))
end
shutil.cd = os.chdir
shutil.mkdir = fs.makeDirectory
shutil.cp = fs.copy

View File

@ -8,6 +8,38 @@
--#include "module/devfs/syslog.lua"
--#include "module/loadfile.lua"
--#include "module/vt-task.lua"
os.spawnfile("/boot/exec/init.lua")
os.spawn(function()
os.setenv("PWD","/boot")
io.input("/dev/null")
io.output("/dev/syslog")
local f = io.open("/boot/cfg/hostname","rb")
local hostname = computer.address():sub(1,8)
if f then
hostname = f:read("*l")
f:close()
end
os.setenv("HOSTNAME",hostname)
syslog(string.format("Hostname set to %s",hostname))
local pids = {}
local function loadlist()
local f = io.open("/boot/cfg/init.txt","rb")
if not f then return false end
for line in f:read("*a"):gmatch("[^\r\n]+") do
pids[line] = -1
end
f:close()
end
loadlist()
while true do
for k,v in pairs(pids) do
if not os.taskInfo(v) then
syslog("Starting service "..k)
pids[k] = os.spawnfile("/boot/service/"..k)
end
end
coroutine.yield()
end
end, "init")
os.sched()