move apis into rom/modules/main for shell compatibility

This commit is contained in:
kepler155c@gmail.com
2019-06-28 13:50:34 -04:00
parent d4e379af2e
commit b8544644b7
142 changed files with 613 additions and 3869 deletions

View File

@@ -1,7 +1,7 @@
local class = require('class') local class = require('opus.class')
local Util = require('util') local Util = require('opus.util')
local TableDB = require('core.tableDB') local TableDB = require('core.tableDB')
local JSON = require('json') local JSON = require('opus.json')
-- see https://github.com/Khroki/MCEdit-Unified/blob/master/pymclevel/minecraft.yaml -- see https://github.com/Khroki/MCEdit-Unified/blob/master/pymclevel/minecraft.yaml
-- see https://github.com/Khroki/MCEdit-Unified/blob/master/Items/minecraft/blocks.json -- see https://github.com/Khroki/MCEdit-Unified/blob/master/Items/minecraft/blocks.json

View File

@@ -1,7 +1,7 @@
local Blocks = require('builder.blocks') local Blocks = require('builder.blocks')
local class = require('class') local class = require('opus.class')
local Message = require('core.message') local Message = require('core.message')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device
local fs = _G.fs local fs = _G.fs

View File

@@ -1,6 +1,6 @@
local Builder = require('builder.builder') local Builder = require('builder.builder')
local Event = require('event') local Event = require('opus.event')
local Util = require('util') local Util = require('opus.util')
local commands = _G.commands local commands = _G.commands
local fs = _G.fs local fs = _G.fs

View File

@@ -1,7 +1,7 @@
local class = require('class') local class = require('opus.class')
local Util = require('util') local Util = require('opus.util')
local DEFLATE = require('builder.deflatelua') local DEFLATE = require('builder.deflatelua')
local Point = require('point') local Point = require('opus.point')
local bit = _G.bit local bit = _G.bit
local fs = _G.fs local fs = _G.fs

View File

@@ -1,12 +1,12 @@
local Adapter = require('core.inventoryAdapter') local Adapter = require('core.inventoryAdapter')
local Builder = require('builder.builder') local Builder = require('builder.builder')
local class = require('class') local class = require('opus.class')
local Event = require('event') local Event = require('opus.event')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Message = require('core.message') local Message = require('core.message')
local Point = require('point') local Point = require('opus.point')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device
local fs = _G.fs local fs = _G.fs

View File

@@ -3,13 +3,13 @@ if not _G.turtle and not _G.commands then
end end
local Adapter = require('core.inventoryAdapter') local Adapter = require('core.inventoryAdapter')
local Event = require('event') local Event = require('opus.event')
local GPS = require('gps') local GPS = require('opus.gps')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Schematic = require('builder.schematic') local Schematic = require('builder.schematic')
local TableDB = require('core.tableDB') local TableDB = require('core.tableDB')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local fs = _G.fs local fs = _G.fs

View File

@@ -1,9 +1,9 @@
local Event = require('event') local Event = require('opus.event')
local MEProvider = require('core.meProvider') local MEProvider = require('core.meProvider')
local Message = require('core.message') local Message = require('core.message')
local Point = require('point') local Point = require('opus.point')
local TableDB = require('core.tableDB') local TableDB = require('core.tableDB')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device
local os = _G.os local os = _G.os

View File

@@ -1,7 +1,7 @@
local Builder = require('builder.builder') local Builder = require('builder.builder')
local Schematic = require('builder.schematic') local Schematic = require('builder.schematic')
local TableDB = require('core.tableDB') local TableDB = require('core.tableDB')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device
local fs = _G.fs local fs = _G.fs
@@ -157,4 +157,4 @@ for i = 1, #Builder.schematic.blocks do
end end
pcall(_G.read) pcall(_G.read)
cn.clear() cn.clear()

View File

@@ -6,7 +6,7 @@ if ccemux then
-- add a System setup tab -- add a System setup tab
fs.mount('sys/apps/system/ccemux.lua', 'linkfs', 'packages/ccemux/system/ccemux.lua') fs.mount('sys/apps/system/ccemux.lua', 'linkfs', 'packages/ccemux/system/ccemux.lua')
local Config = require('config') local Config = require('opus.config')
for k,v in pairs(Config.load('ccemux')) do for k,v in pairs(Config.load('ccemux')) do
if not peripheral.getType(k) then if not peripheral.getType(k) then

