gulp で C 言語を build on save する。

gulp で C 言語を build on save する。

腸炎で完全にダウンしており、リモートワークしようにも頭がボケボケなので仕事の方は完全に投げて、入門としては良書だよと紹介されていた定本 C を読んでいます。ついでにせっかくだから C も触ろうとしたんですが、はてコンパイルとかどうするんだろう、自動とかあるの?

で、atom とかでのやりかたがわからなくてコマンドラインからのしか見つけられなかったのでやっつけで

var gulp = require("gulp");
var watch = require("gulp-watch");
var changed  = require('gulp-changed');
var shell = require('gulp-shell');
var plumber = require('gulp-plumber');

var srcs = 'c/*.c';

gulp.task('watch', function(){
  gulp.watch(srcs).on('change', function(event) {
    gulp.src(event.path)
    .pipe(plumber({
        errorHandler: function (err) {
            console.log(err);
            this.emit('end');
        }
    })).pipe(shell([
        'gcc <%= file.path %> -o <%= outpath(file.path) %>',
        '<%= outpath(file.path) %>',
        'echo '
      ], {
        templateData: {
          outpath: function (s) {
            return s.replace(/\.c/, '.out')
          }
        }
      }));
  });
});

保存後、起動までやってくれて Hello, World などを楽しみました。 定本 C は循環リストの header でおおーってなってるところです。

腸炎はしんどいです。