通过 Makefile 将 CLI 参数传递给 LUA 文件

我意识到这很琐碎,也许我今天早上还没有喝足够的咖啡,但我的问题是如下所述!如何通过我的 Makefile 将参数传递给我的 init.lua 文件?我的目标是能够在上传文件到设备的同时在命令行中声明我的 ESP/NodeMCU 的主机名。

我意识到为每个设备调整我的 lua 文件很容易,但由于我只想传递一个参数,永远不再多,所以我希望可以和我的 CLI 命令一起完成。我尝试了 Makefile: Passing command line arguments to file inside Makefile 中的答案,但我得到了一个错误2。问题在于为了设置主机名,在一个正常的 lua 文件中需要使用括号。设置主机名的正常命令如下:

wifi.sta.sethostname("somehostname")

所以根据我发布的链接,我必须按照以下方式运行我的命令:

make upload_all HNAME="wifi.sta.sethostname("somehostname")"

这会抛出语法错误。如何最好地解决这个问题?我可以使用一个变量来声明 wifi.sta.sethostname 部分吗?我尝试了,但可能做得不对。我不是一个脚本大师,但我通常可以很好地找到自己的路。提前谢谢!

更新一下,包括 Makefile 中的一些代码!

@python $(NODEMCU-COMMAND) $(foreach f, $^, $(f)) $(HNAME)

我想知道是否可能。我现在意识到,在与 ESP 交互时,它需要在新的一行上。不确定我是否可以将换行符('/n')添加到我的 Makefile 行中。

感谢 @EgorSkriptunoff,我成功地摆脱了错误。但是在实际设备上它什么都没有做。后来我意识到,一旦设备重置,如果该行不是实际代码在设备上,它就会返回到默认主机名。唯一的解决方案我想到的是可能从 CLI 中附加 init.lua 文件,但这也可能不起作用。

点赞