| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- /* global jake:true, desc:true, task:true, complete:true, require:true, console:true, process:true */
- /* jshint unused:false */
- var fs = require('fs');
- var path = require('path');
- var exec = require('child_process').exec;
- var tools = require('./src/moxie/build/tools');
- var utils = require('./src/moxie/build/utils');
- var wiki = require('./src/moxie/build/wiki');
- var mkjs = require('./src/moxie/build/mkjs');
- var copyright = [
- "/**",
- " * Plupload - multi-runtime File Uploader",
- " * v@@version@@",
- " *",
- " * Copyright 2013, Moxiecode Systems AB",
- " * Released under GPL License.",
- " *",
- " * License: http://www.plupload.com/license",
- " * Contributing: http://www.plupload.com/contributing",
- " *",
- " * Date: @@releasedate@@",
- " */"
- ].join("\n");
- desc("Default build task");
- task("default", ["moxie", "mkjs", "docs"], function (params) {});
- desc("Build release package");
- task("release", ["default", "package"], function (params) {});
- desc("Build mOxie");
- task("moxie", [], function (params) {
- var moxieDir = "./src/moxie";
- var currentDir = process.cwd();
- process.chdir(moxieDir);
- exec("jake", function(error, stdout, stderr) {
- if (error) {
- console.info(error);
- }
- process.chdir(currentDir);
- complete();
- });
- }, true);
- desc("Minify JS files");
- task("mkjs", [], function (i18n) {
- var Instrument = require('coverjs').Instrument;
- var uglify = tools.uglify;
- var targetDir = "./js", moxieDir = "src/moxie";
- // Clear previous versions
- if (fs.existsSync(targetDir)) {
- jake.rmRf(targetDir);
- }
- fs.mkdirSync(targetDir, 0755);
- // Copy compiled moxie files
- tools.copySync(moxieDir + "/bin/flash/Moxie.swf", "js/Moxie.swf");
- tools.copySync(moxieDir + "/bin/silverlight/Moxie.xap", "js/Moxie.xap");
- tools.copySync(moxieDir + "/bin/js/moxie.min.js", "js/moxie.min.js");
- tools.copySync(moxieDir + "/bin/js/moxie.js", "js/moxie.js");
- // Include Plupload source
- var sourceCode = fs.readFileSync('./src/plupload.js').toString();
- if (process.env.umd != 'no') {
- fs.writeFileSync(targetDir + '/plupload.dev.js', mkjs.addUMD("plupload", sourceCode, ['moxie']));
- } else {
- fs.writeFileSync(targetDir + '/plupload.dev.js', sourceCode);
- }
- // Minify Plupload and combine with mOxie
- uglify(targetDir + '/plupload.dev.js', targetDir + "/plupload.min.js");
- var info = require("./package.json");
- info.copyright = copyright;
- tools.addReleaseDetailsTo(targetDir + "/plupload.dev.js", info);
- tools.addReleaseDetailsTo(targetDir + "/plupload.min.js", info);
- var code = "";
- code += fs.readFileSync(targetDir + "/moxie.min.js") + "\n";
- code += fs.readFileSync(targetDir + "/plupload.min.js");
- fs.writeFileSync(targetDir + "/plupload.full.min.js", code);
- // Instrument Plupload code
- fs.writeFileSync(targetDir + '/plupload.cov.js', new Instrument(sourceCode, {
- name: 'Plupload'
- }).instrument());
- // Copy UI Plupload
- jake.cpR("./src/jquery.ui.plupload", targetDir + "/jquery.ui.plupload", {});
- uglify(targetDir + '/jquery.ui.plupload/jquery.ui.plupload.js', targetDir + "/jquery.ui.plupload/jquery.ui.plupload.min.js");
- // Copy Queue Plupload
- jake.cpR("./src/jquery.plupload.queue", targetDir + "/jquery.plupload.queue", {});
- uglify(targetDir + '/jquery.plupload.queue/jquery.plupload.queue.js', targetDir + "/jquery.plupload.queue/jquery.plupload.queue.min.js");
- // Add I18n files
- if (i18n) {
- process.env.auth = "moxieuser:12345";
- process.env.to = "./js/i18n";
- jake.Task['i18n'].invoke();
- }
- });
- desc("Language tools");
- task("i18n", [], function(params) {
- var i18n = require('./build/i18n');
- switch (params) {
- case 'extract':
- var from = process.env.from || ['./src/plupload.js', './src/jquery.ui.plupload/jquery.ui.plupload.js', './src/jquery.plupload.queue/jquery.plupload.queue.js'];
- var to = process.env.to || './tmp/en.po';
- i18n.extract(from, to);
- break;
- case 'toPO':
- // srcLang is required here, e.g.: jake i18n[toPO] srcLang=tmp/en.pot from=js/i18n/*.js
- var from = process.env.from;
- var to = process.env.to || './tmp/i18n';
- i18n.toPot(from, to);
- break;
- case 'pull':
- default:
- var auth = (process.env.auth || "moxieuser:12345").split(':');
- var to = process.env.to || './tmp/i18n';
- i18n.pull(utils.format("https://%s:%s@www.transifex.com/api/2/project/plupload/resource/core/", auth[0], auth[1]), to, complete);
- return;
- }
- complete(); // call complete manually
- }, true);
- desc("Generate documentation using YUIDoc");
- task("docs", [], function (params) {
- var yuidoc = tools.yuidoc;
- yuidoc(["src", "src/jquery.plupload.queue", "src/jquery.ui.plupload"], "docs", {
- norecurse: true
- });
- }, true);
- desc("Generate wiki pages");
- task("wiki", ["docs"], function() {
- wiki("https://github.com/moxiecode/plupload.wiki.git", "wiki", "docs");
- });
- desc("Runs JSHint on source files");
- task("jshint", [], function (params) {
- var jshint = tools.jshint;
- jshint("src", {
- curly: true
- });
- });
- desc("Package library");
- task("package", [], function (params) {
- var zip = tools.zip;
- var info = require("./package.json");
- var tmpDir = "./tmp";
- if (fs.existsSync(tmpDir)) {
- jake.rmRf(tmpDir);
- }
- fs.mkdirSync(tmpDir, 0755);
- var suffix = info.version.replace(/\./g, '_');
- if (/(?:beta|alpha)/.test(suffix)) {
- var dateFormat = require('dateformat');
- // If some public test build, append build number
- suffix += "." + dateFormat(new Date(), "yymmddHHMM", true);
- }
- zip([
- "js/**/*",
- "examples/**/*",
- "README.md",
- "LICENSE.txt"
- ], path.join(tmpDir, utils.format("plupload_%s.zip", suffix)), complete);
- }, true);
- desc("Create NuGet package");
- task('mknuget', [], function() {
- var mknuget = require('./src/moxie/build/mknuget');
- mknuget.pack(require('./package.json'), function(err, nugetPath) {
- console.info(nugetPath);
- complete();
- });
- }, true);
|