#shell #lua-script #bash #run #binary #share #everywhere

app lush

LuSH 是一个嵌入单个二进制文件的 Lua 脚本,易于分享,可在任何地方运行

6 个版本

0.1.5 2024 年 8 月 2 日
0.1.4 2024 年 7 月 23 日

#97嵌入式开发

Download history 277/week @ 2024-06-28 265/week @ 2024-07-05 23/week @ 2024-07-12 110/week @ 2024-07-19 31/week @ 2024-07-26 82/week @ 2024-08-02 4/week @ 2024-08-09

每月 227 次下载

Apache-2.0

19KB
436

LuSH

LuSH 是一个嵌入单个二进制文件的 Lua 脚本,易于分享,可在任何地方运行

问题

我喜欢 Bash。我有大量的 Bash 脚本,它们只在我的机器上运行。如果将它们复制到其他主机,它们永远不会正常工作,因为 Bash 版本较旧或者某些 shell 工具不可用或版本不同等。当然,有很多方法可以解决这个问题,但脚本的复杂性会不断增加。实际上,它们永远无法在任何地方工作。

我想 简化 我的生活,而不是相反。

解决方案

我对这个问题的解决方案是能够通过复制来部署我需要运行脚本的所有内容。我的第一个想法是构建一个可移植的 Bash 版本,但我还需要很多其他工具,例如 awk、cut、wc 等。那么,为什么不用更强大的语言呢?为此,一个广泛使用、易于使用且能够正常工作的语言是 LUA。我喜欢它的简单性和强大的表。

最初,在我所在的地方,这将是一个可移植的 LUA 解释器(无任何依赖项,全部静态)和许多 lua 脚本,以及帮助脚本轻松调用本地二进制文件的辅助工具。

为什么不

为什么不使用 Python?

因为我真的很不喜欢用空白符作为代码块分隔符

为什么不使用 Ruby?

因为运行时很大,而且不太可移植。

为什么不(其他任何语言)?

因为我必须选择一个。我得到了一种超级流行的语言,因为我不想成为这个项目的永恒之父。我想找到一种方法来解决我的问题,而不是创造更多问题。LUA 有大量的脚本可以完成几乎所有事情,而且我只需要将 lua 文件复制到目录中。这不是很棒吗?

安装

运行脚本

./build.sh

如果成功,你将有一个包含 2 个二进制文件(lua 和 luac)的 bin 目录。

现在你可以用命令删除第 3 个目录

rm -r ./3rd

路线图(到目前为止)

  • 在代码中添加测试(如果合理的话)
  • 添加一个 shell 库来运行 shell 命令
  • 创建一个 lush 二进制文件,它不会自动搜索 bin_dir/lib

依赖项

~10–22MB
~264K SLoC