Initial barebones client
This commit is contained in:
parent
721452b0d6
commit
29d2bd9798
45
client.lua
Normal file
45
client.lua
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
local w = require "lib"
|
||||||
|
local d = require "luadash"
|
||||||
|
|
||||||
|
local function split_at_spaces(s)
|
||||||
|
local t = {}
|
||||||
|
for i in string.gmatch(s, "%S+") do
|
||||||
|
table.insert(t, i)
|
||||||
|
end
|
||||||
|
return t
|
||||||
|
end
|
||||||
|
|
||||||
|
local function first_letter(s)
|
||||||
|
return string.sub(s, 1, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
local usage = [[
|
||||||
|
Welcome to the Wyvern CLI Client, "Because Gollark Was Lazy".
|
||||||
|
All commands listed below can also be accessed using single-letter shortcuts for convenience.
|
||||||
|
]]
|
||||||
|
|
||||||
|
local commands = {
|
||||||
|
help = function() print(usage) end
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
print "Wyvern CLI Client"
|
||||||
|
|
||||||
|
while true do
|
||||||
|
write "|> "
|
||||||
|
local text = read()
|
||||||
|
local tokens = split_at_spaces(text)
|
||||||
|
local command = tokens[1]
|
||||||
|
local args = d.tail(tokens)
|
||||||
|
local fn = commands[command]
|
||||||
|
if not fn then
|
||||||
|
for command_name, func in pairs(commands) do
|
||||||
|
if first_letter(command_name) == first_letter(command) then fn = func end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not fn then
|
||||||
|
print("Command", command, "not found.")
|
||||||
|
end
|
||||||
|
|
||||||
|
fn(table.unpack(args))
|
||||||
|
end
|
@ -1,6 +1,6 @@
|
|||||||
local wyvern_files = {
|
local wyvern_files = {
|
||||||
root = "https://osmarks.tk/git/osmarks/wyvern/raw/branch/master/",
|
root = "https://osmarks.tk/git/osmarks/wyvern/raw/branch/master/",
|
||||||
files = { "installer.lua", "luadash.lua", "lib.lua", "backend-chests.lua" }
|
files = { "installer.lua", "luadash.lua", "lib.lua", "backend-chests.lua", "client.lua" }
|
||||||
}
|
}
|
||||||
|
|
||||||
local args = {...}
|
local args = {...}
|
||||||
|
Loading…
Reference in New Issue
Block a user