View File

@@ -1,5 +1,5 @@
local Config = require('config') local Config = require('opus.config')
local UI = require('ui') local UI = require('opus.ui')
local ccemux = _G.ccemux local ccemux = _G.ccemux

View File

@@ -1,7 +1,7 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local SHA = require('crypto.sha2') local SHA = require('crypto.sha2')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local http = _G.http local http = _G.http

View File

@@ -1,9 +1,9 @@
_G.requireInjector(_ENV) _G.requireInjector(_ENV)
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local Event = require('event') local Event = require('opus.event')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local peripheral = _G.peripheral local peripheral = _G.peripheral

View File

@@ -1,8 +1,8 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local Config = require('config') local Config = require('opus.config')
local Event = require('event') local Event = require('opus.event')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local fs = _G.fs local fs = _G.fs

View File

@@ -1,6 +1,6 @@
local Event = require('event') local Event = require('opus.event')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local multishell = _ENV.multishell local multishell = _ENV.multishell
local os = _G.os local os = _G.os

View File

@@ -1,10 +1,10 @@
local Event = require('event') local Event = require('opus.event')
local GPS = require('gps') local GPS = require('opus.gps')
local Point = require('point') local Point = require('opus.point')
local Socket = require('socket') local Socket = require('opus.socket')
local Swarm = require('core.swarm') local Swarm = require('core.swarm')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local network = _G.network local network = _G.network

View File

@@ -1,7 +1,6 @@
local Sound = require('sound') local Sound = require('opus.sound')
local UI = require('opus.ui')
local UI = require('ui') local Util = require('opus.util')
local Util = require('util')
local peripheral = _G.peripheral local peripheral = _G.peripheral

View File

@@ -1,10 +1,10 @@
local Config = require('config') local Config = require('opus.config')
local Event = require('event') local Event = require('opus.event')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Socket = require('socket') local Socket = require('opus.socket')
local Terminal = require('terminal') local Terminal = require('opus.terminal')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local fs = _G.fs local fs = _G.fs

View File

@@ -1,5 +1,5 @@
local Point = require('point') local Point = require('opus.point')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device
local os = _G.os local os = _G.os

View File

@@ -1,4 +1,4 @@
local Util = require('util') local Util = require('opus.util')
local os = _G.os local os = _G.os
local peripheral = _G.peripheral local peripheral = _G.peripheral

View File

@@ -1,4 +1,4 @@
local input = require('input') local input = require('opus.input')
local colors = _G.colors local colors = _G.colors
local fs = _G.fs local fs = _G.fs

View File

@@ -1,11 +1,11 @@
local Event = require('event') local Event = require('opus.event')
local GPS = require('gps') local GPS = require('opus.gps')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Point = require('point') local Point = require('opus.point')
local Socket = require('socket') local Socket = require('opus.socket')
local Sound = require('sound') local Sound = require('opus.sound')
local Util = require('util') local Util = require('opus.util')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -14,7 +14,7 @@ local version = "Version 1.1.6"
-- Original code by Bomb Bloke -- Original code by Bomb Bloke
-- Modified to integrate with opus os -- Modified to integrate with opus os
local Util = require('util') local Util = require('opus.util')
local multishell = _ENV.multishell local multishell = _ENV.multishell
local os = _G.os local os = _G.os

View File

@@ -1,7 +1,7 @@
local class = require('class') local class = require('opus.class')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Peripheral = require('peripheral') local Peripheral = require('opus.peripheral')
local Util = require('util') local Util = require('opus.util')
local os = _G.os local os = _G.os

View File

@@ -1,7 +1,7 @@
local class = require('class') local class = require('opus.class')
local Util = require('util') local Util = require('opus.util')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Peripheral = require('peripheral') local Peripheral = require('opus.peripheral')
local ChestAdapter = class() local ChestAdapter = class()

View File

@@ -1,7 +1,7 @@
local Map = require('map') local Map = require('opus.map')
local nameDB = require('core.nameDB') local nameDB = require('core.nameDB')
local TableDB = require('core.tableDB') local TableDB = require('core.tableDB')
local Util = require('util') local Util = require('opus.util')
local itemDB = TableDB({ fileName = 'usr/config/items.db' }) local itemDB = TableDB({ fileName = 'usr/config/items.db' })

