Skip to content

Commit 175cec6

Browse files
committed
Added options to init stack
1 parent 452d4ac commit 175cec6

File tree

2 files changed

+61
-23
lines changed

2 files changed

+61
-23
lines changed

bin/lib/init.js

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,29 +31,9 @@ module.exports = function (program) {
3131
// Prompt to the user
3232
inquirer.prompt(questions)
3333
.then((answers) => {
34-
// setting email
35-
if (answers.useEmail) {
36-
answers.email = {
37-
host: answers['email-host'],
38-
port: answers['email-port'],
39-
secure: true,
40-
auth: {
41-
user: answers['email-auth-user'],
42-
pass: answers['email-auth-pass']
43-
}
44-
}
45-
delete answers['email-host']
46-
delete answers['email-port']
47-
delete answers['email-auth-user']
48-
delete answers['email-auth-pass']
49-
}
50-
51-
// clean answers
52-
Object.keys(answers).forEach((answer) => {
53-
if (answer.startsWith('use')) {
54-
delete answers[answer]
55-
}
56-
})
34+
manipulateEmailSection(answers)
35+
manipulateServerSection(answers)
36+
cleanupAnswers(answers)
5737

5838
// write config file
5939
const config = JSON.stringify(camelize(answers), null, ' ')
@@ -71,3 +51,44 @@ module.exports = function (program) {
7151
})
7252
})
7353
}
54+
55+
function cleanupAnswers (answers) {
56+
// clean answers
57+
Object.keys(answers).forEach((answer) => {
58+
if (answer.startsWith('use')) {
59+
delete answers[answer]
60+
}
61+
})
62+
}
63+
64+
function manipulateEmailSection (answers) {
65+
// setting email
66+
if (answers.useEmail) {
67+
answers.email = {
68+
host: answers['email-host'],
69+
port: answers['email-port'],
70+
secure: true,
71+
auth: {
72+
user: answers['email-auth-user'],
73+
pass: answers['email-auth-pass']
74+
}
75+
}
76+
delete answers['email-host']
77+
delete answers['email-port']
78+
delete answers['email-auth-user']
79+
delete answers['email-auth-pass']
80+
}
81+
}
82+
83+
function manipulateServerSection (answers) {
84+
answers.server = {
85+
name: answers['server-name'],
86+
description: answers['server-description'],
87+
logo: answers['server-logo']
88+
}
89+
Object.keys(answers).forEach((answer) => {
90+
if (answer.startsWith('server-')) {
91+
delete answers[answer]
92+
}
93+
})
94+
}

bin/lib/options.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const fs = require('fs')
22
const path = require('path')
33
const validUrl = require('valid-url')
4+
const { URL } = require('url')
45

56
module.exports = [
67
// {
@@ -317,6 +318,22 @@ module.exports = [
317318
}
318319
return true
319320
}
321+
},
322+
{
323+
name: 'server-name',
324+
help: 'A name for your server (not required, but will be presented on your server\'s frontpage)',
325+
prompt: true,
326+
default: answers => new URL(answers.serverUri).hostname
327+
},
328+
{
329+
name: 'server-description',
330+
help: 'A description of your server (not required)',
331+
prompt: true
332+
},
333+
{
334+
name: 'server-logo',
335+
help: 'A logo that represents you, your brand or your server (not required)',
336+
prompt: true
320337
}
321338
]
322339

0 commit comments

Comments
 (0)