1 | var configDir = `${process.env['HOME']}/.0n/config.json`;
|
2 | var config = require(configDir);
|
3 | var async = require('async');
|
4 | var inquirer = require('inquirer');
|
5 | var colors = require('colors');
|
6 | var validUrl = require('valid-url');
|
7 | var jsonfile = require('jsonfile')
|
8 |
|
9 | function findSite(name) {
|
10 | var bool = false;
|
11 | config.forEach((value, key) => {
|
12 | if (value.name === name) {
|
13 | bool = true;
|
14 | }
|
15 | })
|
16 | return bool;
|
17 | }
|
18 |
|
19 | function findUrl(url) {
|
20 | var bool = false;
|
21 | config.forEach((value, key) => {
|
22 | if (value.url === url) {
|
23 | bool = true;
|
24 | }
|
25 | })
|
26 | return bool;
|
27 | }
|
28 |
|
29 | var questions = [{
|
30 | type: 'input',
|
31 | name: 'name',
|
32 | message: 'what is your site name!',
|
33 | validate: function (value) {
|
34 | value = value.trim();
|
35 | if (value.length > 0 && !findSite(value)) {
|
36 | return true;
|
37 | }
|
38 | return 'please enter unused name.';
|
39 | }
|
40 | },
|
41 | {
|
42 | type: 'input',
|
43 | name: 'url',
|
44 | message: 'what is the url ?',
|
45 | validate: function (value) {
|
46 |
|
47 | value = value.trim();
|
48 | if (validUrl.isUri(value) && !findUrl(value)) {
|
49 | return true;
|
50 | }
|
51 | return 'please enter correct or unused url.';
|
52 | }
|
53 | }];
|
54 | module.exports = function () {
|
55 | return new Promise((resolve, reject) => {
|
56 | inquirer.prompt(questions).then(function (answers) {
|
57 | config.push(answers);
|
58 | jsonfile.writeFile(configDir, config, function (err) {
|
59 | if (err) {
|
60 | reject(colors.red(err))
|
61 | } else {
|
62 | resolve(colors.bold.green('good job!'))
|
63 | }
|
64 | })
|
65 | });
|
66 | });
|
67 | }
|