View File

@@ -1,7 +1,7 @@
local class = require('class') local class = require('opus.class')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Peripheral = require('peripheral') local Peripheral = require('opus.peripheral')
local Util = require('util') local Util = require('opus.util')
local os = _G.os local os = _G.os

View File

@@ -1,7 +1,7 @@
local class = require('class') local class = require('opus.class')
local RSAdapter = require('core.refinedAdapter') local RSAdapter = require('core.refinedAdapter')
local Peripheral = require('peripheral') local Peripheral = require('opus.peripheral')
local Util = require('util') local Util = require('opus.util')
local MEAdapter = class(RSAdapter) local MEAdapter = class(RSAdapter)

View File

@@ -1,4 +1,4 @@
local Event = require('event') local Event = require('opus.event')
local Message = { } local Message = { }
@@ -92,4 +92,4 @@ function Message.waitForMessage(msgType, timeout, fromId)
until e == 'timer' and side == timerId until e == 'timer' and side == timerId
end end
return Message return Message

View File

@@ -1,6 +1,6 @@
local JSON = require('json') local JSON = require('opus.json')
local TableDB = require('core.tableDB') local TableDB = require('core.tableDB')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs

View File

@@ -1,4 +1,4 @@
local Socket = require('socket') local Socket = require('opus.socket')
local Proxy = { } local Proxy = { }

View File

@@ -1,7 +1,7 @@
local class = require('class') local class = require('opus.class')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Peripheral = require('peripheral') local Peripheral = require('opus.peripheral')
local Util = require('util') local Util = require('opus.util')
local RefinedAdapter = class() local RefinedAdapter = class()

View File

@@ -1,6 +1,6 @@
local class = require('class') local class = require('opus.class')
local Event = require('event') local Event = require('opus.event')
local Map = require('map') local Map = require('opus.map')
local Proxy = require('core.proxy') local Proxy = require('core.proxy')
local Swarm = class() local Swarm = class()

View File

@@ -1,5 +1,5 @@
local class = require('class') local class = require('opus.class')
local Util = require('util') local Util = require('opus.util')
local TableDB = class() local TableDB = class()
function TableDB:init(args) function TableDB:init(args)

View File

@@ -1,5 +1,5 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local turtle = _G.turtle local turtle = _G.turtle

View File

@@ -1,5 +1,5 @@
local Point = require('point') local Point = require('opus.point')
local Util = require('util') local Util = require('opus.util')
local turtle = _G.turtle local turtle = _G.turtle

View File

@@ -1,6 +1,6 @@
local Equipper = require('turtle.equipper') local Equipper = require('turtle.equipper')
local Point = require('point') local Point = require('opus.point')
local Util = require('util') local Util = require('opus.util')
local os = _G.os local os = _G.os
local turtle = _G.turtle local turtle = _G.turtle

View File

@@ -1,6 +1,6 @@
local Equipper = require('turtle.equipper') local Equipper = require('turtle.equipper')
local Point = require('point') local Point = require('opus.point')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local os = _G.os local os = _G.os

View File

@@ -1,7 +1,7 @@
local Adapter = require('core.chestAdapter18') local Adapter = require('core.chestAdapter18')
local Config = require('config') local Config = require('opus.config')
local Equipper = require('turtle.equipper') local Equipper = require('turtle.equipper')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local os = _G.os local os = _G.os

View File

@@ -1,6 +1,6 @@
local Equipper = require('turtle.equipper') local Equipper = require('turtle.equipper')
local Point = require('point') local Point = require('opus.point')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local os = _G.os local os = _G.os

View File

@@ -1,7 +1,7 @@
local Equipper = require('turtle.equipper') local Equipper = require('turtle.equipper')
local GPS = require('gps') local GPS = require('opus.gps')
local Point = require('point') local Point = require('opus.point')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local os = _G.os local os = _G.os

View File

@@ -18,8 +18,8 @@
place the turtle in the original position before restarting the program. place the turtle in the original position before restarting the program.
]]-- ]]--
local Point = require('point') local Point = require('opus.point')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local os = _G.os local os = _G.os

View File

