抜本的なリファクタリングと動的ロード機能の調整を行い、より簡単に機能拡張ができるようになりました。
所定の形式で作成したLuaスクリプトを/binに入れるだけでお好みの機能を追加することができます。
以下のGIFアニメのように、動作中にファイルが追加されても受け付けます。
クリックでフルサイズで見ることができます。
(リンクから飛んできた人は、一度ブログトップに移動してからこの記事を再度開き直す必要があるかもしれません。)

以下のテンプレートで作成されたLuaスクリプトを/binフォルダに入れてください。
便利なスクリプトができましたら報告していただけるとうれしいです。
--Description
local _name_ = "hello"
local _help_ = "hello [times] : Show \"Hello World\""
--Program
function _ (arg)
--begin user program
for i=1,tonumber(arg) do
term.print("Hello World!")
end
--end of user program
end
------------------------------------------------
--Bootstrap
shell.debugmsg(_name_," begin")
if(select(2, ...) == "help")then
shell.debugmsg(_name_," help mode")
term.print(_help_)
else
shell.debugmsg(_name_," run mode")
_(select(1, ...))
end
shell.debugmsg(_name_," end")
また、シェル機能実装にあたって通信機能の抽象化などを行いましたので、
それらを切り出してライブラリとして使っていただいても構いません。
uart.open
uart.close
uart.write
uart.writeRaw
uart.read
uart.fflush
term.setlastbuf
term.print
term.printraw
term.backspace
term.getc
term.gets
shell.setdebug
shell.debugmsg
shell.setpwd
shell.getpwd
shell.exist
shell.existDir
shell.run
shell.getAbsPath
BSD-3 Licenseです
https://sabowl.sakura.ne.jp/gpsnmeajp/files/FTMS.zip