netcatを介していくつかのマークダウン投稿をコンパイルしたいと思います。ここにありMakefile
ます。
# Makefile
all: $(POSTS)
$(POST_DEST_DIR)/%.html: $(POST_SRC_DIR)/%.md | $(POST_DEST_DIR)
@nc localhost 3000 < $< > $@
@echo 'compiled $@'
.DELETE_ON_ERROR: $(POSTS)
TCP サーバーがエラーで終了するとnc
、Node.jsnc
ラッパーがエラーで終了する間、エラーなしで終了します。以下は Node.js ラッパー スクリプトです。
// nc.js
var client = require('net').connect(3000);
process.stdin.pipe(client);
client.pipe(process.stdout);
client.on('error', function (err) {
console.error(err.message);
process.exit(1);
});
その後
# Makefile with nc.js
$(POST_DEST_DIR)/%.html: $(POST_SRC_DIR)/%.md | $(POST_DEST_DIR)
@node nc.js < $< > $@
@echo 'compiled $@'
TCP サーバーも NodeJS で記述されています。プロセスをすぐnc
に停止するために、TCP サーバーがクラッシュしたときにエラーで終了したい。make
ここにテスト用の TCP サーバーがあります。
// tcp server for error test
require('net').createServer(function(socket) {
process.exit(1);
}).listen(3000);
nc
マニュアルページを読みました。でも、やりたいことは無理だなと思いました。何か不足していますか?