@@ -1,7 +1,7 @@
_G.requireInjector(_ENV) _G.requireInjector(_ENV)
local Event = require('event') local Event = require('opus.event')
local UI = require('ui') local UI = require('opus.ui')
redstone.setBundledOutput('bottom', 0) redstone.setBundledOutput('bottom', 0)

View File

@@ -1,7 +1,7 @@
_G.requireInjector(_ENV) _G.requireInjector(_ENV)
local Event = require('event') local Event = require('opus.event')
local Util = require('util') local Util = require('opus.util')
local chest = peripheral.wrap('top') local chest = peripheral.wrap('top')

View File

@@ -1,4 +1,4 @@
local Sound = require('sound') local Sound = require('opus.sound')
local os = _G.os local os = _G.os

View File

@@ -1,6 +1,6 @@
local Config = require('config') local Config = require('opus.config')
local GPS = require('gps') local GPS = require('opus.gps')
local Util = require('util') local Util = require('opus.util')
local args = { ... } local args = { ... }
local colors = _G.colors local colors = _G.colors

View File

@@ -1,7 +1,7 @@
local class = require('class') local class = require('opus.class')
local UI = require('ui') local UI = require('opus.ui')
local Event = require('event') local Event = require('opus.event')
local Peripheral = require('peripheral') local Peripheral = require('opus.peripheral')
--[[-- Glasses device --]]-- --[[-- Glasses device --]]--
local Glasses = class() local Glasses = class()

View File

@@ -1,7 +1,7 @@
_G.requireInjector(_ENV) _G.requireInjector(_ENV)
local Config = require('config') local Config = require('opus.config')
local GPS = require('gps') local GPS = require('opus.gps')
local ni = _G.device.neuralInterface local ni = _G.device.neuralInterface
local os = _G.os local os = _G.os

11
mbs/.package Normal file
View File

@@ -0,0 +1,11 @@
{
title = 'MBS - Mildly Better Shell',
repository = 'kepler155c/opus-apps/{{OPUS_BRANCH}}/mbs',
description = [[
A shell alternative and more by SquidDev-CC. See:
https://github.com/SquidDev-CC/mbs
MBS is a series of utilities for improving the default CraftOS experience.
]],
licence = 'MIT',
}

7
mbs/autorun/startup.lua Normal file
View File

@@ -0,0 +1,7 @@
if not fs.exists('.mbs') then
print('Installing MBS')
shell.run('mbs download')
end
print('Initializing MBS')
shell.run('mbs startup')

7
mbs/etc/apps.db Normal file
View File

@@ -0,0 +1,7 @@
{
[ "mbs" ] = {
title = "MBS",
category = "Apps",
run = ".mbs/bin/shell.lua",
},
}

260
mbs/mbs.lua Normal file
View File

