| 
									
										
										
										
											2013-07-21 05:56:59 +08:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | module.exports = function (grunt) { | 
					
						
							| 
									
										
										
										
											2015-04-20 14:10:23 +08:00
										 |  |  |   var os = require('os'); | 
					
						
							| 
									
										
										
										
											2013-09-14 04:52:13 +08:00
										 |  |  |   var config = { | 
					
						
							| 
									
										
										
										
											2013-07-21 05:56:59 +08:00
										 |  |  |     pkg: grunt.file.readJSON('package.json'), | 
					
						
							| 
									
										
										
										
											2013-11-15 12:29:41 +08:00
										 |  |  |     baseDir: '.', | 
					
						
							| 
									
										
										
										
											2015-03-29 18:57:28 +08:00
										 |  |  |     srcDir: 'public', | 
					
						
							| 
									
										
										
										
											2015-09-10 17:26:40 +08:00
										 |  |  |     genDir: 'public_gen', | 
					
						
							| 
									
										
										
										
											2013-09-14 04:52:13 +08:00
										 |  |  |     destDir: 'dist', | 
					
						
							|  |  |  |     tempDir: 'tmp', | 
					
						
							| 
									
										
										
										
											2015-04-20 14:10:23 +08:00
										 |  |  |     platform: process.platform.replace('win32', 'windows'), | 
					
						
							| 
									
										
										
										
											2018-10-25 22:55:27 +08:00
										 |  |  |     enterprise: false, | 
					
						
							| 
									
										
										
										
											2013-09-14 04:52:13 +08:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-08 15:42:20 +08:00
										 |  |  |   if (grunt.option('platform')) { | 
					
						
							|  |  |  |     config.platform = grunt.option('platform'); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-25 22:55:27 +08:00
										 |  |  |   if (grunt.option('enterprise')) { | 
					
						
							|  |  |  |     config.enterprise = true; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-17 21:09:35 +08:00
										 |  |  |   if (grunt.option('arch')) { | 
					
						
							| 
									
										
										
										
											2016-10-17 21:19:00 +08:00
										 |  |  |     config.arch = grunt.option('arch'); | 
					
						
							| 
									
										
										
										
											2016-10-17 21:09:35 +08:00
										 |  |  |   } else { | 
					
						
							| 
									
										
										
										
											2016-10-17 21:19:00 +08:00
										 |  |  |     config.arch = os.arch(); | 
					
						
							| 
									
										
										
										
											2016-10-17 21:09:35 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (process.platform.match(/^win/)) { | 
					
						
							|  |  |  |       config.arch = process.env.hasOwnProperty('ProgramFiles(x86)') ? 'x64' : 'x86'; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2015-04-21 14:56:32 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-18 17:13:00 +08:00
										 |  |  |   config.phjs = grunt.option('phjsToRelease'); | 
					
						
							| 
									
										
										
										
											2015-03-04 14:09:59 +08:00
										 |  |  |   config.pkg.version = grunt.option('pkgVer') || config.pkg.version; | 
					
						
							| 
									
										
										
										
											2017-10-22 13:03:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-03-31 03:02:44 +08:00
										 |  |  |   console.log('Version', config.pkg.version); | 
					
						
							| 
									
										
										
										
											2015-03-04 14:09:59 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-15 07:07:14 +08:00
										 |  |  |   // load plugins
 | 
					
						
							|  |  |  |   require('load-grunt-tasks')(grunt); | 
					
						
							| 
									
										
										
										
											2013-09-20 01:17:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-15 07:07:14 +08:00
										 |  |  |   // load task definitions
 | 
					
						
							| 
									
										
										
										
											2017-10-02 02:02:25 +08:00
										 |  |  |   grunt.loadTasks('./scripts/grunt'); | 
					
						
							| 
									
										
										
										
											2013-10-18 06:33:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-15 11:30:28 +08:00
										 |  |  |   // Utility function to load plugin settings into config
 | 
					
						
							|  |  |  |   function loadConfig(config,path) { | 
					
						
							| 
									
										
										
										
											2013-11-15 07:07:14 +08:00
										 |  |  |     require('glob').sync('*', {cwd: path}).forEach(function(option) { | 
					
						
							| 
									
										
										
										
											2013-11-15 11:30:28 +08:00
										 |  |  |       var key = option.replace(/\.js$/,''); | 
					
						
							|  |  |  |       // If key already exists, extend it. It is your responsibility to avoid naming collisions
 | 
					
						
							|  |  |  |       config[key] = config[key] || {}; | 
					
						
							| 
									
										
										
										
											2013-11-16 00:44:06 +08:00
										 |  |  |       grunt.util._.extend(config[key], require(path + option)(config,grunt)); | 
					
						
							| 
									
										
										
										
											2013-09-20 01:17:42 +08:00
										 |  |  |     }); | 
					
						
							| 
									
										
										
										
											2013-11-15 11:30:28 +08:00
										 |  |  |     // technically not required
 | 
					
						
							|  |  |  |     return config; | 
					
						
							| 
									
										
										
										
											2013-11-15 07:07:14 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2013-09-20 04:45:09 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-15 07:07:14 +08:00
										 |  |  |   // Merge that object with what with whatever we have here
 | 
					
						
							| 
									
										
										
										
											2017-10-02 02:02:25 +08:00
										 |  |  |   loadConfig(config,'./scripts/grunt/options/'); | 
					
						
							| 
									
										
										
										
											2013-09-20 01:17:42 +08:00
										 |  |  |   // pass the config to grunt
 | 
					
						
							|  |  |  |   grunt.initConfig(config); | 
					
						
							| 
									
										
										
										
											2014-08-11 22:37:31 +08:00
										 |  |  | }; |