1
0
mirror of https://github.com/kepler155c/opus synced 2025-10-20 18:27:40 +00:00

require improvements, remove global Util

This commit is contained in:
kepler155c@gmail.com
2017-09-05 02:09:31 -04:00
parent 2b1d96ab37
commit ae7508e89b
82 changed files with 506 additions and 455 deletions

View File

@@ -1,6 +1,32 @@
require = requireInjector(getfenv(1))
local Util = require('util')
local UI = require('ui')
requireInjector(getfenv(1))
local Config = require('config')
local SHA1 = require('sha1')
local UI = require('ui')
local Util = require('util')
-- scrap this entire file. don't muck with standard apis
local REGISTRY_DIR = 'usr/.registry'
-- FIX SOMEDAY
function os.registerApp(app, key)
app.key = SHA1.sha1(key)
Util.writeTable(fs.combine(REGISTRY_DIR, app.key), app)
os.queueEvent('os_register_app')
end
function os.unregisterApp(key)
local filename = fs.combine(REGISTRY_DIR, SHA1.sha1(key))
if fs.exists(filename) then
fs.delete(filename)
os.queueEvent('os_register_app')
end
end
local sandboxEnv = Util.shallowCopy(getfenv(1))
setmetatable(sandboxEnv, { __index = _G })
@@ -149,7 +175,7 @@ end
local appPage = UI.Page({
backgroundColor = UI.ViewportWindow.defaults.backgroundColor,
menuBar = UI.MenuBar({
showBackButton = not os.isPocket(),
showBackButton = not pocket,
buttons = {
{ text = 'Install', event = 'install' },
{ text = 'Run', event = 'run' },

View File

@@ -1,6 +1,8 @@
require = requireInjector(getfenv(1))
requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'Events')
UI:configure('Events', ...)

View File

@@ -1,8 +1,9 @@
require = requireInjector(getfenv(1))
local Util = require('util')
local Event = require('event')
local UI = require('ui')
requireInjector(getfenv(1))
local Config = require('config')
local Event = require('event')
local UI = require('ui')
local Util = require('util')
local cleanEnv = Util.shallowCopy(getfenv(1))
cleanEnv.require = nil

View File

@@ -1,6 +1,7 @@
require = requireInjector(getfenv(1))
requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
local UI = require('ui')
multishell.setTitle(multishell.getCurrent(), 'Help')
UI:configure('Help', ...)

View File

@@ -1,14 +1,15 @@
local injector = requireInjector or load(http.get('http://pastebin.com/raw/c0TWsScv').readAll())()
require = injector(getfenv(1))
local Util = require('util')
local UI = require('ui')
local Event = require('event')
injector(getfenv(1))
local Event = require('event')
local History = require('history')
local UI = require('ui')
local Util = require('util')
local sandboxEnv = Util.shallowCopy(getfenv(1))
sandboxEnv.exit = function() Event.exitPullEvents() end
sandboxEnv.require = injector(sandboxEnv)
setmetatable(sandboxEnv, { __index = _G })
sandboxEnv.exit = function() Event.exitPullEvents() end
injector(sandboxEnv)
multishell.setTitle(multishell.getCurrent(), 'Lua')
UI:configure('Lua', ...)

View File

@@ -1,7 +1,9 @@
require = requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
requireInjector(getfenv(1))
local Event = require('event')
local Socket = require('socket')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'Network')
UI:configure('Network', ...)

View File

@@ -1,13 +1,14 @@
require = requireInjector(getfenv(1))
local Util = require('util')
local Event = require('event')
local UI = require('ui')
local Config = require('config')
local NFT = require('nft')
requireInjector(getfenv(1))
local class = require('class')
local Config = require('config')
local Event = require('event')
local FileUI = require('fileui')
local Tween = require('tween')
local NFT = require('nft')
local SHA1 = require('sha1')
local Tween = require('tween')
local UI = require('ui')
local Util = require('util')
local REGISTRY_DIR = 'usr/.registry'

View File

@@ -1,8 +1,8 @@
local injector = requireInjector or load(http.get('http://pastebin.com/raw/c0TWsScv').readAll())()
require = injector(getfenv(1))
local Util = require('util')
requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'Devices')

View File

@@ -1,7 +1,9 @@
require = requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
requireInjector(getfenv(1))
local Config = require('config')
local Event = require('event')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'PIM')

View File

@@ -1,8 +1,10 @@
require = requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
local Socket = require('socket')
requireInjector(getfenv(1))
local Config = require('config')
local Event = require('event')
local Socket = require('socket')
local UI = require('ui')
local Util = require('util')
local GROUPS_PATH = 'usr/groups'
local SCRIPTS_PATH = 'sys/etc/scripts'

View File

@@ -1,7 +1,9 @@
require = requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
requireInjector(getfenv(1))
local Config = require('config')
local Event = require('event')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'System')
UI:configure('System', ...)
@@ -86,7 +88,7 @@ local systemPage = UI.Page {
grid = UI.ScrollingGrid {
y = 4,
values = {
{ name = 'CC version', value = os.getVersion() },
{ name = 'CC version', value = Util.getVersion() },
{ name = 'Lua version', value = _VERSION },
{ name = 'MC version', value = _MC_VERSION or 'unknown' },
{ name = 'Disk free', value = Util.toBytes(fs.getFreeSpace('/')) },

View File

@@ -1,6 +1,8 @@
require = requireInjector(getfenv(1))
local UI = require('ui')
requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'Tabs')
UI:configure('Tabs', ...)

View File

@@ -1,9 +1,11 @@
require = requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
local Socket = require('socket')
requireInjector(getfenv(1))
local Event = require('event')
local itemDB = require('itemDB')
local Socket = require('socket')
local Terminal = require('terminal')
local itemDB = require('itemDB')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'Turtles')
UI.Button.defaults.focusIndicator = ' '

View File

@@ -1,4 +1,5 @@
require = requireInjector(getfenv(1))
requireInjector(getfenv(1))
Base64 = require('base64')
local args = { ... }

View File

@@ -2,19 +2,21 @@ if not turtle and not commands then
error('Must be run on a turtle or a command computer')
end
require = requireInjector(getfenv(1))
requireInjector(getfenv(1))
local Blocks = require('blocks')
local class = require('class')
local Event = require('event')
local MEProvider = require('meProvider')
local Message = require('message')
local UI = require('ui')
local Point = require('point')
local Schematic = require('schematic')
local TableDB = require('tableDB')
local MEProvider = require('meProvider')
local Blocks = require('blocks')
local Point = require('point')
local UI = require('ui')
local Util = require('util')
local ChestProvider = require('chestProvider')
if os.getVersion() == 1.8 then
if Util.getVersion() == 1.8 then
ChestProvider = require('chestProvider18')
end
@@ -685,7 +687,7 @@ end
-- figure out our orientation in the world
function Builder:getTurtleFacing()
if os.getVersion() == 1.8 then
if Util.getVersion() == 1.8 then
local directions = { -- reversed directions
[5] = 'west',
@@ -935,7 +937,7 @@ function Builder:placeDirectionalBlock(b, slot, travelPlane)
local isSouth = (turtle.getHeadingInfo(Builder.facing).heading +
turtle.getHeadingInfo(stairUpDirections[d]).heading) % 4 == 1
if os.getVersion() == 1.8 then
if Util.getVersion() == 1.8 then
isSouth = false -- no stair bug in this version
end

View File

@@ -1,12 +1,14 @@
require = requireInjector(getfenv(1))
local UI = require('ui')
local Event = require('event')
local Config = require('config')
local ChestProvider = require('chestProvider18')
requireInjector(getfenv(1))
local ChestProvider = require('chestProvider18')
local Config = require('config')
local Event = require('event')
local itemDB = require('itemDB')
local Peripheral = require('peripheral')
local RefinedProvider = require('refinedProvider')
local itemDB = require('itemDB')
local Terminal = require('terminal')
local Peripheral = require('peripheral')
local Terminal = require('terminal')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'Resource Manager')

View File

@@ -46,7 +46,7 @@ if not clipboard then
function clipboard.getText()
if clipboard.data then
return Util.tostring(clipboard.data)
return tostring(clipboard.data)
end
end

View File

@@ -1,8 +1,7 @@
local injector = requireInjector or load(http.get('http://pastebin.com/raw/c0TWsScv').readAll())()
require = injector(getfenv(1))
requireInjector(getfenv(1))
local RefinedProvider = require('refinedProvider')
local TableDB = require('tableDB')
local TableDB = require('tableDB')
local controller = RefinedProvider()
if not controller:isValid() then

View File

@@ -1,7 +1,9 @@
require = requireInjector(getfenv(1))
local Event = require('event')
requireInjector(getfenv(1))
local Event = require('event')
local Message = require('message')
local UI = require('ui')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'Log Monitor')

