我有.haml文件,想将它们自动转换为.html文件,并在更改.haml时更新后者。

通用的makefile规则是没有问题的:

%.html: %.haml
    hamlpy $< $@

但是现在我需要一个规则或命令来执行以下操作:
  • X.haml中找到所有templates/文件
  • 执行make X.html命令,其中X是相同的文件名(haml替换为html)。

  • 我找不到如何用GNU Make或Unix find做到这一点。

    最佳答案

    如果您所有的*.haml文件都是好名字(即没有空格或其他有趣的字符),则可以通过调用find(1)来做到这一点:

    HAML_FILES = $(shell find templates/ -type f -name '*.haml')
    HTML_FILES = $(HAML_FILES:.haml=.html)
    
    all: $(HTML_FILES)
    
    %.html : %.haml
            hamlpy $< $@
    

    10-06 13:35
    查看更多