mirror of
https://github.com/MightyPirates/OpenComputers.git
synced 2025-09-17 03:05:30 -04:00
alias change to use equal sign and allow list of input
This commit is contained in:
parent
c7cd32515d
commit
1aa69f4492
@ -1,19 +1,57 @@
|
|||||||
local shell = require("shell")
|
local shell = require("shell")
|
||||||
|
local fs = require("filesystem")
|
||||||
local args = shell.parse(...)
|
local args = shell.parse(...)
|
||||||
|
|
||||||
if #args == 0 then
|
local shell_name = '-' .. fs.name(os.getenv("SHELL"))
|
||||||
for name, value in shell.aliases() do
|
local cmd_name = "alias"
|
||||||
io.write(name .. " " .. value .. "\n")
|
local error_prefix = shell_name .. ": " .. cmd_name .. ": "
|
||||||
end
|
|
||||||
elseif #args == 1 then
|
local function validAliasName(k)
|
||||||
local value = shell.getAlias(args[1])
|
return k:match("[/%$`=|&;%(%)<> \t]") == nil
|
||||||
if value then
|
end
|
||||||
io.write(value)
|
|
||||||
|
local function setAlias(k, v)
|
||||||
|
if not validAliasName(k) then
|
||||||
|
io.stderr:write(string.format("%s `%s': invalid alias name\n", error_prefix, k))
|
||||||
else
|
else
|
||||||
io.stderr:write("no such alias")
|
shell.setAlias(k, v)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function printAlias(k)
|
||||||
|
local v = shell.getAlias(k)
|
||||||
|
if not v then
|
||||||
|
io.stderr:write(string.format("%s %s: not found\n", error_prefix, k))
|
||||||
|
else
|
||||||
|
io.write(string.format("alias %s='%s'\n", k, v))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function splitPair(arg)
|
||||||
|
local matchBegin, matchEnd = arg:find("=")
|
||||||
|
if matchBegin == nil or matchBegin == 1 then
|
||||||
|
return arg
|
||||||
|
else
|
||||||
|
return arg:sub(1, matchBegin - 1), arg:sub(matchEnd + 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function handlePair(k, v)
|
||||||
|
if v then
|
||||||
|
return setAlias(k, v)
|
||||||
|
else
|
||||||
|
return printAlias(k)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if not next(args) then -- no args
|
||||||
|
-- print all aliases
|
||||||
|
for k,v in shell.aliases() do
|
||||||
|
print(string.format("alias %s='%s'", k, v))
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
shell.setAlias(args[1], args[2])
|
for k,v in pairs(args) do
|
||||||
io.write("alias created: " .. args[1] .. " -> " .. args[2])
|
checkArg(1,v,"string")
|
||||||
|
handlePair(splitPair(v))
|
||||||
|
end
|
||||||
end
|
end
|
Loading…
x
Reference in New Issue
Block a user