1- // Generated on <%= (new Date).toISOString().split('T')[0] %> using <%= pkg.name %> <%= pkg.version %> :: http://github.com/ <%= pkg.repository.url %>
1+ // Generated on <%= (new Date).toISOString().split('T')[0] %> using <%= pkg.name %> <%= pkg.version %> :: <%= pkg.repository.url %>
22/*jshint -W069*/
33/*global module*/
44"use strict" ;
55
6+ // In case you seem to have trouble starting Mendix through `grunt start-mendix`, you might have to set the path to the Mendix application.
7+ // If it works, leave MODELER_PATH at null
8+ var MODELER_PATH = null ;
9+ var MODELER_ARGS = "/file:{path}" ;
10+
11+ /********************************************************************************
12+ * Do not edit anything below, unless you know what you are doing
13+ ********************************************************************************/
14+
615var path = require ( "path" ) ,
716 mendixApp = require ( "node-mendix-modeler-path" ) ,
817 base64 = require ( "node-base64-image" ) ,
@@ -13,23 +22,35 @@ var path = require("path"),
1322 renderOpts : { pretty : true , indent : " " , newline : "\n" } ,
1423 xmldec : { standalone : null , encoding : "utf-8" }
1524 } ) ,
16- shelljs = require ( "shelljs" ) ;
17-
18- // In case you seem to have trouble starting Mendix through `grunt start-mendix`, you might have to set the path to the Mendix application.
19- // If it works, leave MODELER_PATH at null
20- var MODELER_PATH = null ;
21- var MODELER_ARGS = "/file:{path}" ;
22-
23- // In case you have a different path to the test project (currently in ./test/Test.mpr) point TEST_PATH to the Test-project (full path). Otherwise, leave at null
24- var TEST_PATH = null ;
25- // Use this example if you want to point it to a different subfolder and specific Test project Name:
26- // var TEST_PATH = path.join(shelljs.pwd(), "./<custom folder>/<Custom Test Project Name>.mpr");
25+ shelljs = require ( "shelljs" ) ,
26+ pkg = require ( "./package.json" ) ;
27+
28+ var TEST_PATH = path . join ( shelljs . pwd ( ) , "/test/Test.mpr" ) ;
29+ var WIDGET_XML = path . join ( shelljs . pwd ( ) , "/src/" , pkg . name , "/" , pkg . name + ".xml" ) ;
30+ var PACKAGE_XML = path . join ( shelljs . pwd ( ) , "/src/package.xml" ) ;
31+ var TEST_WIDGETS_FOLDER = path . join ( shelljs . pwd ( ) , "./test/widgets" ) ;
32+ var TEST_WIDGETS_DEPLOYMENT_FOLDER = path . join ( shelljs . pwd ( ) , "./test/deployment/web/widgets" ) ;
33+
34+ /**
35+ * If you want to use a custom folder for the test project, make sure these are added to package.json:
36+ * "paths": {
37+ * "testProjectFolder": "./test/",
38+ * "testProjectFileName": "Test.mpr"
39+ * },
40+ * You can test it by running: `grunt folders`
41+ **/
42+
43+ if ( pkg . paths && pkg . paths . testProjectFolder && pkg . paths . testProjectFileName ) {
44+ var folder = pkg . paths . testProjectFolder ;
45+ if ( folder . indexOf ( "." ) === 0 ) {
46+ folder = path . join ( shelljs . pwd ( ) , folder ) ;
47+ }
48+ TEST_PATH = path . join ( folder , pkg . paths . testProjectFileName ) ;
49+ TEST_WIDGETS_FOLDER = path . join ( folder , "/widgets" ) ;
50+ TEST_WIDGETS_DEPLOYMENT_FOLDER = path . join ( folder , "/deployment/web/widgets" ) ;
51+ }
2752
2853module . exports = function ( grunt ) {
29- var pkg = grunt . file . readJSON ( "package.json" ) ;
30- var widgetXml = path . join ( shelljs . pwd ( ) , "/src/" , pkg . name , "/" , pkg . name + ".xml" ) ;
31- var packageXml = path . join ( shelljs . pwd ( ) , "/src/package.xml" ) ;
32-
3354 grunt . initConfig ( {
3455 watch : {
3556 autoDeployUpdate : {
@@ -59,20 +80,20 @@ module.exports = function (grunt) {
5980 copy : {
6081 deployment : {
6182 files : [
62- { dest : "./test/deployment/web/widgets" , cwd : "./src/" , src : [ "**/*" ] , expand : true }
83+ { dest : TEST_WIDGETS_DEPLOYMENT_FOLDER , cwd : "./src/" , src : [ "**/*" ] , expand : true }
6384 ]
6485 } ,
6586 mpks : {
6687 files : [
67- { dest : "./test/widgets" , cwd : "./dist/" , src : [ pkg . name + ".mpk" ] , expand : true }
88+ { dest : TEST_WIDGETS_FOLDER , cwd : "./dist/" , src : [ pkg . name + ".mpk" ] , expand : true }
6889 ]
6990 }
7091 } ,
7192 clean : {
7293 build : [
73- "./ dist/" + pkg . name + "/*" ,
74- "./test/deployment/web/widgets/" + pkg . name + "/*" ,
75- "./test/widgets/" + pkg . name + ".mpk"
94+ path . join ( shelljs . pwd ( ) , " dist" , pkg . name , "/*" ) ,
95+ path . join ( TEST_WIDGETS_DEPLOYMENT_FOLDER , pkg . name , "/*" ) ,
96+ path . join ( TEST_WIDGETS_FOLDER , pkg . name + ".mpk" )
7697 ]
7798 }
7899 } ) ;
@@ -84,14 +105,12 @@ module.exports = function (grunt) {
84105 grunt . loadNpmTasks ( "grunt-newer" ) ;
85106
86107 grunt . registerTask ( "start-modeler" , function ( ) {
87- var done = this . async ( ) ,
88- testProjectPath = TEST_PATH !== null ? TEST_PATH : path . join ( shelljs . pwd ( ) , "/test/Test.mpr" ) ;
89-
108+ var done = this . async ( ) ;
90109 if ( MODELER_PATH !== null || ( mendixApp . err === null && mendixApp . output !== null && mendixApp . output . cmd && mendixApp . output . arg ) ) {
91110 grunt . util . spawn ( {
92111 cmd : MODELER_PATH || mendixApp . output . cmd ,
93112 args : [
94- ( MODELER_PATH !== null ? MODELER_ARGS : mendixApp . output . arg ) . replace ( "{path}" , testProjectPath )
113+ ( MODELER_PATH !== null ? MODELER_ARGS : mendixApp . output . arg ) . replace ( "{path}" , TEST_PATH )
95114 ]
96115 } , function ( ) {
97116 done ( ) ;
@@ -105,12 +124,12 @@ module.exports = function (grunt) {
105124
106125 grunt . registerTask ( "version" , function ( version ) {
107126 var done = this . async ( ) ;
108- if ( ! grunt . file . exists ( packageXml ) ) {
109- grunt . log . error ( "Cannot find " + packageXml ) ;
127+ if ( ! grunt . file . exists ( PACKAGE_XML ) ) {
128+ grunt . log . error ( "Cannot find " + PACKAGE_XML ) ;
110129 return done ( ) ;
111130 }
112131
113- var xml = grunt . file . read ( packageXml ) ;
132+ var xml = grunt . file . read ( PACKAGE_XML ) ;
114133 parser . parseString ( xml , function ( err , res ) {
115134 if ( err ) {
116135 grunt . log . error ( err ) ;
@@ -130,7 +149,7 @@ module.exports = function (grunt) {
130149 res . package . clientModule [ 0 ] [ "$" ] [ "version" ] = version ;
131150 pkg . version = version ;
132151 var xmlString = builder . buildObject ( res ) ;
133- grunt . file . write ( packageXml , xmlString ) ;
152+ grunt . file . write ( PACKAGE_XML , xmlString ) ;
134153 grunt . file . write ( "package.json" , JSON . stringify ( pkg , null , 2 ) ) ;
135154 done ( ) ;
136155 }
@@ -149,21 +168,21 @@ module.exports = function (grunt) {
149168
150169 grunt . log . writeln ( "Processing icon" ) ;
151170
152- if ( ! grunt . file . exists ( iconPath ) || ! grunt . file . exists ( widgetXml ) ) {
171+ if ( ! grunt . file . exists ( iconPath ) || ! grunt . file . exists ( WIDGET_XML ) ) {
153172 grunt . log . error ( "can\'t generate icon" ) ;
154173 return done ( ) ;
155174 }
156175
157176 base64 . base64encoder ( iconPath , options , function ( err , image ) {
158177 if ( ! err ) {
159- var xmlOld = grunt . file . read ( widgetXml ) ;
178+ var xmlOld = grunt . file . read ( WIDGET_XML ) ;
160179 parser . parseString ( xmlOld , function ( err , result ) {
161180 if ( ! err ) {
162181 if ( result && result . widget && result . widget . icon ) {
163182 result . widget . icon [ 0 ] = image ;
164183 }
165184 var xmlString = builder . buildObject ( result ) ;
166- grunt . file . write ( widgetXml , xmlString ) ;
185+ grunt . file . write ( WIDGET_XML , xmlString ) ;
167186 done ( ) ;
168187 }
169188 } ) ;
@@ -174,6 +193,17 @@ module.exports = function (grunt) {
174193 } ) ;
175194 } ) ;
176195
196+ grunt . registerTask ( "folders" , function ( ) {
197+ var done = this . async ( ) ;
198+ grunt . log . writeln ( "\nShowing file paths that Grunt will use. You can edit the package.json accordingly\n" ) ;
199+ grunt . log . writeln ( "TEST_PATH: " , TEST_PATH ) ;
200+ grunt . log . writeln ( "WIDGET_XML: " , WIDGET_XML ) ;
201+ grunt . log . writeln ( "PACKAGE_XML: " , PACKAGE_XML ) ;
202+ grunt . log . writeln ( "TEST_WIDGETS_FOLDER: " , TEST_WIDGETS_FOLDER ) ;
203+ grunt . log . writeln ( "TEST_WIDGETS_DEPLOYMENT_FOLDER: " , TEST_WIDGETS_DEPLOYMENT_FOLDER ) ;
204+ return done ( ) ;
205+ } ) ;
206+
177207 grunt . registerTask ( "start-mendix" , [ "start-modeler" ] ) ;
178208
179209 grunt . registerTask (
0 commit comments