mirror of
https://github.com/facebook/react.git
synced 2026-02-27 03:07:57 +00:00
62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
'use strict';
|
|
|
|
var fs = require('fs');
|
|
var grunt = require('grunt');
|
|
|
|
var src = 'gem-react-source/';
|
|
var dest = 'build/gem-react-source/';
|
|
var build = dest + 'build/';
|
|
var buildFiles = [
|
|
'react.js', 'react.min.js', 'JSXTransformer.js',
|
|
'react-with-addons.js', 'react-with-addons.min.js'
|
|
];
|
|
|
|
function buildRelease() {
|
|
grunt.file.exists(dest) && grunt.file.delete(dest);
|
|
|
|
// Copy gem-react-source/**/* to build/gem-react-source
|
|
var mappings = [].concat(
|
|
grunt.file.expandMapping('**/*', dest, {cwd: src})
|
|
);
|
|
mappings.forEach(function(mapping) {
|
|
var src = mapping.src[0];
|
|
var dest = mapping.dest;
|
|
if (grunt.file.isDir(src)) {
|
|
grunt.file.mkdir(dest);
|
|
} else {
|
|
grunt.file.copy(src, dest);
|
|
}
|
|
});
|
|
|
|
// Make built source available inside npm package
|
|
grunt.file.mkdir(build);
|
|
buildFiles.forEach(function(file) {
|
|
grunt.file.copy('build/' + file, build + file);
|
|
});
|
|
}
|
|
|
|
function packRelease() {
|
|
/*jshint validthis:true */
|
|
var done = this.async();
|
|
var spawnCmd = {
|
|
cmd: 'gem',
|
|
args: ['build', 'react-source.gemspec'],
|
|
opts: {
|
|
cwd: dest
|
|
}
|
|
};
|
|
grunt.util.spawn(spawnCmd, function(err, result) {
|
|
// Gem packing does weird things to versions so 0.12.0-alpha becomes
|
|
// 0.12.0.pre.alpha. We need to get the filename printed to stdout.
|
|
var filename = result.stdout.match(/File: (.*)$/)[1];
|
|
var src = 'build/gem-react-source/' + filename;
|
|
var dest = 'build/react-source.tgz';
|
|
fs.rename(src, dest, done);
|
|
});
|
|
}
|
|
|
|
module.exports = {
|
|
buildRelease: buildRelease,
|
|
packRelease: packRelease
|
|
};
|