UNPKG

ember-cli-deploy-revision-data

Version:

An ember-cli-deploy plugin to generate data about this deploy revision including a unique revision key based on the current build

45 lines (36 loc) 1.24 kB
var CoreObject = require('core-object'); var fs = require('fs'); var path = require('path'); var minimatch = require('minimatch'); var crypto = require('crypto'); var RSVP = require('rsvp'); var denodeify = require('rsvp').denodeify; var readFile = denodeify(fs.readFile); module.exports = CoreObject.extend({ init: function(options) { this._super(); this._plugin = options.plugin; }, generate: function() { var filePattern = this._plugin.readConfig('filePattern'); var distDir = this._plugin.readConfig('distDir'); var distFiles = this._plugin.readConfig('distFiles'); var filePaths = distFiles.filter(minimatch.filter(filePattern, { matchBase: true })); if (!filePaths.length) { return RSVP.reject('`' + filePattern + '` does not exist in distDir `' + distDir + '`'); } var filePath = path.join(distDir, filePaths[0]); return readFile(filePath) .then(function(contents) { return { revisionKey: md5Hash(contents.toString()), timestamp: new Date().toISOString() }; }) } }); function md5Hash(buf) { var md5 = crypto.createHash('md5'); md5.update(buf); return md5.digest('hex'); }