refactor: automatically load all nature commands

cancel-commander
TorchedSammy 2022-09-02 23:01:39 -04:00
parent 59cec0ffa5
commit 959030f70d
Signed by: sammyette
GPG Key ID: 904FC49417B44DCD
1 changed files with 19 additions and 8 deletions

View File

@ -1,8 +1,19 @@
-- Add command builtins
require 'nature.commands.cd'
require 'nature.commands.cdr'
require 'nature.commands.doc'
require 'nature.commands.exit'
require 'nature.commands.disown'
require 'nature.commands.fg'
require 'nature.commands.bg'
local fs = require 'fs'
-- explanation: this specific function gives to us info about
-- the currently running source. this includes a path to the
-- source file (info.source)
-- we will use that to automatically load all commands by reading
-- all the files in this dir and just requiring it.
local info = debug.getinfo(1)
local commandDir = fs.dir(info.source)
if commandDir == '.' then return end
local commands = fs.readdir(commandDir)
for _, command in ipairs(commands) do
local name = command:gsub('%.lua', '') -- chop off extension
if name ~= 'init' then
-- skip this file (for obvious reasons)
require('nature.commands.' .. name)
end
end