View File

@@ -1,4 +1,5 @@
require = requireInjector(getfenv(1))
requireInjector(getfenv(1))
local Terminal = require('terminal')
local args = { ... }

View File

@@ -1,8 +1,10 @@
require = requireInjector(getfenv(1))
local Socket = require('socket')
requireInjector(getfenv(1))
local Event = require('event')
local Logger = require('logger')
local Socket = require('socket')
local Terminal = require('terminal')
local Logger = require('logger')
local Event = require('event')
local Util = require('util')
Logger.setScreenLogging()

View File

@@ -1,7 +1,8 @@
require = requireInjector(getfenv(1))
requireInjector(getfenv(1))
local Event = require('event')
local Socket = require('socket')
local Logger = require('logger')
local Socket = require('socket')
Logger.setScreenLogging()

6
sys/apps/mount.lua Normal file
View File

@@ -0,0 +1,6 @@
local args = { ... }
local target = table.remove(args, 1)
target = shell.resolve(target)
fs.mount(target, unpack(args))

View File

@@ -14,10 +14,15 @@ end
multishell.term = term.current()
local defaultEnv = Util.shallowCopy(getfenv(1))
local defaultEnv = { }
for k,v in pairs(getfenv(1)) do
defaultEnv[k] = v
end
requireInjector(getfenv(1))
require = requireInjector(getfenv(1))
local Config = require('config')
local Util = require('util')
-- Begin multishell
local parentTerm = term.current()
@@ -557,9 +562,7 @@ while true do
elseif sEvent == "mouse_click" then
local button, x, y = tEventData[1], tEventData[2], tEventData[3]
lastClicked = nil
if y == 1 and os.locked then
-- ignore
elseif y == 1 then
if y == 1 then
-- Switch process
local w, h = parentTerm.getSize()
if x == 1 then