@@ -0,0 +1,260 @@
local arg = table.pack(...)
local root_dir = ".mbs"
local rom_dir = "rom/.mbs"
local install_dir = fs.exists(root_dir) and root_dir or rom_dir
local repo_url = "https://raw.githubusercontent.com/SquidDev-CC/mbs/master/"
--- Write a string with the given colour to the terminal
local function write_coloured(colour, text)
local old = term.getTextColour()
term.setTextColour(colour)
io.write(text)
term.setTextColour(old)
end
--- Print usage for this program
local commands = { "install", "modules", "module", "download" }
local function print_usage()
local name = fs.getName(shell.getRunningProgram()):gsub("%.lua$", "")
write_coloured(colours.cyan, name .. " modules ") io.write("Print the status of all modules\n")
write_coloured(colours.cyan, name .. " module ") io.write("Print information about a given module\n")
write_coloured(colours.cyan, name .. " install ") io.write("Download all modules and create a startup file\n")
write_coloured(colours.cyan, name .. " download ") io.write("Download all modules WITHOUT creating a startup file\n")
end
--- Attempt to load a module from the given path, returning the module or false
-- and an error message.
local function load_module(path)
if fs.isDir(path) then return false, "Invalid module (is directory)" end
local fn, err = loadfile(path, _ENV)
if not fn then return false, "Invalid module (" .. err .. ")" end
local ok, res = pcall(fn)
if not ok then return false, "Invalid module (" .. res .. ")" end
if type(res) ~= "table" or type(res.description) ~= "string" or type(res.enabled) ~= "function" then
return false, "Malformed module"
end
return res
end
--- Setup all modules
local function setup_module(module)
for _, setting in ipairs(module.settings) do
if settings.get(setting.name) == nil then
settings.set(setting.name, setting.default)
end
end
end
--- Download a set of files
local function download_files(files)
if #files == 0 then return end
local urls = {}
for _, file in ipairs(files) do
local url = repo_url .. file
http.request(url)
urls[url] = file
end
while true do
local event, url, arg1 = os.pullEvent()
if event == "http_success" and urls[url] then
local handle = fs.open(fs.combine(root_dir, urls[url]), "w")
handle.write(arg1.readAll())
handle.close()
arg1.close()
urls[url] = nil
if next(urls) == nil then return end
elseif event == "http_failure" and urls[url] then
error("Could not download " .. urls[url], 0)
end
end
end
--- read completion helper, completes text using the given options
local function complete_multi(text, options, add_spaces)
local results = {}
for n = 1, #options do
local option = options[n]
if #option + (add_spaces and 1 or 0) > #text and option:sub(1, #text) == text then
local result = option:sub(#text + 1)
if add_spaces then
results[#results + 1] = result .. " "
else
results[#results + 1] = result
end
end
end
return results
end
--- Append an object to a list if it is not already contained within
local function add_unique(list, x)
for i = 1, #list do if list[i] == x then return end end
list[#list + 1] = x
end
local function load_all_modules()
-- Load all modules and update them.
local module_dir = fs.combine(root_dir, "modules")
local modules = fs.isDir(module_dir) and fs.list(module_dir) or {}
-- Add the default modules if not already there.
for _, module in ipairs { "lua.lua", "pager.lua", "readline.lua", "shell.lua" } do
add_unique(modules, module)
end
local files = {}
for i = 1, #modules do files[i] = "modules/" .. modules[i] end
download_files(files)
-- Scan for dependencies in enabled modules, downloading them as well
local deps = {}
for i = 1, #files do
local module = load_module(fs.combine(root_dir, files[i]))
if module then
setup_module(module)
if module.enabled() then
for _, dep in ipairs(module.dependencies) do deps[#deps + 1] = dep end
end
end
end
download_files(deps)
end
if arg.n == 0 then
printError("Expected some command")
print_usage()
error()
elseif arg[1] == "download" then
load_all_modules()
elseif arg[1] == "install" then
load_all_modules()
-- Move the existing startup file. We have to read the whole thing,
-- as otherwise we'd end up copying inside ourselves.
if fs.exists("startup") and not fs.isDir("startup") then
write_coloured(colours.cyan, "Moving your existing startup file to startup/30_startup.lua.\n")
local handle = fs.open("startup", "r")
local contents = handle.readAll()
handle.close()
fs.delete("startup")
handle = fs.open("startup/30_startup.lua", "w")
handle.write(contents)
handle.close()
end
-- Also move the startup.lua file afterwards
if fs.exists("startup.lua") and not fs.isDir("startup.lua") then
write_coloured(colours.cyan, "Moving your existing startup.lua file to startup/31_startup.lua.\n")
fs.move("startup.lua", "startup/31_startup.lua")
end
if fs.exists("startup/99_mbs.lua") then
write_coloured(colours.cyan, "Deleting the old startup/99_mbs.lua file. We now run before other startup files.\n")
fs.delete("startup/99_mbs.lua")
end
-- We'll run at the first possible position to ensure
local handle = fs.open("startup/00_mbs.lua", "w")
handle.writeLine(("assert(loadfile(%q, _ENV))('startup')"):format(shell.getRunningProgram()))
handle.close()
write_coloured(colours.green, "Installed! ")
io.write("Please reboot to apply changes.\n")
elseif arg[1] == "startup" then
-- Gather a list of all modules
local module_dir = fs.combine(install_dir, "modules")
local files = fs.isDir(module_dir) and fs.list(module_dir) or {}
-- Load those modules and determine which are enabled.
local enabled = {}
local module_names = {}
for _, file in ipairs(files) do
local module = load_module(fs.combine(module_dir, file))
if module then
setup_module(module)
module_names[#module_names + 1] = file:gsub("%.lua$", "")
if module.enabled() then enabled[#enabled + 1] = module end
end
end
shell.setCompletionFunction(shell.getRunningProgram(), function(_, index, text, previous)
if index == 1 then
return complete_multi(text, commands, true)
elseif index == 2 and previous[#previous] == "module" then
return complete_multi(text, module_names, false)
end
end)
-- Setup those modules
for _, module in ipairs(enabled) do
if type(module.setup) == "function" then module.setup(install_dir) end
end
-- And run the startup hook if needed
for _, module in ipairs(enabled) do
--if type(module.startup) == "function" then module.startup(install_dir) end
end
elseif arg[1] == "modules" then
local module_dir = fs.combine(install_dir, "modules")
local files = fs.isDir(module_dir) and fs.list(module_dir) or {}
local found_any = false
for _, file in ipairs(files) do
local res, err = load_module(fs.combine(module_dir, file))
write_coloured(colours.cyan, file:gsub("%.lua$", "") .. " ")
if res then
write(res.description)
if res.enabled() then
write_coloured(colours.green, " (enabled)")
else
write_coloured(colours.red, " (disabled)")
end
found_any = true
else
write_coloured(colours.red, err)
end
io.write("\n")
end
if not found_any then error("No modules found. Maybe try running the `install` command?", 0) end
elseif arg[1] == "module" then
if not arg[2] then error("Expected module name", 0) end
local module, err = load_module(fs.combine(install_dir, fs.combine("modules", arg[2] .. ".lua")))
if not module then error(err, 0) end
io.write(module.description)
if module.enabled() then
write_coloured(colours.green, " (enabled)")
else
write_coloured(colours.red, " (disabled)")
end
io.write("\n\n")
for _, setting in ipairs(module.settings) do
local value = settings.get(setting.name)
write_coloured(colours.cyan, setting.name)
io.write(" " .. setting.description .. " (")
write_coloured(colours.yellow, textutils.serialise(value))
if value ~= setting.default then
io.write(", default is \n")
write_coloured(colours.yellow, textutils.serialise(setting.default))
end
io.write(")\n")
end
else
printError("Unknown command")
print_usage()
error()
end

View File

@@ -1,9 +1,9 @@
local Event = require('event') local Event = require('opus.event')
local Milo = require('milo') local Milo = require('milo')
local Sound = require('sound') local Sound = require('opus.sound')
local Storage = require('milo.storage') local Storage = require('milo.storage')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,11 +1,11 @@
local Config = require('config') local Config = require('opus.config')
local Event = require('event') local Event = require('opus.event')
local fuzzy = require('milo.fuzzyMatch') local fuzzy = require('milo.fuzzyMatch')
local Sound = require('sound') local Sound = require('opus.sound')
local Socket = require('socket') local Socket = require('opus.socket')
local sync = require('sync').sync local sync = require('opus.sync').sync
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local fs = _G.fs local fs = _G.fs

View File

@@ -1,6 +1,6 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Tasks = require('milo.taskRunner') local Tasks = require('milo.taskRunner')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local turtle = _G.turtle local turtle = _G.turtle

View File

@@ -1,8 +1,8 @@
local Config = require('config') local Config = require('opus.config')
local Craft = require('milo.craft2') local Craft = require('milo.craft2')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Sound = require('sound') local Sound = require('opus.sound')
local Util = require('util') local Util = require('opus.util')
local os = _G.os local os = _G.os
local turtle = _G.turtle local turtle = _G.turtle

View File

@@ -1,4 +1,4 @@
local class = require('class') local class = require('opus.class')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Mini = require('milo.miniAdapter') local Mini = require('milo.miniAdapter')

View File

@@ -1,6 +1,6 @@
local class = require('class') local class = require('opus.class')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device

View File

@@ -1,9 +1,9 @@
local Adapter = require('milo.miniAdapter') local Adapter = require('milo.miniAdapter')
local class = require('class') local class = require('opus.class')
local Config = require('config') local Config = require('opus.config')
local Event = require('event') local Event = require('opus.event')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device
local os = _G.os local os = _G.os

View File

@@ -1,4 +1,4 @@
local class = require('class') local class = require('opus.class')
local os = _G.os local os = _G.os

View File

@@ -19,8 +19,8 @@ CONFIGURATION:
Use this turtle for machine crafting. Use this turtle for machine crafting.
--]] --]]
local Event = require('event') local Event = require('opus.event')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device
local fs = _G.fs local fs = _G.fs

View File

@@ -1,4 +1,4 @@
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local os = _G.os local os = _G.os

View File

@@ -2,8 +2,8 @@
Send items to a players enderchest. Send items to a players enderchest.
--]] --]]
local Event = require('event') local Event = require('opus.event')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device
local fs = _G.fs local fs = _G.fs

