-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.ts
46 lines (38 loc) · 1.51 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env node
import { execSync } from 'child_process';
import {dirname, resolve} from 'path';
import {cpSync, existsSync, mkdirSync} from 'fs';
import yargs from 'yargs';
function ensureDirectoryExistence(filePath) {
const dirName = dirname(filePath);
if(existsSync(dirName))
return true;
mkdirSync(dirName, { recursive: true });
}
function copy(src: string, dst: string) {
ensureDirectoryExistence(dst);
cpSync(src, dst, {recursive: true});
console.log('Copied: '+dst);
}
function execute(script: string) {
console.log('> '+script);
execSync(script, {stdio: 'inherit'});
}
function setupFin(args) {
console.log('@nez-fin/setup v1.0.0\n');
const templateTypescript = args.hasOwnProperty('typescriptTemplate');
const scriptExtenstion = templateTypescript ? 'ts' : 'js';
const publicDir = resolve(__dirname, './template/public');
const rootDir = resolve(__dirname, './template/root');
const srcDir = resolve(__dirname, './template/'+scriptExtenstion);
const dstDir = resolve(__dirname, process.cwd()+'/');
console.log('Template: '+(templateTypescript ? 'typescript' : 'javascript'));
copy(resolve(srcDir, 'index.'+scriptExtenstion), resolve(dstDir, 'index.'+scriptExtenstion));
copy(resolve(srcDir, 'webpack.config.js'), resolve(dstDir, 'webpack.config.js'));
copy(resolve(srcDir, 'package.json'), resolve(dstDir, 'package.json'));
copy(publicDir, resolve(dstDir, 'public'));
copy(rootDir, dstDir);
console.log('');
execute('npm install');
}
setupFin(yargs(process.argv).parse());