【问题标题】:is there a hack for fully functional cross-platform shebang line?功能齐全的跨平台shebang线是否有破解?
【发布时间】:2010-02-19 14:22:45
【问题描述】:

问题: .git/hooks 目录中的脚本显然取决于与以下之一匹配的文件名:

post-commit
pre-commit
pre-rebase

等等……

不需要“文件扩展名”的概念,因为“shebang 行”指示文件应该如何运行,只要它是可执行的并且在您的 Linux 机器上运行。

问题是当您想要在 Windows 机器上运行一些脚本时。

问题:有没有办法在Windows机器上执行可以理解的钩子脚本?

【问题讨论】:

    标签: git scripting shebang githooks


    【解决方案1】:

    我知道我在这方面落后了很多,但我有一个解决方案给你。如果您使用的是 python,请将“.py”添加到 PATHEXT 环境变量(控制面板、系统、高级、环境变量)。对于您的特定脚本语言也是如此。然后将这些钩子命名为 post-commit.py、pre-commit.py 等。当程序要求 Windows 执行某个目录中的“post-commit”文件时,Windows 会依次查找 PATHEXT,直到找到匹配的文件“post-commit.extension”,然后它将执行。我很久以前在 Windows 上使用 svn hooks 做到了这一点。

    【讨论】:

      【解决方案2】:

      我认为 Windows 没有执行无扩展名文件的概念。解决方法是 1)在 bash 下使用 Cygwin git,整个 shebang 业务都在其中工作,或者 2)Windows git 版本中的一个 hack,它实际上解析 shebang 行本身并加载适当的解释器。我可以看到对后者的各种哲学反对意见,所以我猜这不会发生......

      【讨论】:

        【解决方案3】:

        我实际上选择了选项 3):

        创建一个调用 git 的 Windows“包装器”脚本并且调用我想要运行的任何关联的钩子。缺点是我必须配置包装程序来完成 git 会自动完成的工作,前提是我只能使用标准挂钩文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-11-13
          • 2021-02-07
          • 1970-01-01
          • 2015-02-16
          • 2021-11-08
          • 2021-11-03
          相关资源
          最近更新 更多