@jtff/miztemplate-lib 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,636 @@
1
+ const fs = require("fs");
2
+ const path = require("path");
3
+ const prompt = require('prompt');
4
+
5
+ function injectScripts(jtffci, env_mission) {
6
+ fs.mkdirSync(jtffci.config.general.missionFolder, { recursive: true });
7
+ if (fs.existsSync([
8
+ jtffci.config.general.missionFolder,
9
+ "/",
10
+ path.parse(env_mission).name
11
+ ].join(""))) {
12
+ fs.rmSync([
13
+ jtffci.config.general.missionFolder,
14
+ "/",
15
+ path.parse(env_mission).name
16
+ ].join(""),
17
+ { recursive: true }
18
+ );
19
+ }
20
+ fs.mkdirSync([
21
+ jtffci.config.general.missionFolder,
22
+ "/",
23
+ path.parse(env_mission).name,
24
+ "/settings"
25
+ ].join(""),
26
+ { recursive: true }
27
+ );
28
+ fs.mkdirSync([
29
+ jtffci.config.general.missionFolder,
30
+ "/",
31
+ path.parse(env_mission).name,
32
+ "/src"
33
+ ].join(""),
34
+ { recursive: true }
35
+ );
36
+
37
+
38
+ const prompt_properties = [
39
+ {
40
+ name: 'inject_tankers',
41
+ validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
42
+ warning: 'inject_tankers must be yes/y/o/oui or no/n/non',
43
+ default: 'n'
44
+ },
45
+ {
46
+ name: 'inject_airboss',
47
+ validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
48
+ warning: 'inject_airboss must be yes/y/o/oui or no/n/non',
49
+ default: 'n'
50
+ },
51
+ {
52
+ name: 'inject_beacons',
53
+ validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
54
+ warning: 'inject_beacons must be yes/y/o/oui or no/n/non',
55
+ default: 'n'
56
+ },
57
+ {
58
+ name: 'inject_awacs',
59
+ validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
60
+ warning: 'inject_awacs must be yes/y/o/oui or no/n/non',
61
+ default: 'n'
62
+ },
63
+ {
64
+ name: 'inject_atis',
65
+ validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
66
+ warning: 'inject_atis must be yes/y/o/oui or no/n/non',
67
+ default: 'n'
68
+ },
69
+ {
70
+ name: 'inject_A2A',
71
+ validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
72
+ warning: 'inject_A2A must be yes/y/o/oui or no/n/non',
73
+ default: 'n'
74
+ },
75
+ {
76
+ name: 'inject_mission',
77
+ validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
78
+ warning: 'inject_mission must be yes/y/o/oui or no/n/non',
79
+ default: 'y'
80
+ },
81
+ {
82
+ name: 'inject_A2G',
83
+ validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
84
+ warning: 'inject_A2G must be yes/y/o/oui or no/n/non',
85
+ default: 'n'
86
+ },
87
+ {
88
+ name: 'inject_radio_presets',
89
+ validator: /^y\b|n\b|o\b|yes\b|no\b|non\b|oui\b/i,
90
+ warning: 'inject_radio_presets must be yes/y/o/oui or no/n/non',
91
+ default: 'n'
92
+ }
93
+ ];
94
+
95
+ prompt.start();
96
+ prompt.get(prompt_properties, async function (prompt_err, prompt_result) {
97
+ if (prompt_err) {
98
+ console.log(prompt_err);
99
+ return 1;
100
+ }
101
+ console.log('Command-line input received:');
102
+ console.log(' inject_tankers scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_tankers));
103
+ console.log(' inject_airboss scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_airboss));
104
+ console.log(' inject_beacons scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_beacons));
105
+ console.log(' inject_awacs scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_awacs));
106
+ console.log(' inject_atis scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_atis));
107
+ console.log(' inject_A2A scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2A));
108
+ console.log(' inject_mission specific scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_mission));
109
+ console.log(' inject_A2G scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2G));
110
+ console.log(' inject_radio_presets scripts: ' + (/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_radio_presets));
111
+
112
+ const zip = await jtffci.mizOpen(env_mission);
113
+ jtffci.mizUpdateSrcLuaFiles(zip);
114
+ jtffci.mizUpdateLibLuaFiles(zip);
115
+ // injection des fichiers son Generaux
116
+ // const generalSoundFolder = zip.remove('General').folder('General');
117
+ // await jtffci.addFilesToZip(generalSoundFolder, 'resources/sounds/General', fs.readdirSync('resources/sounds/General'));
118
+ // injection des fichiers son Misc
119
+ const generalSoundFolder = zip.remove('Misc').folder('Misc');
120
+ await jtffci.addFilesToZip(generalSoundFolder, 'resources/sounds/Misc', fs.readdirSync('resources/sounds/Misc'));
121
+
122
+ const inputZip = await zip.generateAsync({
123
+ type: 'nodebuffer',
124
+ streamFiles: true,
125
+ compression: "DEFLATE",
126
+ compressionOptions: {
127
+ level: 9
128
+ }
129
+ });
130
+ fs.writeFileSync([
131
+ jtffci.config.general.missionFolder,
132
+ "/",
133
+ path.parse(env_mission).name,
134
+ "/",
135
+ path.basename(env_mission)
136
+ ].join(""),
137
+ inputZip);
138
+
139
+
140
+ const missionObject = await jtffci.getMissionObjectFromMiz(
141
+ [
142
+ jtffci.config.general.missionFolder,
143
+ "/",
144
+ path.parse(env_mission).name,
145
+ "/",
146
+ path.basename(env_mission)
147
+ ].join("")
148
+ );
149
+ let mapResourceObject = await jtffci.getMapResourceObjectFromMiz(
150
+ [
151
+ jtffci.config.general.missionFolder,
152
+ "/",
153
+ path.parse(env_mission).name,
154
+ "/",
155
+ path.basename(env_mission)
156
+ ].join("")
157
+ );
158
+ if (Array.isArray(mapResourceObject)) {
159
+ if (mapResourceObject.length === 0) {
160
+ mapResourceObject = {};
161
+ }
162
+ }
163
+ // injection Moose
164
+ let tuple = jtffci.injectScripts(
165
+ missionObject['trig'],
166
+ missionObject['trigrules'],
167
+ mapResourceObject,
168
+ 'Moose load',
169
+ ['Moose_.lua'],
170
+ 10,
171
+ '0x008000ff'
172
+ );
173
+ missionObject['trig'] = tuple.tObject;
174
+ missionObject['trigrules'] = tuple.trObject;
175
+ mapResourceObject = tuple.mrObject;
176
+ // injection Mist
177
+ tuple = jtffci.injectScripts(
178
+ missionObject['trig'],
179
+ missionObject['trigrules'],
180
+ mapResourceObject,
181
+ 'Mist load',
182
+ ['mist_4_5_107.lua'],
183
+ 13,
184
+ '0x008000ff'
185
+ );
186
+ missionObject['trig'] = tuple.tObject;
187
+ missionObject['trigrules'] = tuple.trObject;
188
+ mapResourceObject = tuple.mrObject;
189
+ // injection Skynet
190
+ tuple = jtffci.injectScripts(
191
+ missionObject['trig'],
192
+ missionObject['trigrules'],
193
+ mapResourceObject,
194
+ 'Skynet load',
195
+ ['skynet-iads-compiled.lua'],
196
+ 15,
197
+ '0x008000ff'
198
+ );
199
+ missionObject['trig'] = tuple.tObject;
200
+ missionObject['trigrules'] = tuple.trObject;
201
+ mapResourceObject = tuple.mrObject;
202
+ // injection Librairies JTFF
203
+ tuple = jtffci.injectScripts(
204
+ missionObject['trig'],
205
+ missionObject['trigrules'],
206
+ mapResourceObject,
207
+ 'Load Libraries',
208
+ ['010-root_menus.lua', '020-mission_functions.lua', 'gemman.lua', 'Hercules_Cargo.lua'],
209
+ 16,
210
+ '0xffff00ff'
211
+ );
212
+ missionObject['trig'] = tuple.tObject;
213
+ missionObject['trigrules'] = tuple.trObject;
214
+ mapResourceObject = tuple.mrObject;
215
+
216
+ let settingsArray = [];
217
+ settingsArray.push(
218
+ {
219
+ file: "settings-gemman.lua",
220
+ },
221
+ );
222
+ // injection de la gestion des Set_Clients
223
+ tuple = jtffci.injectScripts(
224
+ missionObject['trig'],
225
+ missionObject['trigrules'],
226
+ mapResourceObject,
227
+ 'Set clients',
228
+ ['110-set_clients.lua'],
229
+ 21,
230
+ '0xff0000ff'
231
+ );
232
+ missionObject['trig'] = tuple.tObject;
233
+ missionObject['trigrules'] = tuple.trObject;
234
+ mapResourceObject = tuple.mrObject;
235
+ // injection des Tankers et OndemandTankers
236
+ if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_tankers)) {
237
+ settingsArray.push(
238
+ {
239
+ file: "settings-tankers.lua",
240
+ objectName: "TankersConfig"
241
+ },
242
+ {
243
+ file: "settings-ondemandtankers.lua",
244
+ objectName: "OnDemandTankersConfig"
245
+ },
246
+ );
247
+ tuple = jtffci.injectScripts(
248
+ missionObject['trig'],
249
+ missionObject['trigrules'],
250
+ mapResourceObject,
251
+ 'Tankers',
252
+ ['120-tankers.lua'],
253
+ 22,
254
+ '0xff0000ff'
255
+ );
256
+ missionObject['trig'] = tuple.tObject;
257
+ missionObject['trigrules'] = tuple.trObject;
258
+ mapResourceObject = tuple.mrObject;
259
+ }
260
+ if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_airboss)) {
261
+ // injection des fichiers son Airboss
262
+ const zip = await jtffci.mizOpen([
263
+ jtffci.config.general.missionFolder,
264
+ "/",
265
+ path.parse(env_mission).name,
266
+ "/",
267
+ path.basename(env_mission)
268
+ ].join(""));
269
+ const airbossSoundFolder = zip.remove('AIRBOSS').folder('AIRBOSS');
270
+ await jtffci.addFilesToZip(airbossSoundFolder, 'resources/sounds/AIRBOSS', fs.readdirSync('resources/sounds/AIRBOSS'));
271
+ const inputZip = await zip.generateAsync({
272
+ type: 'nodebuffer',
273
+ streamFiles: true,
274
+ compression: "DEFLATE",
275
+ compressionOptions: {
276
+ level: 9
277
+ }
278
+ });
279
+ fs.writeFileSync([
280
+ jtffci.config.general.missionFolder,
281
+ "/",
282
+ path.parse(env_mission).name,
283
+ "/",
284
+ path.basename(env_mission)
285
+ ].join(""),
286
+ inputZip);
287
+ settingsArray.push(
288
+ {
289
+ file: "settings-airboss.lua",
290
+ objectName: "AirBossConfig"
291
+ },
292
+ {
293
+ file: "settings-pedros.lua",
294
+ objectName: "PedrosConfig"
295
+ },
296
+ );
297
+ tuple = jtffci.injectScripts(
298
+ missionObject['trig'],
299
+ missionObject['trigrules'],
300
+ mapResourceObject,
301
+ 'Airboss',
302
+ ['130-airboss.lua', '135-pedro.lua'],
303
+ 23,
304
+ '0xff0000ff'
305
+ );
306
+ missionObject['trig'] = tuple.tObject;
307
+ missionObject['trigrules'] = tuple.trObject;
308
+ mapResourceObject = tuple.mrObject;
309
+ }
310
+ if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_beacons)) {
311
+ settingsArray.push(
312
+ {
313
+ file: "settings-beacons.lua",
314
+ objectName: "BeaconsConfig"
315
+ },
316
+ );
317
+ tuple = jtffci.injectScripts(
318
+ missionObject['trig'],
319
+ missionObject['trigrules'],
320
+ mapResourceObject,
321
+ 'Beacons',
322
+ ['140-beacons.lua'],
323
+ 24,
324
+ '0xff0000ff'
325
+ );
326
+ missionObject['trig'] = tuple.tObject;
327
+ missionObject['trigrules'] = tuple.trObject;
328
+ mapResourceObject = tuple.mrObject;
329
+ }
330
+ if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_awacs)) {
331
+ settingsArray.push(
332
+ {
333
+ file: "settings-awacs.lua",
334
+ objectName: "AwacsConfig"
335
+ },
336
+ );
337
+ tuple = jtffci.injectScripts(
338
+ missionObject['trig'],
339
+ missionObject['trigrules'],
340
+ mapResourceObject,
341
+ 'Awacs',
342
+ ['150-awacs.lua'],
343
+ 25,
344
+ '0xff0000ff'
345
+ );
346
+ missionObject['trig'] = tuple.tObject;
347
+ missionObject['trigrules'] = tuple.trObject;
348
+ mapResourceObject = tuple.mrObject;
349
+ }
350
+ if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_atis)) {
351
+ // injection des fichiers son ATIS
352
+ const zip = await jtffci.mizOpen([
353
+ jtffci.config.general.missionFolder,
354
+ "/",
355
+ path.parse(env_mission).name,
356
+ "/",
357
+ path.basename(env_mission)
358
+ ].join(""));
359
+ // const atisSoundFolder = zip.remove('ATIS').folder('ATIS');
360
+ // await jtffci.addFilesToZip(atisSoundFolder, 'resources/sounds/ATIS', fs.readdirSync('resources/sounds/ATIS'));
361
+ const inputZip = await zip.generateAsync({
362
+ type: 'nodebuffer',
363
+ streamFiles: true,
364
+ compression: "DEFLATE",
365
+ compressionOptions: {
366
+ level: 9
367
+ }
368
+ });
369
+ fs.writeFileSync([
370
+ jtffci.config.general.missionFolder,
371
+ "/",
372
+ path.parse(env_mission).name,
373
+ "/",
374
+ path.basename(env_mission)
375
+ ].join(""),
376
+ inputZip);
377
+ settingsArray.push(
378
+ {
379
+ file: "settings-atis.lua",
380
+ objectName: "AtisConfig"
381
+ },
382
+ );
383
+ tuple = jtffci.injectScripts(
384
+ missionObject['trig'],
385
+ missionObject['trigrules'],
386
+ mapResourceObject,
387
+ 'ATIS',
388
+ ['160-atis.lua'],
389
+ 26,
390
+ '0xff0000ff'
391
+ );
392
+ missionObject['trig'] = tuple.tObject;
393
+ missionObject['trigrules'] = tuple.trObject;
394
+ mapResourceObject = tuple.mrObject;
395
+ }
396
+ if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2A)) {
397
+ settingsArray.push(
398
+ {
399
+ file: "settings-capzone.lua",
400
+ objectName: "TrainingCAPConfig"
401
+ },
402
+ {
403
+ file: "settings-capwarzone.lua",
404
+ objectName: "WarCAPConfig"
405
+ },
406
+ {
407
+ file: "settings-foxzone.lua",
408
+ objectName: "FoxRangesConfig"
409
+ },
410
+ {
411
+ file: "settings-RAT.lua",
412
+ objectName: "RATConfig"
413
+ },
414
+ {
415
+ file: "settings-intercept.lua",
416
+ objectName: "InterceptConfig"
417
+ },
418
+ );
419
+ tuple = jtffci.injectScripts(
420
+ missionObject['trig'],
421
+ missionObject['trigrules'],
422
+ mapResourceObject,
423
+ 'Air To Air',
424
+ ['170-cap_zone_training.lua', '172-cap_zone_war.lua', '173-fox_zone_training.lua', '176-random_air_traffic.lua', '178-training-intercept.lua'],
425
+ 27,
426
+ '0xff0000ff'
427
+ );
428
+ missionObject['trig'] = tuple.tObject;
429
+ missionObject['trigrules'] = tuple.trObject;
430
+ mapResourceObject = tuple.mrObject;
431
+ }
432
+ if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_mission)) {
433
+ fs.copyFileSync('templates/src/180-mission.lua',
434
+ [
435
+ jtffci.config.general.missionFolder,
436
+ "/",
437
+ path.parse(env_mission).name,
438
+ "/src/180-mission.lua"
439
+ ].join("")
440
+ );
441
+ const zip = await jtffci.mizOpen([
442
+ jtffci.config.general.missionFolder,
443
+ "/",
444
+ path.parse(env_mission).name,
445
+ "/",
446
+ path.basename(env_mission)
447
+ ].join(""));
448
+
449
+ jtffci.mizUpdateLuaFile(zip, [
450
+ jtffci.config.general.missionFolder,
451
+ "/",
452
+ path.parse(env_mission).name,
453
+ "/src/180-mission.lua"
454
+ ].join("")
455
+ );
456
+ const inputZip = await zip.generateAsync({
457
+ type: 'nodebuffer',
458
+ streamFiles: true,
459
+ compression: "DEFLATE",
460
+ compressionOptions: {
461
+ level: 9
462
+ }
463
+ });
464
+ fs.writeFileSync([
465
+ jtffci.config.general.missionFolder,
466
+ "/",
467
+ path.parse(env_mission).name,
468
+ "/",
469
+ path.basename(env_mission)
470
+ ].join(""),
471
+ inputZip);
472
+ tuple = jtffci.injectScripts(
473
+ missionObject['trig'],
474
+ missionObject['trigrules'],
475
+ mapResourceObject,
476
+ 'Mission specific',
477
+ ['180-mission.lua'],
478
+ 28,
479
+ '0xff0000ff'
480
+ );
481
+ missionObject['trig'] = tuple.tObject;
482
+ missionObject['trigrules'] = tuple.trObject;
483
+ mapResourceObject = tuple.mrObject;
484
+ }
485
+ if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_A2G)) {
486
+ // injection des fichiers son Range
487
+ const zip = await jtffci.mizOpen([
488
+ jtffci.config.general.missionFolder,
489
+ "/",
490
+ path.parse(env_mission).name,
491
+ "/",
492
+ path.basename(env_mission)
493
+ ].join(""));
494
+ // const rangeSoundFolder = zip.remove('RANGE').folder('RANGE');
495
+ // await jtffci.addFilesToZip(rangeSoundFolder, 'resources/sounds/RANGE', fs.readdirSync('resources/sounds/RANGE'));
496
+ const inputZip = await zip.generateAsync({
497
+ type: 'nodebuffer',
498
+ streamFiles: true,
499
+ compression: "DEFLATE",
500
+ compressionOptions: {
501
+ level: 9
502
+ }
503
+ });
504
+ fs.writeFileSync([
505
+ jtffci.config.general.missionFolder,
506
+ "/",
507
+ path.parse(env_mission).name,
508
+ "/",
509
+ path.basename(env_mission)
510
+ ].join(""),
511
+ inputZip);
512
+ settingsArray.push(
513
+ {
514
+ file: "settings-ranges.lua",
515
+ objectName: "RangeConfig"
516
+ },
517
+ {
518
+ file: "settings-sams.lua",
519
+ objectName: "SamsConfig"
520
+ },
521
+ {
522
+ file: "settings-training_ranges.lua",
523
+ objectName: "TrainingRangeConfig"
524
+ },
525
+ {
526
+ file: "settings-fac_ranges.lua",
527
+ objectName: "FACRangeConfig"
528
+ },
529
+ {
530
+ file: "settings-skynet.lua",
531
+ objectName: "SkynetConfig"
532
+ },
533
+ );
534
+ tuple = jtffci.injectScripts(
535
+ missionObject['trig'],
536
+ missionObject['trigrules'],
537
+ mapResourceObject,
538
+ 'Air To Ground',
539
+ ['190-ranges.lua', '191-sams.lua', '193-training_ranges.lua', '196-fac_ranges.lua', '199-skynet.lua'],
540
+ 29,
541
+ '0xff0000ff'
542
+ );
543
+ missionObject['trig'] = tuple.tObject;
544
+ missionObject['trigrules'] = tuple.trObject;
545
+ mapResourceObject = tuple.mrObject;
546
+ }
547
+ if ((/^y\b|o\b|yes\b|oui\b/i).test(prompt_result.inject_radio_presets)) {
548
+ // injection des preset radio
549
+ console.log([
550
+ jtffci.config.general.missionFolder,
551
+ "/",
552
+ path.parse(env_mission).name,
553
+ "/",
554
+ path.basename(env_mission)
555
+ ].join("") + ": injecting radio presets declared in resources/radios/" + path.parse(env_mission).name);
556
+ const zip = await jtffci.mizOpen([
557
+ jtffci.config.general.missionFolder,
558
+ "/",
559
+ path.parse(env_mission).name,
560
+ "/",
561
+ path.basename(env_mission)
562
+ ].join(""));
563
+ await jtffci.mizUpdateRadioPresets(zip, 'resources/radios/' + path.parse(env_mission).name);
564
+ }
565
+ for (let settingsObject of settingsArray) {
566
+ fs.copyFileSync(
567
+ [
568
+ 'templates/settings/',
569
+ settingsObject.file
570
+ ].join(""),
571
+ [
572
+ jtffci.config.general.missionFolder,
573
+ "/",
574
+ path.parse(env_mission).name,
575
+ "/settings/",
576
+ settingsObject.file
577
+ ].join("")
578
+ );
579
+ }
580
+ await jtffci.mizInjectSettingsFolder(
581
+ [
582
+ jtffci.config.general.missionFolder,
583
+ "/",
584
+ path.parse(env_mission).name,
585
+ "/",
586
+ path.basename(env_mission)
587
+ ].join(""),
588
+ [
589
+ jtffci.config.general.missionFolder,
590
+ "/",
591
+ path.parse(env_mission).name,
592
+ "/settings"
593
+ ].join("")
594
+ );
595
+ if (settingsArray.length > 0) {
596
+ tuple = jtffci.injectScripts(
597
+ missionObject['trig'],
598
+ missionObject['trigrules'],
599
+ mapResourceObject,
600
+ 'Mission Settings',
601
+ settingsArray.map(settingsObject => settingsObject.file),
602
+ 15,
603
+ '0xffff00ff'
604
+ );
605
+ missionObject['trig'] = tuple.tObject;
606
+ missionObject['trigrules'] = tuple.trObject;
607
+ mapResourceObject = tuple.mrObject;
608
+ }
609
+ // Sauvegarde de la mission avec scripts injectés
610
+ await jtffci.mizInjectMissionDataFile(
611
+ [
612
+ jtffci.config.general.missionFolder,
613
+ "/",
614
+ path.parse(env_mission).name,
615
+ "/",
616
+ path.basename(env_mission)
617
+ ].join(""),
618
+ { mission: missionObject }
619
+ );
620
+ await jtffci.mizInjectMapResourceFile(
621
+ [
622
+ jtffci.config.general.missionFolder,
623
+ "/",
624
+ path.parse(env_mission).name,
625
+ "/",
626
+ path.basename(env_mission)
627
+ ].join(""),
628
+ { mapResource: mapResourceObject }
629
+ );
630
+ console.log('...Done...');
631
+ return 0;
632
+ });
633
+ }
634
+
635
+
636
+ module.exports = injectScripts
@@ -0,0 +1,9 @@
1
+ function nextversionPrepare(jtffci, configFilePath) {
2
+ const versionObject = jtffci.getVersion();
3
+ versionObject.minor += 1;
4
+ versionObject.releaseSuffix = "snapshot";
5
+
6
+ jtffci.setVersionfromString(jtffci.displayVersion(versionObject), configFilePath);
7
+ }
8
+
9
+ module.exports = nextversionPrepare
@@ -0,0 +1,9 @@
1
+ function release(jtffci, configFilePath) {
2
+ const versionObject = jtffci.getVersion();
3
+ versionObject.releaseSuffix = "";
4
+
5
+ // console.log(jtffci.displayVersion(versionObject));
6
+ jtffci.setVersion(versionObject,configFilePath);
7
+ }
8
+
9
+ module.exports = release;