-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
124 lines (120 loc) · 3.79 KB
/
index.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
// Packages needed for this application
const fs = require("fs");
const inquirer = require("inquirer");
const path = require("path");
const generateMarkdown = require("./utils/generateMarkdown");
// Array of questions for user input
const questions = [
{
// User's GitHub Name
type: "input",
name: "github",
message: "What is your GitHub username? (Required)",
validate: githubInput => {
if (githubInput) {
return true;
} else {
console.log("Please enter your GitHub username!");
return false;
}
}
},
{
// User's email address
type: "input",
name: "email",
message: "Enter your email address where you can be reached for questions"
},
{
// Title of the project
type: "input",
name: "title",
message: "What is the title of the project? (Required)",
validate: descriptionInput => {
if (descriptionInput) {
return true;
} else {
console.log("You need to enter a project title!");
return false;
};
}
},
{
// Description of the project
type: "input",
name: "description",
message: "Provide a description of the project (Required)",
validate: descriptionInput => {
if (descriptionInput) {
return true;
} else {
console.log("You need to enter a project description!");
return false;
};
}
},
{
// Installation information
type: "input",
name: "installation",
message: "What are the steps required to install your project? Provide a step-by-step description of how to get the development environment running."
},
{
// Usage information
type: "input",
name: "usage",
message: "Provide instructions and examples for use."
},
{
// Deployed application link
type: "input",
name: "deployed",
message: "Enter the deployed application link"
},
{
// What coding languages did you use?
type: "checkbox",
name: "languages",
message: "What languages did you use for this project? (Check all that apply)",
choices: ["JavaScript", "HTML", "CSS", "jQuery", "Bootstrap", "Node"]
},
{
// Screenshot
type: "input",
name: "screenshot",
message: "Enter the URL to your application/webpage screenshot"
},
{
// Licensing information
type: "list",
name: "license",
message: "Which license would you like to use?",
choices: ["None", "MIT", "Apache 2.0", "GNU"]
},
{
// Contributing information
type: "input",
name: "contributing",
message: "If you would like other developers to contribute to this project, add guidelines for how to do so."
},
{
// Tests
type: "input",
name: "tests",
message: "If you wrote tests for your application, explain how to run them. If not, leave this blank."
},
];
// Function to write README file
function writeToFile(fileName, data) {
// Uses the node path module & process.cwd function to join the current working directory to the file name passed to it from the init function
return fs.writeFileSync(path.join(process.cwd(), fileName), data);
};
// Function to initialize the application
function init() {
inquirer.prompt(questions).then(inquirerResponses => {
console.log("Your README file is now being generated. You will find the completed file in the 'dist' folder.")
writeToFile("/dist/README.md", generateMarkdown({ ...inquirerResponses }));
})
};
// Function call to initialize app
init();