forked from Hyperion/HyperionOS
restructure for spm
This commit is contained in:
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"Name": "Hyperion bash",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "basic bash shell",
|
||||
"Dependencies": [
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-core-v1.0.0.pkg"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-bash-v1.0.0.tar"
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
print(".. *. ..")
|
||||
print(" *= +@* +* ")
|
||||
print(" .@#. -@@@= :#@. ")
|
||||
print(" =@@+ *@@@# +@@= ")
|
||||
print(" %@@%: *@@@# -%@@% ")
|
||||
print(" :@@@@+ *@@@# .*@@@@: ")
|
||||
print(" :*@@@%- *@@@# -@@@@*: ")
|
||||
print(" =%@@#. *@@@# .#@@%= ")
|
||||
print(" :=. :*@@= *@@@# =@@+: .=: ")
|
||||
print(" %@#=..*# +@@@# #*..=#@# ")
|
||||
print(" .@@@@+=# .%@%: #=+@@@@. ")
|
||||
print(" .....=# -@= *+...:. ")
|
||||
print(" -*%*-@= - =@-*%*- ")
|
||||
print(" -@*. -@%. :%@- :*@- ")
|
||||
print(" .#@#@* ")
|
||||
print(" -#- ")
|
||||
print(" ")
|
||||
18
Src/Hyperion-bash/bin/neofetch
Normal file
18
Src/Hyperion-bash/bin/neofetch
Normal file
@@ -0,0 +1,18 @@
|
||||
local userhost = syscall.OS_getUser().."@"..syscall.OS_getHostname()
|
||||
print(".. *. .. | "..userhost)
|
||||
print(" *= +@* +* | "..string.rep("-",#userhost))
|
||||
print(" .@#. -@@@= :#@. | OS: "..syscall.OS_version())
|
||||
print(" =@@+ *@@@# +@@= | Host: "..syscall.OS_getHost())
|
||||
print(" %@@%: *@@@# -%@@% | Uptime: "..syscall.OS_getUptime())
|
||||
print(" :@@@@+ *@@@# .*@@@@: | Tasks: "..tostring(#syscall.HPV_list()))
|
||||
print(" :*@@@%- *@@@# -@@@@*: | Packages: "..tostring())
|
||||
print(" =%@@#. *@@@# .#@@%= | Shell: "..syscall.HPV_getEnviron("SHELL"))
|
||||
print(" :=. :*@@= *@@@# =@@+: .=: | ")
|
||||
print(" %@#=..*# +@@@# #*..=#@# | ")
|
||||
print(" .@@@@+=# .%@%: #=+@@@@. | ")
|
||||
print(" .....=# -@= *+...:. | ")
|
||||
print(" -*%*-@= - =@-*%*- | ")
|
||||
print(" -@*. -@%. :%@- :*@- | ")
|
||||
print(" .#@#@* | ")
|
||||
print(" -#- | ")
|
||||
print(" | ")
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"Name": "Hyperion core",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "Core system files and librarys for HyperionOS",
|
||||
"Dependencies": [
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-kernel-v1.0.0.pkg"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-core-v1.0.0.tar"
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"Name": "Hyperion CCT Firmware",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "The ComputerCraftTweaked firmware package for HyperionOS.",
|
||||
"Dependencies": [
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-kernel-v1.0.0.pkg"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-firmware-cct-v1.0.0.tar",
|
||||
"BuildCommand": "sudo cp boot/cct/eeprom /dev/eeprom"
|
||||
}
|
||||
@@ -3,7 +3,6 @@ local BOOT_DRIVE_PATH=({...})[1] or "/$"
|
||||
---@diagnostic disable-next-line: undefined-global
|
||||
local term = term
|
||||
local os = os
|
||||
-- Function to write text to the terminal with special character handling
|
||||
local function write(text)
|
||||
local x, y = term.getCursorPos()
|
||||
local w, h = term.getSize()
|
||||
@@ -49,7 +48,6 @@ local function write(text)
|
||||
term.setCursorPos(x, y)
|
||||
end
|
||||
|
||||
-- Function to display critical errors and halt the system
|
||||
local function displaySuperBadError(err)
|
||||
term.setBackgroundColor(0x1)
|
||||
term.setTextColor(0x4)
|
||||
@@ -62,11 +60,9 @@ local function displaySuperBadError(err)
|
||||
end
|
||||
|
||||
term.setCursorBlink(false)
|
||||
-- Wrap all in xpcall to catch errors
|
||||
local ok, err = xpcall(function()
|
||||
local apis={BOOT_DRIVE_PATH=BOOT_DRIVE_PATH}
|
||||
|
||||
-- List of standard Lua globals
|
||||
local lua = {
|
||||
coroutine = true,
|
||||
debug = true,
|
||||
@@ -101,7 +97,6 @@ local ok, err = xpcall(function()
|
||||
_G=true
|
||||
}
|
||||
|
||||
-- Move all non-Lua standard library globals into the apis table
|
||||
local debug = debug
|
||||
for i,v in pairs(_G) do
|
||||
if not lua[i] or lua[i]==nil then
|
||||
@@ -115,7 +110,6 @@ local ok, err = xpcall(function()
|
||||
while stoptime > apis.os.clock() do end
|
||||
end
|
||||
|
||||
-- Set up terminal default colors
|
||||
apis.term.setPaletteColor(0x1, 0x000000) -- #000000
|
||||
apis.term.setPaletteColor(0x2, 0xFFFFFF) -- #FFFFFF
|
||||
apis.term.setPaletteColor(0x4, 0xFF0000) -- #FF0000
|
||||
@@ -133,7 +127,6 @@ local ok, err = xpcall(function()
|
||||
apis.term.setPaletteColor(0x4000, 0x6D00FF) -- #6D00FF
|
||||
apis.term.setPaletteColor(0x8000, 0xB6FF00) -- #B6FF00
|
||||
|
||||
-- Wrapper to read files
|
||||
local function getFile(path)
|
||||
local file = apis.fs.open(path, "r")
|
||||
if not file then displaySuperBadError("Could not open file: "..path) end
|
||||
@@ -142,7 +135,6 @@ local ok, err = xpcall(function()
|
||||
return content
|
||||
end
|
||||
|
||||
-- Load kernel first if it fails, we can't continue so we display an error
|
||||
local Kernel = load(getFile(BOOT_DRIVE_PATH.."/boot/kernel.lua"),"@Kernel")
|
||||
local initFs = load(getFile(BOOT_DRIVE_PATH.."/boot/cct/initdisks"),"@Init_disks")(apis)
|
||||
local fs = load(getFile(BOOT_DRIVE_PATH.."/boot/initfs"),"@InitFs")()
|
||||
@@ -160,15 +152,12 @@ local ok, err = xpcall(function()
|
||||
displaySuperBadError("Could not load key helper.")
|
||||
end
|
||||
|
||||
-- Set up event queue
|
||||
local eventQueue = {}
|
||||
|
||||
-- Function to queue events
|
||||
local function queueEvent(event, ...)
|
||||
table.insert(eventQueue, {event, ...})
|
||||
end
|
||||
|
||||
-- Set up computer api
|
||||
local computer = {
|
||||
time = function() return apis.os.epoch("utc") end,
|
||||
clock = function() return apis.os.clock()/1000 end,
|
||||
@@ -191,7 +180,6 @@ local ok, err = xpcall(function()
|
||||
end
|
||||
}
|
||||
|
||||
-- Set up terminal colors
|
||||
local icolors={
|
||||
[0x1] =0, -- #000000
|
||||
[0x2] =1, -- #FFFFFF
|
||||
@@ -235,7 +223,6 @@ local ok, err = xpcall(function()
|
||||
apis.term.clear()
|
||||
apis.term.setCursorPos(1, 1)
|
||||
|
||||
-- Make the kernel coroutine so we can hook its execution
|
||||
local kernelCoro = coroutine.create(function()
|
||||
---@diagnostic disable-next-line: param-type-mismatch
|
||||
local ok, err = xpcall(Kernel, debug.traceback, apis, initFs, "cct", "/sbin/init", {
|
||||
@@ -255,7 +242,7 @@ local ok, err = xpcall(function()
|
||||
end
|
||||
end)
|
||||
|
||||
-- Diffine a coroutine.resumeWithTimeout function to avoid hanging the system, time is in milliseconds
|
||||
-- time is in milliseconds
|
||||
function coroutine.resumeWithTimeout(co, timeout, ...)
|
||||
local startTime = computer.time()
|
||||
debug.sethook(co, function()
|
||||
@@ -276,7 +263,6 @@ local ok, err = xpcall(function()
|
||||
|
||||
write("Loaded in "..tostring(apis.os.clock()).." seconds.\n")
|
||||
|
||||
-- Main loop to run the kernel coroutine
|
||||
while true do
|
||||
local status, err = coroutine.resumeWithTimeout(kernelCoro, 50)
|
||||
apis.os.queueEvent("NoSleep")
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"Name": "Hyperion OC Firmware",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "The OpenComputers firmware package for HyperionOS.",
|
||||
"Dependencies": [
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-kernel-v1.0.0.pkg"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-firmware-oc-v1.0.0.tar",
|
||||
"BuildCommand": "cp boot/oc/eeprom /dev/eeprom"
|
||||
}
|
||||
0
Src/Hyperion-installer/bin/install
Normal file
0
Src/Hyperion-installer/bin/install
Normal file
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"Name": "Hyperion Kernel",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "The kernel package for HyperionOS.",
|
||||
"Dependencies": [],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-kernel-v1.0.0.tar"
|
||||
}
|
||||
@@ -30,7 +30,7 @@ function sys.spawn(func, name, envars, args, tgid)
|
||||
end
|
||||
end),
|
||||
name=name or ("task"..tostring(id)),
|
||||
envars=envars or {},
|
||||
envars=envars or kernel.currentTask.envars,
|
||||
args=args or {},
|
||||
status="R",
|
||||
pid=id,
|
||||
@@ -171,6 +171,22 @@ function sys.getPid()
|
||||
return kernel.currentTask.pid
|
||||
end
|
||||
|
||||
function sys.list()
|
||||
local ret={}
|
||||
for i,_ in ipairs(tasks) do
|
||||
ret[i]=sys.getTaskInfo(i)
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
function sys.getEnviron(key)
|
||||
return kernel.currentTask.envars[key]
|
||||
end
|
||||
|
||||
function sys.setEnviron(key, value)
|
||||
kernel.currentTask.envars[key]=value
|
||||
end
|
||||
|
||||
kernel.syscalls["HPV_spawn"]=sys.spawn
|
||||
kernel.syscalls["HPV_sleep"]=sys.sleep
|
||||
kernel.syscalls["HPV_getTaskInfo"]=sys.getTaskInfo
|
||||
@@ -179,6 +195,9 @@ kernel.syscalls["HPV_kill"]=sys.kill
|
||||
kernel.syscalls["HPV_stop"]=sys.stop
|
||||
kernel.syscalls["HPV_continue"]=sys.continue
|
||||
kernel.syscalls["HPV_getPid"]=sys.getPid
|
||||
kernel.syscalls["HPV_list"]=sys.list
|
||||
kernel.syscalls["HPV_setEnviron"]=sys.setEnviron
|
||||
kernel.syscalls["HPV_getEnviron"]=sys.getEnviron
|
||||
kernel._G.sleep=function(...)coroutine.yield("syscall","HPV_sleep",...)end
|
||||
|
||||
local function reapDeadTasks()
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"Name": "HyperionOS",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "The install package for HyperionOS project.",
|
||||
"Dependencies": [
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-core-v1.0.0.pkg",
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-kernel-v1.0.0.pkg",
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-ui-v1.0.0.pkg",
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-network-v1.0.0.pkg",
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-security-v1.0.0.pkg",
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-filesystem-v1.0.0.pkg",
|
||||
"https://git.astronand.dev/Hyperion/HyperionOS/archive/Hyperion-bash-v1.0.0.pkg"
|
||||
]
|
||||
}
|
||||
0
Test/HyperionOS-units/bin/hunit
Normal file
0
Test/HyperionOS-units/bin/hunit
Normal file
0
Test/HyperionOS-units/usr/lib/hunit/syscalls.unit
Normal file
0
Test/HyperionOS-units/usr/lib/hunit/syscalls.unit
Normal file
10
spm/pkg/HyperionOS-bash.pkg
Normal file
10
spm/pkg/HyperionOS-bash.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Name": "HyperionOS bash",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "Basic bash shell for HyperionOS",
|
||||
"Dependencies": [
|
||||
"HyperionOS"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/tar/HyperionOS-kernel.tar.gz"
|
||||
}
|
||||
10
spm/pkg/HyperionOS-core.pkg
Normal file
10
spm/pkg/HyperionOS-core.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Name": "HyperionOS core",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "Core system files and librarys for HyperionOS",
|
||||
"Dependencies": [
|
||||
"HyperionOS"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/tar/HyperionOS-core.tar.gz"
|
||||
}
|
||||
10
spm/pkg/HyperionOS-firmware-cct.pkg
Normal file
10
spm/pkg/HyperionOS-firmware-cct.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Name": "HyperionOS CCT Firmware",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "The ComputerCraftTweaked firmware package for HyperionOS.",
|
||||
"Dependencies": [
|
||||
"HyperionOS-kernel"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/tar/HyperionOS-kernel.tar.gz"
|
||||
}
|
||||
10
spm/pkg/HyperionOS-firmware-oc.pkg
Normal file
10
spm/pkg/HyperionOS-firmware-oc.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Name": "HyperionOS OC Firmware",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "The OpenComputers firmware package for HyperionOS.",
|
||||
"Dependencies": [
|
||||
"HyperionOS-kernel"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/tar/HyperionOS-kernel.tar.gz"
|
||||
}
|
||||
10
spm/pkg/HyperionOS-kernel.pkg
Normal file
10
spm/pkg/HyperionOS-kernel.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Name": "HyperionOS Kernel",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "The kernel package for HyperionOS.",
|
||||
"Dependencies": [
|
||||
"HyperionOS"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/tar/HyperionOS-kernel.tar.gz"
|
||||
}
|
||||
10
spm/pkg/HyperionOS-units.pkg
Normal file
10
spm/pkg/HyperionOS-units.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Name": "HyperionOS unit tests",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "HyperionOS testing units",
|
||||
"Dependencies": [
|
||||
"HyperionOS"
|
||||
],
|
||||
"Tar": "https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/tar/HyperionOS-units.tar.gz"
|
||||
}
|
||||
10
spm/pkg/HyperionOS.pkg
Normal file
10
spm/pkg/HyperionOS.pkg
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"Name": "HyperionOS",
|
||||
"Version": "1.0.0",
|
||||
"Publishers": ["HyperionOS Dev Team"],
|
||||
"Description": "The install package for HyperionOS project.",
|
||||
"Dependencies": [
|
||||
"HyperionOS-kernel",
|
||||
"HyperionOS-core"
|
||||
]
|
||||
}
|
||||
11
spm/spm.src
Normal file
11
spm/spm.src
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"Packages":{
|
||||
"HyperionOS":"https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/pkg/HyperionOS.pkg",
|
||||
"HyperionOS-core":"https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/pkg/HyperionOS-core.pkg",
|
||||
"HyperionOS-kernel":"https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/pkg/HyperionOS-kernel.pkg",
|
||||
"HyperionOS-firmware-cct":"https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/pkg/HyperionOS-firmware-cct.pkg",
|
||||
"HyperionOS-firmware-oc":"https://git.astronand.dev/Hyperion/HyperionOS/raw/branch/main/spm/pkg/HyperionOS-firmware-oc.pkg"
|
||||
},
|
||||
"Nodes":[],
|
||||
"Blacklist":[]
|
||||
}
|
||||
Reference in New Issue
Block a user