2
3
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:
youkwhd 2024-07-10 02:23:54 +07:00
parent 0e4b95d9b9
commit c4a9b00d90

38
nature/commands/alias.lua Normal file
View 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)