View File

@@ -15,8 +15,8 @@ CONFIGURATION:
Use this turtle for machine crafting. Use this turtle for machine crafting.
--]] --]]
local Event = require('event') local Event = require('opus.event')
local Util = require('util') local Util = require('opus.util')
local device = _G.device local device = _G.device
local fs = _G.fs local fs = _G.fs

View File

@@ -2,7 +2,7 @@
For initially setting up large amounts of storage chests. For initially setting up large amounts of storage chests.
]] ]]
local Util = require('util') local Util = require('opus.util')
local peripheral = _G.peripheral local peripheral = _G.peripheral

View File

@@ -1,5 +1,5 @@
local Sound = require('sound') local Sound = require('opus.sound')
local Util = require('util') local Util = require('opus.util')
local fs = _G.fs local fs = _G.fs
local os = _G.os local os = _G.os

View File

@@ -1,5 +1,5 @@
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local turtle = _G.turtle local turtle = _G.turtle

View File

@@ -1,10 +1,10 @@
local Craft = require('milo.craft2') local Craft = require('milo.craft2')
local Event = require('event') local Event = require('opus.event')
local fuzzy = require('milo.fuzzyMatch') local fuzzy = require('milo.fuzzyMatch')
local Milo = require('milo') local Milo = require('milo')
local Sound = require('sound') local Sound = require('opus.sound')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local context = Milo:getContext() local context = Milo:getContext()

