From 055cb7534e2dcf7ee8ad145be83cb2d74b5331c7 Mon Sep 17 00:00:00 2001 From: Oleg Gaidarenko Date: Sat, 12 Mar 2016 17:48:37 +0300 Subject: [PATCH] Build: try insight package to get info about custom builds Fixes gh-2890 Closes gh-2988 --- build/tasks/build.js | 43 +++++++++++++++++++++++++++++++++++++++++-- package.json | 1 + 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/build/tasks/build.js b/build/tasks/build.js index 2ebb4c47e..1e1c6bb37 100644 --- a/build/tasks/build.js +++ b/build/tasks/build.js @@ -10,6 +10,8 @@ module.exports = function( grunt ) { var fs = require( "fs" ), requirejs = require( "requirejs" ), + Insight = require( "insight" ), + pkg = require( "../../package.json" ), srcFolder = __dirname + "/../../src/", rdefineEnd = /\}\s*?\);[^}\w]*$/, read = function( fileName ) { @@ -312,10 +314,47 @@ module.exports = function( grunt ) { // grunt build:*:*:+ajax:-dimensions:-effects:-offset grunt.registerTask( "custom", function() { var args = this.args, - modules = args.length ? args[ 0 ].replace( /,/g, ":" ) : ""; + modules = args.length ? args[ 0 ].replace( /,/g, ":" ) : "", + done = this.async(), + insight = new Insight( { + trackingCode: "UA-1076265-4", + pkg: pkg + } ); + + function exec( trackingAllowed ) { + var tracks = args.length ? args[ 0 ].split( "," ) : []; + var defaultPath = [ "build", "custom" ]; + + tracks = tracks.map( function( track ) { + return track.replace( /\//g, "+" ); + } ); + + if ( trackingAllowed ) { + + // Track individuals + tracks.forEach( function( module ) { + var path = defaultPath.concat( [ "individual" ], module ); + + insight.track.apply( insight, path ); + } ); + + // Track full command + insight.track.apply( insight, defaultPath.concat( [ "full" ], tracks ) ); + } + + grunt.task.run( [ "build:*:*" + ( modules ? ":" + modules : "" ), "uglify", "dist" ] ); + done(); + } grunt.log.writeln( "Creating custom build...\n" ); - grunt.task.run( [ "build:*:*" + ( modules ? ":" + modules : "" ), "uglify", "dist" ] ); + // Ask for permission the first time + if ( insight.optOut === undefined ) { + insight.askPermission( null, function( error, result ) { + exec( result ); + } ); + } else { + exec( !insight.optOut ); + } } ); }; diff --git a/package.json b/package.json index ef450590c..30ff931fc 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "grunt-npmcopy": "0.1.0", "gzip-js": "0.3.2", "husky": "0.11.3", + "insight": "0.7.0", "jsdom": "5.6.1", "load-grunt-tasks": "3.4.0", "native-promise-only": "0.8.1", -- 2.39.5