mirror of
https://github.com/sammy-ette/Hilbish
synced 2025-08-10 02:52:03 +00:00
feat: add alias command
This commit is contained in:
parent
0e4b95d9b9
commit
c4a9b00d90
38
nature/commands/alias.lua
Normal file
38
nature/commands/alias.lua
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
local commander = require 'commander'
|
||||||
|
|
||||||
|
local function removeQuote(str)
|
||||||
|
if (string.sub(str, 1, 1) == '"' and string.sub(str, #str, #str) == '"') or
|
||||||
|
(string.sub(str, 1, 1) == '\'' and string.sub(str, #str, #str) == '\'') then
|
||||||
|
return string.sub(str, 2, #str - 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
return str
|
||||||
|
end
|
||||||
|
|
||||||
|
commander.register('alias', function(args, sinks)
|
||||||
|
local aliases = hilbish.aliases.list()
|
||||||
|
local function printAlias(name)
|
||||||
|
sinks.out:writeln(name .. "='" .. aliases[name] .. "'")
|
||||||
|
end
|
||||||
|
|
||||||
|
if #args == 0 then
|
||||||
|
for alias, _ in pairs(aliases) do
|
||||||
|
printAlias(alias)
|
||||||
|
end
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local sepIdx = string.find(args[1], "=")
|
||||||
|
if sepIdx == nil then
|
||||||
|
if aliases[args[1]] == nil then
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
printAlias(args[1])
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local alias = string.sub(args[1], 1, sepIdx - 1)
|
||||||
|
local cmd = removeQuote(string.sub(args[1], sepIdx + 1))
|
||||||
|
hilbish.aliases.add(alias, cmd)
|
||||||
|
end)
|
Loading…
x
Reference in New Issue
Block a user