UNPKG

1.42 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3'use strict'
4var fs = require('fs');
5var path = require('path');
6
7var copyFile = function(srcFile, destFile) {
8 var content = fs.readFileSync(srcFile, 'utf8');
9 fs.writeFileSync(destFile, content, 'utf8');
10}
11
12if(process.argv[process.argv.length-1] == 'init'){
13 console.log('Initializing ServiceNow Skeleton Project');
14
15 var appRoot = process.cwd();
16
17 var copyFiles = ['servicenowconfig.js', 'src/tsconfig.json', 'typings.json', 'tslint.json'];
18 var sourceRoot = path.relative(appRoot, path.dirname(path.dirname(process.argv[1])));
19
20 copyFiles.forEach(file => {
21 var dest = path.join(appRoot, path.basename(file));
22 if(!fs.existsSync(dest)){
23 copyFile(path.join(sourceRoot, file), dest);
24 }
25 });
26
27 var gulpFileDest = path.join(appRoot, 'gulpfile.js');
28 var content = "require('require-dir')('" + path.normalize(path.join(sourceRoot, "dist")).replace(/\\/g, '\\\\') + "')";
29 if(fs.existsSync(gulpFileDest)){
30 content = fs.readFileSync(gulpFileDest, 'utf8') + '\r\n' + content;
31 }
32
33 fs.writeFileSync(gulpFileDest, content);
34
35 console.info("Init complete. You may also need to run 'typings install' to finish setting up the skeleton");
36}
37else{
38 console.info('Valid Commands:');
39 console.info('init : Initializes the current directory for the servicenow skeleton project');
40}
\No newline at end of file