UNPKG

1.45 kBJavaScriptView Raw
1var configDir = `${process.env['HOME']}/.0n/config.json`;
2var config = require(configDir);
3var async = require('async');
4var inquirer = require('inquirer');
5var colors = require('colors');
6var validUrl = require('valid-url');
7var jsonfile = require('jsonfile')
8
9function 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
19function 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
29var 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}];
54module.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}