github.com/hattya/nazuna@v0.7.1-0.20240331055452-55e14c275c1c/Asterfile (about)

     1  var os = require('os');
     2  var path = require('path');
     3  var go_ = require('language/go');
     4  var go = go_.go;
     5  var md2html = require('language/markdown').md2html;
     6  
     7  var title = 'Aster ☆ ' + path.basename(os.getwd());
     8  
     9  aster.title(title);
    10  
    11  // go
    12  aster.watch(/.+\.go$/, function(files) {
    13    go.mod.tidy();
    14    // go test for each package
    15    var bad = go_.packagesOf(files).some(function(p) {
    16      return go.test('-v', '-race', '-coverprofile', p + '/cover.out', p);
    17    });
    18    // combine coverage profiles
    19    if (!bad) {
    20      var out = go_.combine({ profile: 'cover.out', out: 'cover.all.out', packages: ['./...'] });
    21      go.tool.cover('-func', out);
    22      go.tool.cover('-html', out, '-o', 'coverage.html');
    23      os.remove(out);
    24    }
    25    if (go.vet('./...')) return;
    26  });
    27  
    28  aster.watch(/go\.mod$/, function() {
    29    go.mod.tidy();
    30  });
    31  
    32  // md
    33  aster.watch(/.+\.md$/, function(files) {
    34    files.some(function(md) { return md2html({ src: md }); });
    35  });