View File

@@ -1,9 +1,9 @@
local Event = require('event') local Event = require('opus.event')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Map = require('map') local Map = require('opus.map')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,8 +1,8 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local Event = require('event') local Event = require('opus.event')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local context = Milo:getContext() local context = Milo:getContext()

View File

@@ -1,7 +1,7 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local Event = require('event') local Event = require('opus.event')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,5 +1,5 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,7 +1,7 @@
local Craft = require('milo.craft2') local Craft = require('milo.craft2')
local Milo = require('milo') local Milo = require('milo')
local Sound = require('sound') local Sound = require('opus.sound')
local Util = require('util') local Util = require('opus.util')
local context = Milo:getContext() local context = Milo:getContext()
@@ -79,4 +79,4 @@ function craftTask:cycle()
end end
end end
Milo:registerTask(craftTask) Milo:registerTask(craftTask)

View File

@@ -1,8 +1,8 @@
local Craft = require('milo.craft2') local Craft = require('milo.craft2')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors

View File

@@ -1,6 +1,6 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,6 +1,6 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,5 +1,5 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,6 +1,6 @@
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local context = Milo:getContext() local context = Milo:getContext()

View File

@@ -1,5 +1,5 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors

View File

@@ -1,7 +1,7 @@
local Craft = require('milo.craft2') local Craft = require('milo.craft2')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local context = Milo:getContext() local context = Milo:getContext()

View File

@@ -1,8 +1,8 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Map = require('map') local Map = require('opus.map')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local context = Milo:getContext() local context = Milo:getContext()

View File

@@ -1,7 +1,7 @@
local Craft = require('milo.craft2') local Craft = require('milo.craft2')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors

View File

@@ -1,7 +1,7 @@
local Craft = require('milo.craft2') local Craft = require('milo.craft2')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local context = Milo:getContext() local context = Milo:getContext()

View File