View File

@@ -1,10 +1,12 @@
require = requireInjector(getfenv(1))
local SHA1 = require('sha1')
requireInjector(getfenv(1))
local Security = require('security')
local SHA1 = require('sha1')
local Terminal = require('terminal')
local password = Terminal.readPassword('Enter new password: ')
if password then
os.updatePassword(SHA1.sha1(password))
Security.updatePassword(SHA1.sha1(password))
print('Password updated')
end

View File

@@ -1,10 +1,12 @@
require = requireInjector(getfenv(1))
local GPS = require('gps')
local Socket = require('socket')
local MEProvider = require('meProvider')
local Logger = require('logger')
local Point = require('point')
requireInjector(getfenv(1))
local Event = require('event')
local GPS = require('gps')
local Logger = require('logger')
local MEProvider = require('meProvider')
local Point = require('point')
local Socket = require('socket')
local Util = require('util')
if not device.wireless_modem then
error('Modem is required')

View File

@@ -2,11 +2,13 @@ if not device.wireless_modem then
error('Wireless modem is required')
end
require = requireInjector(getfenv(1))
local GPS = require('gps')
local Event = require('event')
local UI = require('ui')
requireInjector(getfenv(1))
local Event = require('event')
local GPS = require('gps')
local Socket = require('socket')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'Pickup Remote')

View File

@@ -14,6 +14,10 @@ local version = "Version 1.1.6"
-- Original code by Bomb Bloke
-- Modified to integrate with opus os
requireInjector(getfenv(1))
local Util = require('util')
local recTerm, oldTerm, arg, showInput, skipLast, lastDelay, curInput = {}, Util.shallowCopy(multishell.term), {...}, false, false, 2, ""
local curBlink, oldBlink, tTerm, buffer, colourNum, xPos, yPos, oldXPos, oldYPos, tCol, bCol, xSize, ySize = false, false, {}, {}, {}, 1, 1, 1, 1, colours.white, colours.black, oldTerm.getSize()
local greys, buttons = {["0"] = true, ["7"] = true, ["8"] = true, ["f"] = true}, {"l", "r", "m"}

View File

@@ -1,10 +1,10 @@
local injector = requireInjector or load(http.get('http://pastebin.com/raw/c0TWsScv').readAll())()
require = injector(getfenv(1))
requireInjector(getfenv(1))
local UI = require('ui')
local Peripheral = require('peripheral')
local RefinedProvider = require('refinedProvider')
local Terminal = require('terminal')
local Peripheral = require('peripheral')
local Terminal = require('terminal')
local UI = require('ui')
local Util = require('util')
local controller = RefinedProvider()
if not controller:isValid() then

View File

