Dropin Replacement

楽土

今天我知道了 whereis 可以接收多个命令在 $PATH 中查找。

$ whereis not-there raku-test-all zef
not-there:
raku-test-all: /home/dex/bin/raku-test-all
zef: /usr/local/src/rakudo/install/share/perl6/site/bin/zef

结果总是按照要求的顺序进行。因此,我们可以使用 shell 拼写来找到一个候选者,作为我们在 Makefile 中的测试者。

TESTER := $(shell whereis raku-test-all zef | cut -d ' ' -f 2 -s | head -n 1)

install-deps:
        zef --depsonly install .

test: install-deps
        $(TESTER) --verbose test .

install:
        zef install .

all: test

push: test
        git push

我不得不对 raku-test-all 做了一些修改,使其模仿 zef 的界面。这个 Makefile 背后的想法是能够按下 F6 键,让所有测试运行,然后推送到 github。我们目前的生态系统只是简单地分发链接到 github 仓库。因此,在没有测试的情况下推送可能会导致别人克隆一个坏掉的 repo(如果时间足够糟糕的话)。你可以想象,任何加快测试的方法都是非常受欢迎的。Travis 的速度相当慢。我想接下来我应该在这方面下功夫。

comments powered by Disqus