shell completion

This commit is contained in:
kepler155c@gmail.com 2017-09-06 09:06:04 -04:00
parent e821241cfe
commit e50e6da700
2 changed files with 62 additions and 4 deletions

View File

@ -1,13 +1,18 @@
-- Get file to edit
shell.setCompletionFunction(shell.getRunningProgram(), function(shell, index, text)
if index == 1 then
return fs.complete(text, shell.dir(), true, false)
end
end)
local tArgs = { ... }
if #tArgs == 0 then
error( "Usage: edit <path>" )
end
-- Error checking
local sPath = shell.resolve( tArgs[1] )
local bReadOnly = fs.isReadOnly( sPath )
if fs.exists( sPath ) and fs.isDir( sPath ) then
local sPath = shell.resolve(tArgs[1])
local bReadOnly = fs.isReadOnly(sPath)
if fs.exists(sPath) and fs.isDir(sPath) then
error( "Cannot edit a directory." )
end

53
sys/apps/webapp.lua Normal file
View File

@ -0,0 +1,53 @@
local args = { ... }
local GIT_USER = 'kepler155c'
local GIT_REPO = 'opus'
local GIT_BRANCH = 'develop'
local BASE = 'https://raw.githubusercontent.com/kepler155c/opus/develop/'
local function dourl(env, url)
local h = http.get(url)
if h then
local fn, m = load(h.readAll(), url, nil, env)
h.close()
if fn then
return fn()
end
end
error('Failed to download ' .. url)
end
local s, m = pcall(function()
_G.requireInjector = dourl(getfenv(1), BASE .. 'sys/apis/injector.lua')
local function mkenv()
local env = { }
for k,v in pairs(getfenv(1)) do
env[k] = v
end
setmetatable(env, { __index = _G })
return env
end
-- install vfs
dourl(mkenv(), BASE .. 'sys/extensions/vfs.lua')
-- install filesystem
fs.mount('', 'gitfs', GIT_USER, GIT_REPO, GIT_BRANCH)
-- start program
local file = table.remove(args, 1)
local s, m = os.run(mkenv(), file or 'startup', unpack(args))
if not s and m then
error(m)
end
end)
if not s and m then
printError(m)
end
if fs.restore then
fs.restore()
end