@@ -1,7 +1,9 @@
require = requireInjector(getfenv(1))
local UI = require('ui')
local GPS = require('gps')
requireInjector(getfenv(1))
local GPS = require('gps')
local Socket = require('socket')
local UI = require('ui')
local Util = require('util')
multishell.setTitle(multishell.getCurrent(), 'Shapes')
@@ -11,10 +13,12 @@ turtleId = tonumber(turtleId)
local script = [[
require = requireInjector(getfenv(1))
requireInjector(getfenv(1))
local GPS = require('gps')
local ChestProvider = require('chestProvider18')
local Point = require('point')
local Util = require('util')
local itemProvider
@@ -245,8 +249,10 @@ end)
local levelScript = [[
require = requireInjector(getfenv(1))
requireInjector(getfenv(1))
local Point = require('point')
local Util = require('util')
local checkedNodes = { }
local nodes = { }

View File

@@ -1,9 +1,16 @@
local parentShell = shell
shell = { }
local sandboxEnv = Util.shallowCopy(getfenv(1))
local sandboxEnv = { }
for k,v in pairs(getfenv(1)) do
sandboxEnv[k] = v
end
setmetatable(sandboxEnv, { __index = _G })
requireInjector(getfenv(1))
local Util = require('util')
local DIR = (parentShell and parentShell.dir()) or ""
local PATH = (parentShell and parentShell.path()) or ".:/rom/programs"
local ALIASES = (parentShell and parentShell.aliases()) or {}
@@ -223,8 +230,7 @@ if #tArgs > 0 then
return s, m
end
require = requireInjector(getfenv(1))
local Config = require('config')
local Config = require('config')
local History = require('history')
local config = {

View File

@@ -1,6 +1,8 @@
require = requireInjector(getfenv(1))
local Point = require('point')
requireInjector(getfenv(1))
local Logger = require('logger')
local Point = require('point')
local Util = require('util')
if device and device.wireless_modem then
Logger.setWirelessLogging()

View File

@@ -1,10 +1,11 @@
require = requireInjector(getfenv(1))
local Util = require('util')
local Event = require('event')
local UI = require('ui')
requireInjector(getfenv(1))
local ChestProvider = require('chestProvider18')
local Event = require('event')
local MEProvider = require('meProvider')
local RefinedProvider = require('refinedProvider')
local MEProvider = require('meProvider')
local ChestProvider = require('chestProvider18')
local UI = require('ui')
local Util = require('util')
local storage = RefinedProvider()
if not storage:isValid() then

View File

@@ -1,9 +1,11 @@
require = requireInjector(getfenv(1))
local Event = require('event')
local UI = require('ui')
local ME = require('me')
requireInjector(getfenv(1))
local Config = require('config')
local Event = require('event')
local Logger = require('logger')
local ME = require('me')
local UI = require('ui')
local Util = require('util')
-- Must be a crafty turtle with duck antenna !
-- 3 wide monitor (any side of turtle)

View File

@@ -1,10 +1,12 @@
require = requireInjector(getfenv(1))
local Logger = require('logger')
local Message = require('message')
local Event = require('event')
local Point = require('point')
local TableDB = require('tableDB')
requireInjector(getfenv(1))
local Event = require('event')
local Logger = require('logger')
local MEProvider = require('meProvider')
local Message = require('message')
local Point = require('point')
local TableDB = require('tableDB')
local Util = require('util')
--[[
A supplier turtle for the builder turtle. For larger builds, use
@@ -19,7 +21,7 @@ local MEProvider = require('meProvider')
]]--
local ChestProvider = require('chestProvider')
if os.getVersion() == 1.8 then
if Util.getVersion() == 1.8 then
ChestProvider = require('chestProvider18')
end

View File

@@ -1,7 +1,9 @@
require = requireInjector(getfenv(1))
local Event = require('event')
local Socket = require('socket')
requireInjector(getfenv(1))
local Event = require('event')
local Socket = require('socket')
local Terminal = require('terminal')
local Util = require('util')
local remoteId
local args = { ... }
@@ -69,7 +71,7 @@ while true do
print()
print('Connection lost')
print('Press enter to exit')
read()
pcall(read)
break
end
end

View File

@@ -1,8 +1,10 @@
require = requireInjector(getfenv(1))
local Socket = require('socket')
local SHA1 = require('sha1')
requireInjector(getfenv(1))
local Crypto = require('crypto')
local Security = require('security')
local SHA1 = require('sha1')
local Socket = require('socket')
local Terminal = require('terminal')
local Crypto = require('crypto')
local remoteId
local args = { ... }
@@ -31,7 +33,7 @@ if not socket then
error('Unable to connect to ' .. remoteId .. ' on port 19')
end
local publicKey = os.getPublicKey()
local publicKey = Security.getPublicKey()
local password = SHA1.sha1(password)
socket:write(Crypto.encrypt({ pk = publicKey, dh = os.getComputerID() }, password))

View File

@@ -1,7 +1,9 @@
require = requireInjector(getfenv(1))
local Event = require('event')
local Socket = require('socket')
requireInjector(getfenv(1))
local Event = require('event')
local Socket = require('socket')
local Terminal = require('terminal')
local Util = require('util')
local remoteId
local args = { ... }