This repository has been archived by the owner on Sep 16, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbin.js
82 lines (73 loc) · 2.53 KB
/
bin.js
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#! /usr/bin/env node
const { program } = require('commander');
const path = require('path');
const fs = require('fs');
const version = require('./package.json').version;
const constants = require('./src/constants');
const logger = require('./src/logger');
const app = require('./index');
program
.usage("swagger-version-tag [OPTIONS]")
.version(version)
.option('-f, --file <file>', 'config file name. default is ' + constants.defaultFileName, constants.defaultFileName)
.option('-s, --service-name <service>', 'run command for specific service', constants.allServices)
.option('-c, --command <command>', 'command to run. default is ' + constants.defaultCommand, constants.defaultCommand)
.option('-o, --out <out>', 'output file. default is ' + constants.outputFileName, constants.outputFileName)
.parse(process.argv);
function readConfigFile(fileName) {
const absPath = path.resolve(process.cwd(), fileName)
if (!fs.existsSync(absPath)) {
logger.fatal("file does not exist on disk. please make sure about that")
logger.error("path: " + absPath)
process.exit(1)
}
try {
let raw = fs.readFileSync(absPath)
let config = JSON.parse(raw)
return config
} catch (error) {
logger.error(error.toString())
process.exit(1)
}
}
function createOptions() {
return {
command: program.command,
serviceName: program.serviceName,
out: program.out,
dir: process.cwd(),
appDir: path.dirname(process.argv[1])
}
};
function printTagsOut(tags) {
logger.info("************Services status************\n")
function printTag(name, data) {
logger.success("-- " + name + ":")
logger.info("-- message -- " + data.message)
logger.info("-- hash -- " + data.hash)
logger.info("-- date -- " + data.date)
logger.warning("- - - - - - - - - - - - - - - - -\n")
}
for (const key of Object.keys(tags)) {
printTag(key, tags[key])
}
logger.info("\n***********END*************")
}
(async function init() {
const config = readConfigFile(program.file)
const options = createOptions()
let tags
try {
tags = await app(config, options)
if (options.command == "tag") {
printTagsOut(tags)
logger.success("tags generation completed")
}
else {
logger.success("operatiorn completed successfuly")
}
} catch (error) {
logger.fatal(error.toString())
process.exit(1);
}
})()