18 Commits
Author SHA1 Message Date
Astronand 171927c4bb Merge pull request 'i forgot to build the pkgs' (#26) from 1.2-dev into main
Reviewed-on: #26
2026-10-04 20:00:20 -04:00
Astronand 8a861ca725 Merge pull request 'GFX update :D' (#25) from 1.2-dev into main
Reviewed-on: #25
2026-10-04 19:51:35 -04:00
Astronand 429a1489d2 Merge pull request '1.2 dev' (#24) from 1.2-dev into main
Reviewed-on: #24
2026-08-25 21:17:07 -04:00
Astronand 211b7fc75b Merge pull request '1.2 dev' (#23) from 1.2-dev into main
Reviewed-on: #23
2026-08-24 09:16:38 -04:00
Astronand 4e7cec2ce1 Merge pull request 'testing update' (#22) from 1.2-dev into main
Reviewed-on: #22
2026-08-21 07:36:55 -04:00
Astronand 7ddc527e00 Merge pull request '1.2 dev' (#21) from 1.2-dev into main
Reviewed-on: #21
2026-08-15 22:41:41 -04:00
Astronand 3a33bd0264 Merge pull request 'fix spm files' (#20) from 1.2-dev into main
Reviewed-on: #20
2026-08-14 21:13:19 -04:00
Astronand 242762ab6b Merge pull request '1.2 dev' (#19) from 1.2-dev into main
Reviewed-on: #19
2026-08-14 20:47:25 -04:00
Astronand 8c18d89489 Merge pull request '1.2-dev' (#18) from 1.2-dev into main
Reviewed-on: #18
2026-03-21 01:12:24 -04:00
Astronand 041663e1e8 Merge pull request 'made newer installer that does not require tar stuff' (#17) from 1.2-dev into main
Reviewed-on: #17
2026-03-21 00:57:16 -04:00
Astronand fcac0ff8d8 Merge pull request 'made system use full salt+pepper' (#16) from 1.2-dev into main
Reviewed-on: #16
2026-03-19 14:11:24 -04:00
Astronand d98555328b Merge pull request '1.2-dev' (#15) from 1.2-dev into main
Reviewed-on: #15
2026-03-19 12:19:44 -04:00
Astronand 61cbb91db2 Merge branch '1.2-dev' 2026-03-19 11:28:56 -04:00
Astronand b79492dbb8 Merge branch 'main' of https://git.astronand.dev/Hyperion/HyperionOS 2026-03-19 11:28:29 -04:00
Astronand bc87c53427 Merge branch '1.2-dev' 2026-03-19 11:28:28 -04:00
Astronand 030e5bfd96 Update install/data/tarbad 2026-03-12 20:59:36 -04:00
Astronand 099638c735 Merge pull request 'update tar' (#12) from 1.2-dev into main
Reviewed-on: #12
2026-03-12 20:55:22 -04:00
Astronand 5172da1b5b Merge pull request '1.2-dev' (#11) from 1.2-dev into main
Reviewed-on: #11
2026-03-12 19:32:16 -04:00
59 changed files with 68 additions and 754 deletions

No files matched your search

@@ -1,5 +0,0 @@
--:Minify:--
local kernel=...
if kernel.arch~="cct" then
kernel.deny("cc-tweaked/31_keyboards.kmod")
end
@@ -1,12 +0,0 @@
--:Minify:--
local kernel=...
if kernel.arch~="cct" then
kernel.deny("cc-tweaked/01_periph.kmod")
kernel.deny("cc-tweaked/13_devraw.kmod")
kernel.deny("cc-tweaked/22_http.kmod")
kernel.deny("cc-tweaked/25_mouse.kmod")
kernel.deny("cc-tweaked/25_tty.kmod")
kernel.deny("cc-tweaked/30_daemon.kmod")
kernel.deny("cc-tweaked/46_scheduler.kmod")
kernel.deny("cc-tweaked/51_gpio.kmod")
end
@@ -18,13 +18,7 @@ local function createDisk(id, hw)
if not hw.exists(path) or not hw.isDirectory(path) then if not hw.exists(path) or not hw.isDirectory(path) then
return nil, "not directory" return nil, "not directory"
end end
local ret={} return hw.list(path)
for i,v in ipairs(hw.list(path)) do
if v:sub(-1)=="/" then
ret[i]=v:sub(1,#v-1)
else ret[i]=v end
end
return ret
end end
function disk:fileExists(path) function disk:fileExists(path)
@@ -1,11 +0,0 @@
--:Minify:--
local kernel=...
if kernel.arch~="oc" then
kernel.deny("opencomputers/01_devices.kmod")
kernel.deny("opencomputers/13_devraw.kmod")
kernel.deny("opencomputers/22_http.kmod")
kernel.deny("opencomputers/25_tty.kmod")
kernel.deny("opencomputers/26_keyboards.kmod")
kernel.deny("opencomputers/30_daemon.kmod")
kernel.deny("opencomputers/36_scheduler.kmod")
end
@@ -155,9 +155,6 @@ local function newtty(addr)
end, end,
gplt=function() gplt=function()
return plt return plt
end,
gfx=function()
return false
end end
} }
if mode=="rw" then if mode=="rw" then
@@ -1,593 +0,0 @@
--:Minify:--
local BOOT_DRIVE_PATH = ({...})[1] or "/$"
---@diagnostic disable-next-line: undefined-global
local lterm = term
local function write(text, term)
local x, y = term.getCursorPos()
local w, h = term.getSize()
for i = 1, #text do
local c = text:sub(i, i)
if c == "\n" then
y = y + 1
x = 1
elseif c == "\t" then
local tabSize = 4
local spaces = tabSize - ((x - 1) % tabSize)
term.write(string.rep(" ", spaces))
x = x + spaces
elseif c == "\b" then
if x > 1 then
x = x - 1
term.setCursorPos(x, y)
term.write(" ")
term.setCursorPos(x, y)
end
else
if x <= w and y <= h then
term.setCursorPos(x, y)
term.write(c)
x = x + 1
end
end
if x > w then
x = 1
y = y + 1
end
if y - 1 >= h then
term.scroll(1)
y = h
term.setCursorPos(x, y)
end
end
term.setCursorPos(x, y)
end
local function displaySuperBadError(err, noyield)
lterm.setBackgroundColor(0x1)
lterm.setTextColor(0x4)
lterm.clear()
lterm.setCursorPos(1, 1)
lterm.write("A critical error occurred while loading the system:")
lterm.setCursorPos(1, 3)
write(err, lterm)
coroutine.yield("key")
end
term.setCursorBlink(false)
local ok, err = xpcall(function()
--p
local apis = {BOOT_DRIVE_PATH = BOOT_DRIVE_PATH}
local lua = {
coroutine = true,
debug = true,
_VERSION = true,
assert = true,
collectgarbage = true,
error = true,
gcinfo = true,
getmetatable = true,
ipairs = true,
__inext = true,
load = true,
math = true,
next = true,
pairs = true,
pcall = true,
rawequal = true,
rawget = true,
rawlen = true,
rawset = true,
select = true,
setmetatable = true,
string = true,
table = true,
tonumber = true,
tostring = true,
type = true,
xpcall = true,
_G = true
}
local debug = debug
for i, v in pairs(_G) do
if not lua[i] or lua[i] == nil then
apis[i] = v
_G[i] = nil
end
end
--p
local acekeys={
[apis.keys.enter]="\n",
[apis.keys.tab]="\t",
[apis.keys.backspace]="\b",
[apis.keys.up]="\17",
[apis.keys.down]="\18",
[apis.keys.left]="\19",
[apis.keys.right]="\20",
}
function sleep(time)
local stoptime = apis.os.clock() + (time)
while stoptime > apis.os.clock() do end
end
apis.term.setPaletteColor(0x1, 0xFFFFFF) -- #000000
apis.term.setPaletteColor(0x2, 0xFF0000) -- #FFFFFF
apis.term.setPaletteColor(0x4, 0x00FF00) -- #FF0000
apis.term.setPaletteColor(0x8, 0x0000FF) -- #00FF00
apis.term.setPaletteColor(0x10, 0x00FFFF) -- #0000FF
apis.term.setPaletteColor(0x20, 0xFF00FF) -- #00FFFF
apis.term.setPaletteColor(0x40, 0xFFFF00) -- #FF00FF
apis.term.setPaletteColor(0x80, 0xFF6D00) -- #FFFF00
apis.term.setPaletteColor(0x100, 0x6DFF55) -- #FF6D00
apis.term.setPaletteColor(0x200, 0x24FFFF) -- #6DFF55
apis.term.setPaletteColor(0x400, 0x924900) -- #24FFFF
apis.term.setPaletteColor(0x800, 0x6D6D55) -- #924900
apis.term.setPaletteColor(0x1000, 0xDBDBAA) -- #6D6D55
apis.term.setPaletteColor(0x2000, 0x6D00FF) -- #DBDBAA
apis.term.setPaletteColor(0x4000, 0xB6FF00) -- #6D00FF
apis.term.setPaletteColor(0x8000, 0x000000) -- #B6FF00
local function getFile(path)
local file = apis.fs.open(path, "r")
if not file then
displaySuperBadError("Could not open file: " .. path)
end
local content = file.readAll()
file.close()
return content
end
local Kernel = load(getFile(BOOT_DRIVE_PATH .. "/kernel.lua"),"@Kernel")
local initFs = load(getFile(BOOT_DRIVE_PATH .. "/cct/initdisks"),"@Init_disks")(apis)
local fs = load(getFile(BOOT_DRIVE_PATH .. "/initfs"), "@InitFs")()
if not Kernel then displaySuperBadError("Could not load kernel.") end
if not initFs then displaySuperBadError("Could not load initdisks.") end
if not fs then displaySuperBadError("Could not load initfs.") end
if not apis.fs.exists("/nvram.dat") then
local file = apis.fs.open("/nvram.dat", "w")
file.write("Hello, World!")
file.close()
end
local eeprom
if apis.fs.exists("/startup.lua") then
eeprom="/startup.lua"
elseif apis.fs.exists("/eeprom") then
eeprom="/eeprom"
end
local eventQueue = {}
local function queueEvent(event, ...)
table.insert(eventQueue, {event, ...})
end
local colors = {
[0xFFFFFF]=0x0001,
[0xFF0000]=0x0002,
[0x00FF00]=0x0004,
[0x0000FF]=0x0008,
[0x00FFFF]=0x0010,
[0xFF00FF]=0x0020,
[0xFFFF00]=0x0040,
[0xFF6D00]=0x0080,
[0x6DFF55]=0x0100,
[0x24FFFF]=0x0200,
[0x924900]=0x0400,
[0x6D6D55]=0x0800,
[0xDBDBAA]=0x1000,
[0x6D00FF]=0x2000,
[0xB6FF00]=0x4000,
[0x000000]=0x8000
}
local fg,bg=0x6D6D55,0x000000
local l1f,l1d,l2,ops={},{},{},0
local function findClosest(tbl, target)
local closest = nil
local smallestDiff = math.huge
for k, _ in pairs(tbl) do
if k==target then return k end
local diff = math.abs(k - target)
if diff < smallestDiff then
smallestDiff = diff
closest = k
end
end
return closest
end
local function aprox(c24)
ops = ops + 1
if ops % 1024 == 0 then
l1d = {}
l1f = {}
end
if ops % 8192 == 0 then
l2 = {}
end
if l2[c24] ~= nil then
return l2[c24]
end
if l1d[c24] ~= nil then
l1f[c24] = l1f[c24] + 1
if l1f[c24] >= 16 then
l2[c24] = l1d[c24]
l1d[c24] = nil
l1f[c24] = nil
return l2[c24]
end
return l1d[c24]
end
local closestKey = findClosest(colors, c24)
if not closestKey then return nil end
local value = colors[closestKey]
l1d[c24] = value
l1f[c24] = 1
return value
end
--p
local p={}
local native = apis.peripheral
local sides = {"top", "bottom", "left", "right", "front", "back"}
function p.getNames()
local results = {}
for n = 1, #sides do
local side = sides[n]
if native.isPresent(side) then
table.insert(results, side)
if native.hasType(side, "peripheral_hub") then
local remote = native.call(side, "getNamesRemote")
for _, name in ipairs(remote) do
table.insert(results, name)
end
end
end
end
return results
end
function p.isPresent(name)
if native.isPresent(name) then
return true
end
for n = 1, #sides do
local side = sides[n]
if native.hasType(side, "peripheral_hub") and native.call(side, "isPresentRemote", name) then
return true
end
end
return false
end
function p.getType(peripheral)
if type(peripheral) == "string" then
if native.isPresent(peripheral) then
return native.getType(peripheral)
end
for n = 1, #sides do
local side = sides[n]
if native.hasType(side, "peripheral_hub") and native.call(side, "isPresentRemote", peripheral) then
return native.call(side, "getTypeRemote", peripheral)
end
end
return nil
else
local mt = getmetatable(peripheral)
if not mt or mt.__name ~= "peripheral" or type(mt.types) ~= "table" then
error("bad argument #1 (table is not a peripheral)", 2)
end
return table.unpack(mt.types)
end
end
function p.hasType(peripheral, peripheral_type)
if type(peripheral) == "string" then
if native.isPresent(peripheral) then
return native.hasType(peripheral, peripheral_type)
end
for n = 1, #sides do
local side = sides[n]
if native.hasType(side, "peripheral_hub") and native.call(side, "isPresentRemote", peripheral) then
return native.call(side, "hasTypeRemote", peripheral, peripheral_type)
end
end
return nil
else
local mt = getmetatable(peripheral)
if not mt or mt.__name ~= "peripheral" or type(mt.types) ~= "table" then
error("bad argument #1 (table is not a peripheral)", 2)
end
return mt.types[peripheral_type] ~= nil
end
end
function p.getMethods(name)
if native.isPresent(name) then
return native.getMethods(name)
end
for n = 1, #sides do
local side = sides[n]
if native.hasType(side, "peripheral_hub") and native.call(side, "isPresentRemote", name) then
return native.call(side, "getMethodsRemote", name)
end
end
return nil
end
function p.getName(peripheral)
local mt = getmetatable(peripheral)
if not mt or mt.__name ~= "peripheral" or type(mt.name) ~= "string" then
error("bad argument #1 (table is not a peripheral)", 2)
end
return mt.name
end
function p.call(name, method, ...)
if native.isPresent(name) then
return native.call(name, method, ...)
end
for n = 1, #sides do
local side = sides[n]
if native.hasType(side, "peripheral_hub") and native.call(side, "isPresentRemote", name) then
return native.call(side, "callRemote", name, method, ...)
end
end
return nil
end
function p.wrap(name)
local methods = p.getMethods(name)
if not methods then
return nil
end
local types = { p.getType(name) }
for i = 1, #types do types[types[i]] = true end
local result = setmetatable({}, {
__name = "peripheral",
name = name,
type = types[1],
types = types,
})
for _, method in ipairs(methods) do
result[method] = function(...)
return p.call(name, method, ...)
end
end
return result
end
function p.find(ty, filter)
local results = {}
for _, name in ipairs(p.getNames()) do
if p.hasType(name, ty) then
local wrapped = p.wrap(name)
if filter == nil or filter(name, wrapped) then
table.insert(results, wrapped)
end
end
end
return table.unpack(results)
end
--p
local allscreens = {p.find("monitor")}
for i=1, #allscreens do
allscreens[i].setTextScale(.5)
allscreens[i].clear()
allscreens[i].setCursorPos(1,1)
end
allscreens[#allscreens+1] = apis.term
local callAsyncQueue = {}
local callAsyncReturn = {}
apis.callAsyncReturn = callAsyncReturn
local callidx=0
function apis.callAsync(func, ...)
callidx=callidx+1
callAsyncQueue[#callAsyncQueue+1] = {callidx, func, ...}
return callidx
end
local EFI = {
yield=function() end,
getEpochMs = function() return apis.os.epoch("utc") end,
getUptime = function() return apis.os.clock() * 1000 end,
date = function() return apis.os.date("!%Y-%m-%dT%H:%M:%SZ", apis.os.epoch("utc") / 1000) end,
getMachineEvent = function()
if #eventQueue > 0 then
return table.unpack(table.remove(eventQueue, 1))
else
return nil
end
end,
getEEPROM = function() return getFile(eeprom) end,
setEEPROM = function(_, text)
local h = apis.fs.open(eeprom, "w")
h.write(text)
h.close()
end,
initfs=fs,
disks=initFs,
screenCtl={
print = function(_, text)
for i=1, #allscreens do
write(text.."\n", allscreens[i])
end
end,
printInline = function(_, text)
for i=1, #allscreens do
write(text, allscreens[i])
end
end,
clear = function()
for i=1, #allscreens do
allscreens[i].clear()
allscreens[i].setCursorPos(1, 1)
end
end,
resetCursor = function()
for i=1, #allscreens do
allscreens[i].setCursorPos(1, 1)
end
end,
setBackgroundColor = function(_, color)
bg=color
for i=1, #allscreens do
allscreens[i].setBackgroundColor(aprox(color))
end
end,
setTextColor = function(_, color)
fg=color
for i=1, #allscreens do
allscreens[i].setTextColor(aprox(color))
end
end,
getBackgroundColor = function()
return bg
end,
getTextColor = function()
return fg
end,
enable=function()
for i=1, #allscreens do
allscreens[i].clear()
allscreens[i].setCursorPos(1, 1)
end
end,
disable=function() end
},
architecture="cct",
getNvram = function() return getFile("/nvram.dat") end,
setNvram = function(_, text)
local h = apis.fs.open("/nvram.dat", "w")
h.write(text)
h.close()
end,
firmware=apis,
status="running",
beep=function() end
}
apis.term.setBackgroundColor(0x8000)
apis.term.setTextColor(0x1000)
apis.term.clear()
apis.term.setCursorPos(1, 1)
local kernelCoro = coroutine.create(function()
--pf
---@diagnostic disable-next-line: param-type-mismatch
local ok, err = xpcall(Kernel, debug.traceback, EFI)
if not ok then
error(err)
else
apis.os.shutdown()
end
end)
function EFI.resumeWithTimeout(co, timeout, ...)
local startTime = EFI.getEpochMs()
debug.sethook(co, function()
if EFI.getEpochMs() > startTime + timeout then
return coroutine.yield("timeout")
end
end, "", 1000)
local ret = {coroutine.resume(co, ...)}
if ret[1] and ret[2] == "timeout" then
return "timeout"
elseif ret[1] == false then
return "error", ret[2]
else
debug.sethook(co)
return "success", table.unpack(ret, 2)
end
end
EFI.screenCtl:print("Loaded in " .. tostring(apis.os.clock()) .. " seconds.\n")
--p
while true do
local status, err = EFI.resumeWithTimeout(kernelCoro, 50)
apis.os.queueEvent("NoSleep")
local exit = false
while not exit do
local event = {coroutine.yield()}
if event[1] == "key" then
queueEvent(table.unpack(event))
queueEvent("keyPressed", 1, event[2])
if acekeys[event[2]] then
queueEvent("keyTyped", 1, acekeys[event[2]])
end
elseif event[1] == "char" then
queueEvent(table.unpack(event))
queueEvent("keyTyped", 1, event[2])
elseif event[1] == "key_up" then
queueEvent(table.unpack(event))
queueEvent("keyReleased", 1, event[2])
elseif event[1] == "NoSleep" then
exit = true
else
queueEvent(table.unpack(event))
end
end
while #callAsyncQueue>0 do
local bundle = table.remove(callAsyncQueue, 1)
local ret = {xpcall(bundle[2], debug.traceback, table.unpack(bundle, 3))}
if not ret[1] then
callAsyncReturn[bundle[1]]={false, ret[2]}
else
callAsyncReturn[bundle[1]]={true, table.unpack(ret,2)}
end
end
if status == "error" or coroutine.status(kernelCoro) == "dead" then
if EFI.status=="reboot" then
apis.os.reboot()
elseif EFI.status=="shutdown" then
apis.os.shutdown()
end
displaySuperBadError("Kernel error: " .. tostring(err))
coroutine.yield("key")
elseif status == "success" then
if EFI.status=="reboot" then
apis.os.reboot()
elseif EFI.status=="shutdown" then
apis.os.shutdown()
end
displaySuperBadError("Kernel error: Attempted to yield main thread\n"..debug.traceback(kernelCoro, "Attempted to yield main thread"))
coroutine.yield("key")
end
initFs:refresh()
end
end, debug.traceback)
if not ok then displaySuperBadError("Fatal error during boot: " .. err) end
while true do coroutine.yield("key") end
@@ -1 +0,0 @@
print("Hyperion OS PUC bootloader")
+1 -1
View File
@@ -507,7 +507,7 @@ if kernel.status=="reboot" then
elseif kernel.status=="halt" then elseif kernel.status=="halt" then
kernel.log("System halted.") kernel.log("System halted.")
kernel.saveLog() kernel.saveLog()
while true do EFI:yield() end while true do end
else else
EFI.status="shutdown" EFI.status="shutdown"
return true return true
@@ -694,7 +694,7 @@ function vfs.open(path, mode)
if disk:type(diskPath) ~= "directory" then if disk:type(diskPath) ~= "directory" then
handle = disk:open(diskPath, mode) handle = disk:open(diskPath, mode)
if type(handle, true) ~= "table" then if type(handle, true) ~= "table" then
error("ENFILE".." KERR="..type(handle,true)) error("ENFILE")
end end
end end
@@ -103,7 +103,7 @@ local function newtaskproxy(task)
children[tostring(v.pid)]="/proc/"..tostring(v.pid) children[tostring(v.pid)]="/proc/"..tostring(v.pid)
end end
return { return {
[".meta"]=strFile(buildMeta({cwd=task.cwd,parent="/proc/"..tostring(task.parent.pid),root=task.root or "/"})), [".meta"]=strFile(buildMeta({cwd=task.cwd,parent="/proc/"..tostring(task.parent.pid)})),
uid=strFile(task.uid), uid=strFile(task.uid),
comm=strFile(task.name), comm=strFile(task.name),
fd={ fd={
@@ -115,9 +115,7 @@ local function newtaskproxy(task)
children={ children={
[".meta"]=strFile(buildMeta(children)) [".meta"]=strFile(buildMeta(children))
}, },
pid=strFile(task.pid), pid=strFile(task.pid)
ivs=strFile(task.ivs),
vs=strFile(task.vs)
} }
end end
@@ -19,17 +19,6 @@ if not initFunc then kernel.PANIC("Failed to load init system: " .. err) end
kernel.tasks["1"] = { kernel.tasks["1"] = {
coro = coroutine.create(function() coro = coroutine.create(function()
for i,v in pairs(kernel.processes) do
kernel.log("Spawning kernel task "..i)
syscall.spawn(function()
local status, err = pcall(v)
if not status then
kernel.log("Error executing kernel task '" .. i .. "': " .. err, "ERROR", 0xFF0000)
else
kernel.log("Successfully executed kernel task: " .. i)
end
end, i, nil,nil,nil,true)
end
local ok, err = xpcall(initFunc, debug.traceback, kernel) local ok, err = xpcall(initFunc, debug.traceback, kernel)
if not ok then if not ok then
kernel.panic("Init system crashed: " .. tostring(err)) kernel.panic("Init system crashed: " .. tostring(err))
+1 -1
View File
@@ -1 +1 @@
1.2.4 1.5.0
-1
View File
@@ -1 +0,0 @@
Hyperion
-2
View File
@@ -1,2 +0,0 @@
Hyperion-kernel
Hyperion-core
-1
View File
@@ -1 +0,0 @@
HyperionOS install package-group
-1
View File
@@ -1 +0,0 @@
1.2.4
-1
View File
@@ -1 +0,0 @@
Hyperion
-10
View File
@@ -1,10 +0,0 @@
Hyperion-kernel
Hyperion-core
coreutils
spm
sysinit
hysh
lua
micro
Hypersplash
math
-1
View File
@@ -1 +0,0 @@
HyperionOS install package-group
-1
View File
@@ -1 +0,0 @@
1.2.4
-1
View File
@@ -1 +0,0 @@
Hyperion
-6
View File
@@ -1,6 +0,0 @@
Hyperion-kernel
Hyperion-core
coreutils
hysh
lua
wget
-1
View File
@@ -1 +0,0 @@
HyperionOS install package-group
-1
View File
@@ -1 +0,0 @@
1.2.4
+2
View File
@@ -0,0 +1,2 @@
Hyperion
Astronand
Whitespace-only changes.
View File
Whitespace-only changes.
+1
View File
@@ -0,0 +1 @@
Hyperion os live installer
+1
View File
@@ -0,0 +1 @@
1.0.0
+4
View File
@@ -0,0 +1,4 @@
--:Minify:--
local lib = {}
return lib
+7 -12
View File
@@ -97,7 +97,6 @@ local spm = function(...)
i = i + 1 i = i + 1
end end
---@diagnostic disable-next-line: cast-local-type
i=nil i=nil
if cloptions.help or cloptions.h then if cloptions.help or cloptions.h then
@@ -633,11 +632,9 @@ local spm = function(...)
if pkgdb[i] then if pkgdb[i] then
if not cloptions.overwrite then if not cloptions.overwrite then
for f,h in pairs(v.data) do for f,h in pairs(v.data) do
if fs.exists(f) then if pkgdb[i].files[f]~=md5(fs.readAllText(f)) then
if pkgdb[i].files[f]~=md5(fs.readAllText(f)) then w(f.." was modified on disk, specify --overwrite to overwrite")
w(f.." was modified on disk, specify --overwrite to overwrite") block[f]=true
block[f]=true
end
end end
end end
end end
@@ -658,12 +655,10 @@ local spm = function(...)
if pkgdb[i] then if pkgdb[i] then
for f,c in pairs(pkgdb[i].files) do for f,c in pairs(pkgdb[i].files) do
if not v.data[f] then if not v.data[f] then
if fs.exists(f) then if c~=md5(fs.readAllText(f)) then
if c~=md5(fs.readAllText(f)) then w(f.." was modified on disk, specify --overwrite to overwrite")
w(f.." was modified on disk, specify --overwrite to overwrite") else
else delete[f]=true
delete[f]=true
end
end end
end end
end end
+4
View File
@@ -0,0 +1,4 @@
local args={...}
syscall.remove("/sbin/init")
syscall.symlink("/usr/lib/sysinit/sysinit", "/sbin/init")
syscall.exec("/sbin/init", args)
+12
View File
@@ -5,6 +5,18 @@ kernel.saveLog()
local fs=require("fs") local fs=require("fs")
kernel.log("Loaded fs") kernel.log("Loaded fs")
for i,v in pairs(kernel.processes) do
kernel.log("Spawning kernel task "..i)
syscall.spawn(function()
local status, err = pcall(v)
if not status then
kernel.log("Error executing kernel task '" .. i .. "': " .. err, "ERROR", 0xFF0000)
else
kernel.log("Successfully executed kernel task: " .. i)
end
end, i, nil,nil,nil,true)
end
-- config file path setup -- config file path setup
if not fs.exists("/etc/sysinit/") then if not fs.exists("/etc/sysinit/") then
kernel.log("Creating conf path") kernel.log("Creating conf path")
+1 -1
View File
@@ -4,6 +4,6 @@
"authors": [], "authors": [],
"dependencies": [], "dependencies": [],
"version": "0.0.0", "version": "0.0.0",
"hash": "56892ed6be471cb132c0762882293fe7", "hash": "dd93f2bd27640aea671155c26c3c47c5",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-firmware-addon-cct.tar.gz" "tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-firmware-addon-cct.tar.gz"
} }
+1 -1
View File
@@ -7,6 +7,6 @@
], ],
"dependencies": [], "dependencies": [],
"version": "1.3.0", "version": "1.3.0",
"hash": "8fb602c785c57a3a2779345c33dcb850", "hash": "b74410d9fb302a0dd4ca1b032afdc5c2",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-firmware-cct.tar.gz" "tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-firmware-cct.tar.gz"
} }
+1 -1
View File
@@ -8,6 +8,6 @@
], ],
"dependencies": [], "dependencies": [],
"version": "1.0.0", "version": "1.0.0",
"hash": "164db01c04cd35b1220ac7e3b0c6d9c1", "hash": "e7a2e5822cbf1e4e154014a3b4f97bb2",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-firmware-oc.tar.gz" "tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-firmware-oc.tar.gz"
} }
+1 -1
View File
@@ -4,6 +4,6 @@
"authors": [], "authors": [],
"dependencies": [], "dependencies": [],
"version": "0.0.0", "version": "0.0.0",
"hash": "c7ac47aee2275eddb834a933bab1a90e", "hash": "ee9eaca79973d87840c729bd4edf8633",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-firmware-puc.tar.gz" "tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-firmware-puc.tar.gz"
} }
+2 -2
View File
@@ -7,7 +7,7 @@
"Spsf" "Spsf"
], ],
"dependencies": [], "dependencies": [],
"version": "1.2.4", "version": "1.5.0",
"hash": "0ccf68c82625052e8f2a24e4faa311e1", "hash": "a72b269600fc4120ca93df599c519788",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-kernel.tar.gz" "tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/Hyperion-kernel.tar.gz"
} }
-14
View File
@@ -1,14 +0,0 @@
{
"id": "HyperionOS-bones",
"description": "HyperionOS install package-group",
"authors": [
"Hyperion"
],
"dependencies": [
"Hyperion-kernel",
"Hyperion-core"
],
"version": "1.2.4",
"hash": "aa030c94b32efce1387af837bd5e72c5",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/HyperionOS-bones.tar.gz"
}
-22
View File
@@ -1,22 +0,0 @@
{
"id": "HyperionOS-full",
"description": "HyperionOS install package-group",
"authors": [
"Hyperion"
],
"dependencies": [
"Hyperion-kernel",
"Hyperion-core",
"coreutils",
"spm",
"sysinit",
"hysh",
"lua",
"micro",
"Hypersplash",
"math"
],
"version": "1.2.4",
"hash": "77e9072b72ed42823723af56d8f35fe8",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/HyperionOS-full.tar.gz"
}
-18
View File
@@ -1,18 +0,0 @@
{
"id": "HyperionOS-minimal",
"description": "HyperionOS install package-group",
"authors": [
"Hyperion"
],
"dependencies": [
"Hyperion-kernel",
"Hyperion-core",
"coreutils",
"hysh",
"lua",
"wget"
],
"version": "1.2.4",
"hash": "ac1d8da249759cf5dd31cff3adf2adb8",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/HyperionOS-minimal.tar.gz"
}
+12
View File
@@ -0,0 +1,12 @@
{
"id": "installer",
"description": "Hyperion os live installer",
"authors": [
"Hyperion",
"Astronand"
],
"dependencies": [],
"version": "1.0.0",
"hash": "897e5abc980bda9051fff8f72c864251",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/installer.tar.gz"
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
{
"id": "scomposite",
"description": "No description provided",
"authors": [],
"dependencies": [],
"version": "0.0.0",
"hash": "bfa4821544c70be1b582b3eceda4a141",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/scomposite.tar.gz"
}
+1 -1
View File
@@ -14,6 +14,6 @@
"Hyperion-core" "Hyperion-core"
], ],
"version": "1.0.0", "version": "1.0.0",
"hash": "bc76091060b9c3190a6ecd508b213f53", "hash": "996e0fed6b0cb4ae5fb578ba3cfb0680",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/spm.tar.gz" "tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/spm.tar.gz"
} }
+1 -1
View File
@@ -7,6 +7,6 @@
], ],
"dependencies": [], "dependencies": [],
"version": "1.1.0", "version": "1.1.0",
"hash": "61dd459f48f7f8fabb6b649331d87886", "hash": "8c4a3ffcf86326bb0c07338060bb7727",
"tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/sysinit.tar.gz" "tarball": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/raw/sysinit.tar.gz"
} }
+2 -3
View File
@@ -9,9 +9,6 @@
"Hyperion-firmware-puc": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/Hyperion-firmware-puc.pkg", "Hyperion-firmware-puc": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/Hyperion-firmware-puc.pkg",
"Hyperion-firmware-vm": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/Hyperion-firmware-vm.pkg", "Hyperion-firmware-vm": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/Hyperion-firmware-vm.pkg",
"Hyperion-kernel": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/Hyperion-kernel.pkg", "Hyperion-kernel": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/Hyperion-kernel.pkg",
"HyperionOS-bones": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/HyperionOS-bones.pkg",
"HyperionOS-full": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/HyperionOS-full.pkg",
"HyperionOS-minimal": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/HyperionOS-minimal.pkg",
"bit32": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/bit32.pkg", "bit32": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/bit32.pkg",
"blake2s": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/blake2s.pkg", "blake2s": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/blake2s.pkg",
"coreutils": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/coreutils.pkg", "coreutils": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/coreutils.pkg",
@@ -19,6 +16,7 @@
"fonts": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/fonts.pkg", "fonts": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/fonts.pkg",
"hysh": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/hysh.pkg", "hysh": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/hysh.pkg",
"iniparse": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/iniparse.pkg", "iniparse": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/iniparse.pkg",
"installer": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/installer.pkg",
"json": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/json.pkg", "json": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/json.pkg",
"lua": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/lua.pkg", "lua": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/lua.pkg",
"math": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/math.pkg", "math": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/math.pkg",
@@ -26,6 +24,7 @@
"minify": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/minify.pkg", "minify": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/minify.pkg",
"pid": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/pid.pkg", "pid": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/pid.pkg",
"render3d": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/render3d.pkg", "render3d": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/render3d.pkg",
"scomposite": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/scomposite.pkg",
"spm": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/spm.pkg", "spm": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/spm.pkg",
"sysinit": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/sysinit.pkg", "sysinit": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/sysinit.pkg",
"tar": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/tar.pkg", "tar": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/packages/tar.pkg",