【问题标题】:How to use lunadry?怎么使用lunadry?
【发布时间】:2014-12-17 02:02:12
【问题描述】:

我正在尝试使用 Lua Lunadry 重新格式化一些非常丑陋的代码,但每次尝试时都会收到此错误:

Formatting i,h
./lunadry: line 85: i,h: No such file or directory

我尝试了我能想到的论点,但我觉得我错过了一些非常简单的东西:P

我阅读了自述文件,上面说要通过以下方式使用它:

./lunadry --in-place file.lua

但是,每次我得到同样的错误。有人可以告诉我如何正确使用它吗?

【问题讨论】:

  • 运行./lunadry --in-place file.lua 时出现什么错误?因为我认为这应该有效。选项为-i/-h--in-place/--help
  • 我只想在同一目录中的一个简单文件上运行它... './lunadry --in-place file.lua' 是我输入的(我要重新格式化的文件实际上被称为 file.lua,就像它在 README 中所说的那样)。
  • 你从中得到了什么错误?您不能为此获得./lunadry: line 85: i,h: No such file or directory,所以如果它不起作用,您会遇到什么错误?
  • 这正是我的做法:pastebin.com/iNzyZb26
  • 嗯。有趣的。您使用的是 OS X 还是 BSD? getopt --test; echo $? 输出什么?

标签: lua format pretty-print


【解决方案1】:

lunadry 期望 GNU getopt 行为。

OS X(和其他 BSD 系统)默认安装了非 GNU getopt。此版本的 getopt 缺少许多功能,并且(至少从历史上看)相当不完善。

可用的解决方案是:

  • 安装 GNU getopt(可能通过homebrew 或类似系统)。
  • 重写脚本以使用 bash 内置 getopts(将失去解析 --long-options 的能力)
  • 重写脚本以使用手动选项解析(天真地会失去解析 -ih 的能力,但在这种情况下不会有太大影响)
  • 提交问题,要求 batrick 进行其中一项重写

【讨论】:

  • 我通过它安装了自制软件和 GNU getopt,但我仍然遇到同样的错误...pastebin.com/AhgvCjTY
  • @JonathanMicaelPicazo 将其安装为 gnu-getopt 在这种情况下,您需要在您的 shell 中为其命名或编辑脚本以使用该名称,或者您只需要重新启动您的 shell(因为您当前的 shell相信它已经知道getopt 的含义并且不是在寻找新的二进制文件)。
  • 我查看了目录,该文件仍称为“getopt”...我不知道如何为脚本设置别名或编辑脚本来执行此操作...重新启动 shell 就可以了需要重启我的笔记本电脑吗?
  • @JonathanMicaelPicazo 也不行,只是打开一个新的终端窗口。
  • 啊,好吧!我这样做了,但仍然没有运气......我也在 github 上发布了这个问题。不知道如何重写脚本以使用内置的 getopts 或使用手动选项解析:/ 你能告诉我如何(如果不麻烦的话)?
猜你喜欢
  • 2015-06-02
  • 1970-01-01
  • 2010-10-06
  • 2010-10-07
  • 2013-10-21
  • 2021-08-17
  • 2021-12-25
  • 2010-09-07
  • 2021-09-16
相关资源
最近更新 更多