@@ -1,10 +1,10 @@
local Craft = require('milo.craft2') local Craft = require('milo.craft2')
local Event = require('event') local Event = require('opus.event')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Milo = require('milo') local Milo = require('milo')
local Sound = require('sound') local Sound = require('opus.sound')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local context = Milo:getContext() local context = Milo:getContext()
@@ -87,11 +87,11 @@ local function createPage(node)
{ heading = 'Qty', key = 'remaining', width = 4 }, { heading = 'Qty', key = 'remaining', width = 4 },
{ heading = 'Crafting', key = 'displayName', }, { heading = 'Crafting', key = 'displayName', },
{ heading = 'Status', key = 'status', }, { heading = 'Status', key = 'status', },
{ heading = 'need', key = 'need', width = 4 }, -- { heading = 'need', key = 'need', width = 4 },
-- { heading = 'total', key = 'total', width = 4 }, -- { heading = 'total', key = 'total', width = 4 },
-- { heading = 'used', key = 'used', width = 4 }, -- { heading = 'used', key = 'used', width = 4 },
-- { heading = 'count', key = 'count', width = 4 }, -- { heading = 'count', key = 'count', width = 4 },
{ heading = 'crafted', key = 'crafted', width = 5 }, -- { heading = 'crafted', key = 'crafted', width = 5 },
-- { heading = 'Progress', key = 'progress', width = 8 }, -- { heading = 'Progress', key = 'progress', width = 8 },
}, },
headerBackgroundColor = colors.black, headerBackgroundColor = colors.black,

View File

@@ -1,7 +1,7 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,7 +1,7 @@
local Craft = require('milo.craft2') local Craft = require('milo.craft2')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local context = Milo:getContext() local context = Milo:getContext()

View File

@@ -1,5 +1,5 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,7 +1,7 @@
local Event = require('event') local Event = require('opus.event')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Milo = require('milo') local Milo = require('milo')
local Socket = require('socket') local Socket = require('opus.socket')
local device = _G.device local device = _G.device

View File

@@ -1,7 +1,7 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Event = require('event') local Event = require('opus.event')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local args = { ... } local args = { ... }
local colors = _G.colors local colors = _G.colors

View File

@@ -1,4 +1,4 @@
local Sound = require('sound') local Sound = require('opus.sound')
local args = { ... } local args = { ... }
local context = args[1] local context = args[1]

View File

@@ -1,4 +1,4 @@
local Event = require('event') local Event = require('opus.event')
local device = _G.device local device = _G.device
local os = _G.os local os = _G.os

View File

@@ -1,5 +1,5 @@
local Config = require('config') local Config = require('opus.config')
local UI = require('ui') local UI = require('opus.ui')
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local args = { ... } local args = { ... }

View File

@@ -1,7 +1,7 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Event = require('event') local Event = require('opus.event')
local Sound = require('sound') local Sound = require('opus.sound')
local UI = require('ui') local UI = require('opus.ui')
local args = { ... } local args = { ... }
local colors = _G.colors local colors = _G.colors

View File

@@ -1,6 +1,6 @@
local Config = require('config') local Config = require('opus.config')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local fs = _G.fs local fs = _G.fs

View File

@@ -1,6 +1,6 @@
local Milo = require('milo') local Milo = require('milo')
local Sound = require('sound') local Sound = require('opus.sound')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,8 +1,8 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local Event = require('event') local Event = require('opus.event')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local context = Milo:getContext() local context = Milo:getContext()

View File

@@ -1,5 +1,5 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,8 +1,8 @@
local Ansi = require('ansi') local Ansi = require('opus.ansi')
local Milo = require('milo') local Milo = require('milo')
local Tasks = require('milo.taskRunner') local Tasks = require('milo.taskRunner')
local UI = require('ui') local UI = require('opus.ui')
local Util = require('util') local Util = require('opus.util')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,6 +1,6 @@
local Milo = require('milo') local Milo = require('milo')
local Tasks = require('milo.taskRunner') local Tasks = require('milo.taskRunner')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors
local device = _G.device local device = _G.device

View File

@@ -1,6 +1,6 @@
local itemDB = require('core.itemDB') local itemDB = require('core.itemDB')
local Milo = require('milo') local Milo = require('milo')
local UI = require('ui') local UI = require('opus.ui')
local colors = _G.colors local colors = _G.colors
local turtle = _G.turtle local turtle = _G.turtle

View File

@@ -1,9 +1,9 @@
local Event = require('event') local Event = require('opus.event')
local GPS = require('gps') local GPS = require('opus.gps')
local Point = require('point') local Point = require('opus.point')
local Sound = require('sound') local Sound = require('opus.sound')
local Swarm = require('core.swarm') local Swarm = require('core.swarm')
local Util = require('util') local Util = require('opus.util')
local os = _G.os local os = _G.os
local peripheral = _G.peripheral local peripheral = _G.peripheral

Some files were not shown because too many files have changed in this diff Show More