1
1
2
2
var argv = require ( 'optimist' )
3
+ // optimist: all one letter parameters maybe stacked after '-'
4
+ // all others should be with '--'
5
+ // '-cg proj1' becomes '-c -g=proj1', so it should be '-cgn proj1'
3
6
. alias ( 'c' , 'create' ) . describe ( 'c' , 'create project folder and prepare it' )
7
+ //.alias('n','eclipse_project_nodeclipse')
8
+ . alias ( 'g' , 'eclipse_project_general' )
4
9
. alias ( 'p' , 'prepare' ) . describe ( 'p' , 'prepare for import, i.e. add needed `.project` and other `.*` file ' )
5
10
. string ( 'n' )
6
11
. alias ( 'n' , 'name' ) . describe ( 'h' , 'project name (default is folder name)' )
@@ -12,7 +17,10 @@ var argv = require('optimist')
12
17
require ( 'shelljs/global' ) ;
13
18
var fs = require ( 'fs' ) ;
14
19
var path = require ( 'path' ) ;
15
- //console.dir(process.argv);
20
+
21
+ var debug = false ;
22
+ if ( debug ) console . dir ( process . argv ) ;
23
+ if ( debug ) console . dir ( argv ) ;
16
24
17
25
// arguments processing
18
26
var help = argv . help || argv . h || ( process . argv . length <= 2 ) ;
@@ -24,9 +32,10 @@ if (!create && use){
24
32
console . log ( "Template usage without folder creation!" ) ;
25
33
return ;
26
34
}
27
- var prepare = create || argv . prepare || argv . p ;
35
+ var projectGeneral = argv . e || argv . eclipse_project_general ;
36
+ var projectNodeclipse = argv . en || argv . project_eclipse_nodeclipse ; //TODO
37
+ var prepare = argv . prepare || argv . p || ( create && ( ! projectGeneral ) ) ; // not triggered by `create` as it maybe `project_general` as well
28
38
var name = argv . name || argv . n ; // could be create ||
29
- var debug = false ;
30
39
var verbose = debug || argv . verbose || argv . V ;
31
40
32
41
var projectFileExists = false ;
@@ -76,8 +85,9 @@ var executeActions = function () {
76
85
Arguments: \n\
77
86
-c, --create <name> create project folder and prepare it \n\
78
87
-u, --use <template> use/copy specified template when creating project \n\
79
- -p, --prepare prepare for import, i.e. add needed `.project` file and other `.*`\n\
88
+ -p, --prepare prepare Nodeclipse [Node.js] project for import, i.e. add needed `.project` file and other `.*`\n\
80
89
files ('.gitignore', '.jshintrc', '.settings/') if there is no `.project` yet\n\
90
+ -g, --eclipse_project_general prepare General Eclipse project for import, i.e. add only needed `.project` file\n\
81
91
-n, --name [<name>] project name (default is folder name)\n\
82
92
-h, --help this help screen\n\
83
93
-v, --version print nodeclipse CLI's version\n\
@@ -117,9 +127,17 @@ var executeActions = function () {
117
127
var templatesfolder = __dirname ;
118
128
if ( debug ) console . log ( "Templates folder is: " + templatesfolder ) ;
119
129
130
+ if ( use ) {
131
+ //cp(__dirname+use+'/*','.');
132
+ var fromfolder = path . join ( templatesfolder , use , '/*' )
133
+ if ( verbose ) console . log ( "Copying from " + fromfolder ) ;
134
+ cp ( fromfolder , '.' )
135
+ }
136
+
120
137
// common-templates
121
138
if ( prepare ) {
122
139
//var fromfolder = path.join(templatesfolder, 'common-templates', '/*')
140
+ var fromfolder = path . join ( templatesfolder , 'common-templates' )
123
141
if ( verbose ) console . log ( "Copying from " + fromfolder ) ;
124
142
125
143
//cp( '-A', fromfolder, '.' )
@@ -128,7 +146,6 @@ var executeActions = function () {
128
146
//console.log( fs.readdirSync(fromfolder) ); --> [ '.gitignore', '.jshintrc', '.settings', 'README.md' ]
129
147
mkdir ( '.settings' ) ; //HACK1
130
148
//for file in find(fromfolder)
131
- var fromfolder = path . join ( templatesfolder , 'common-templates' )
132
149
find ( fromfolder ) . forEach ( function copyFile ( file ) {
133
150
if ( verbose ) console . log ( "Copying " + file ) ;
134
151
// cp(file,'.'); // This does not recreate subfolders - DONE with HACK1
@@ -147,39 +164,38 @@ var executeActions = function () {
147
164
148
165
}
149
166
150
- if ( use ) {
151
- //cp(__dirname+use+'/*','.');
152
- var fromfolder = path . join ( templatesfolder , use , '/*' )
153
- if ( verbose ) console . log ( "Copying from " + fromfolder ) ;
154
- cp ( fromfolder , '.' )
155
- }
156
-
157
167
// .project
168
+ if ( debug ) console . log ( 'projectNodeclipse=' + projectNodeclipse + ', projectGeneral=' + projectGeneral ) ;
169
+ var curfolder = pwd ( ) ;
170
+ if ( verbose ) console . log ( "Current folder is: " + curfolder ) ;
171
+ if ( ! name ) {
172
+ name = path . basename ( curfolder ) ;
173
+ }
158
174
if ( prepare ) {
159
- var curfolder = pwd ( ) ;
160
- if ( verbose ) console . log ( "Current folder is: " + curfolder ) ;
161
- if ( ! name )
162
- name = path . basename ( curfolder ) ;
163
-
164
- var str = cat ( __dirname + '/eclipse/.project' ) . replace ( '${projectname}' , name ) ;
165
- var destfile = curfolder + '/.project' ;
166
-
167
- // http://www.nodejs.org/api/fs.html#fs_fs_appendfile_filename_data_options_callback
168
-
169
- //console.log(curfolder + '/.project');
170
- fs . writeFile ( destfile , str , function ( err ) {
171
- if ( err )
172
- throw err ;
173
- if ( verbose ) console . log ( 'The file "' + destfile + '" was created !' ) ;
174
- console . log ( 'In Eclipse/Enide select File -> Import... -> General / Existing Projects into Workspace' ) ;
175
- console . log ( 'and enter current directory: ' + curfolder ) ;
176
- } ) ;
177
-
178
- if ( debug ) console . log ( str ) ; // ''.toString()
175
+ copyDotProjectFile ( 'eclipse' , curfolder , name ) ;
176
+ } else if ( projectGeneral ) {
177
+ copyDotProjectFile ( 'eclipse-project-general' , curfolder , name ) ;
179
178
}
180
179
181
180
inviteToSiteAsTheLastLine ( ) ;
182
181
}
182
+ var copyDotProjectFile = function ( eclipse , curfolder , name ) {
183
+ if ( ! eclipse ) eclipse = 'eclipse' ;
184
+ var str = cat ( __dirname + '/' + eclipse + '/.project' ) . replace ( '${projectname}' , name ) ;
185
+ var destfile = curfolder + '/.project' ;
186
+
187
+ // http://www.nodejs.org/api/fs.html#fs_fs_appendfile_filename_data_options_callback
188
+ fs . writeFile ( destfile , str , function ( err ) {
189
+ if ( err )
190
+ throw err ;
191
+ if ( verbose ) console . log ( 'The file "' + destfile + '" was created !' ) ;
192
+ console . log ( 'In Eclipse/Enide select File -> Import... -> General / Existing Projects into Workspace' ) ;
193
+ console . log ( 'and enter project directory: ' + curfolder ) ;
194
+ } ) ;
195
+
196
+ if ( debug ) console . log ( str ) ; // ''.toString()
197
+
198
+ }
183
199
var inviteToSiteAsTheLastLine = function ( ) {
184
200
setTimeout ( inviteToSite , 100 ) ;
185
201
}
0 commit comments