UNPKG

1.6 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3
4
5const fs = require('fs-extra');
6
7const services = [{
8 coin: 'Bitcoin Cash',
9 lib: '@owstack/bch-lib',
10 dir: 'bch-service'
11}, {
12 coin: 'Bitcoin',
13 lib: '@owstack/btc-lib',
14 dir: 'btc-service'
15}, {
16 coin: 'Litecoin',
17 lib: '@owstack/ltc-lib',
18 dir: 'ltc-service'
19}];
20
21const cmd = process.argv[2];
22switch (cmd) {
23 case 'create': createServices(); break;
24 case 'clean': cleanServices(); break;
25 default: help();
26}
27
28function help() {
29 console.log('usage: services [create | clean]');
30}
31
32function createServices() {
33 console.log('Creating service libraries...');
34 services.forEach(function (s) {
35 const d = `${__dirname }/../${ s.dir}`;
36 copyDir(`${__dirname }/../service-template`, d);
37
38 const content = `const cLib = require('${ s.lib }'); module.exports = cLib;`;
39 fs.writeFileSync(`${s.dir }/cLib.js`, content, 'utf8');
40
41 console.log(` > ${ s.coin } (${ s.lib }) at ./${ s.dir}`);
42 });
43}
44
45function cleanServices() {
46 console.log('Deleting service libraries...');
47 let count = 0;
48 services.forEach(function (s) {
49 const d = `${__dirname }/../${ s.dir}`;
50 if (fs.existsSync(d)) {
51 fs.removeSync(d);
52 count++;
53 console.log(` > ${ s.coin } from ./${ s.dir}`);
54 }
55 });
56
57 if (count == 0) {
58 console.log(' > nothing to do');
59 }
60}
61
62function copyDir(from, to) {
63 if (!fs.existsSync(from)) {
64 return;
65 }
66 if (fs.existsSync(to)) {
67 fs.removeSync(to);
68 }
69 fs.copySync(from, to);
70}