Skip to content

Commit f3b78d9

Browse files
committed
Better init
1 parent 9ba0171 commit f3b78d9

File tree

2 files changed

+39
-38
lines changed

2 files changed

+39
-38
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ Logs are also be viewable in Parse Dashboard.
207207

208208
**Want new line delimited JSON error logs (for consumption by CloudWatch, Google Cloud Logging, etc.)?** Pass the `JSON_LOGS` environment variable when starting `parse-server`. Usage :- `JSON_LOGS='1' parse-server --appId APPLICATION_ID --masterKey MASTER_KEY`
209209

210-
## Inside a Docker container (alternate options)
210+
## Inside a Docker container
211211

212212
```
213213
$ git clone https://github.com/parse-community/parse-server

parse-init/init.js

+38-37
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ async function getInstallationsDir() {
3838
]);
3939
target_directory = answer.target_directory;
4040
}
41-
console.log(`This will setup parse-server in ${target_directory}`);
41+
console.log(`This will setup parse-server in ${chalk.bold(target_directory)}`);
4242
await confirm(`Do you want to continue?`);
43-
console.log(`Setting up parse-server in ${target_directory}`);
43+
console.log(`Setting up parse-server in ${chalk.bold(target_directory)}`);
4444
return target_directory;
4545
}
4646

47-
async function getAppConfiguration() {
47+
function getAppConfiguration() {
4848
const questions = [
4949
{
5050
type: 'input',
@@ -74,10 +74,10 @@ async function getAppConfiguration() {
7474
}
7575
];
7676

77-
return await inquirer.prompt(questions);
77+
return inquirer.prompt(questions);
7878
}
7979

80-
async function confirm(message, defaults = true) {
80+
function confirm(message, defaults = true) {
8181
return inquirer.prompt([
8282
{
8383
type: 'confirm',
@@ -95,59 +95,60 @@ async function confirm(message, defaults = true) {
9595
(async function main() {
9696
let target_directory = await getInstallationsDir();
9797
target_directory = path.resolve(target_directory);
98-
if (!fs.existsSync(target_directory)) {
99-
shell.mkdir(target_directory);
100-
}
101-
if (fs.existsSync(`${target_directory}/package.json`)) {
102-
await confirm(`package.json exists\nDo you want to continue? ${chalk.red(`this will erase your configuration`)}`, false);
98+
if (fs.existsSync(target_directory)) {
99+
console.log(chalk.red(`${chalk.bold(target_directory)} already exists.\naborting...`));
100+
process.exit(1);
103101
}
104102

105-
if (fs.existsSync(`${target_directory}/config.js`)) {
106-
await confirm(`config.js exists\nDo you want to continue? \n${chalk.red(`this will erase your configuration`)}`, false);
107-
}
103+
shell.mkdir(target_directory);
104+
108105
const config = await getAppConfiguration();
106+
const {
107+
masterKey,
108+
databaseURI
109+
} = config;
110+
111+
// Cleanup sensitive info
112+
delete config.masterKey;
113+
delete config.databaseURI;
114+
109115
shell.cd(target_directory);
110116

111117
const packageContent = {
112118
scripts: {
113-
start: "parse-server config.js"
119+
start: "node -r dotenv/config node_modules/.bin/parse-server config.js"
114120
}
115121
};
116122
fs.writeFileSync(
117123
target_directory + "/package.json",
118-
JSON.stringify(packageContent, null, 2) + "\n"
124+
JSON.stringify(packageContent, null, 2) + '\n'
119125
);
126+
ok('Added package.json');
120127

121128
fs.writeFileSync(
122-
target_directory + "/config.js",
123-
`module.exports = ` + JSON.stringify(config, null, 2) + ";\n"
129+
target_directory + '/config.js',
130+
'module.exports = ' + JSON.stringify(config, null, 2) + ';\n'
124131
);
132+
ok('Added config.js');
125133

126-
if (fs.existsSync(target_directory + '/cloud')) {
127-
ok('cloud/ exists');
128-
} else {
129-
shell.mkdir(target_directory + '/cloud');
130-
ok('Created cloud/');
131-
}
134+
fs.writeFileSync(
135+
target_directory + '/.env',
136+
`PARSE_SERVER_MASTER_KEY=${masterKey}\nPARSE_SERVER_DATABASE_URI=${databaseURI}\n`
137+
)
138+
ok('Added .env');
132139

133-
if (fs.existsSync(target_directory + '/cloud/main.js')) {
134-
ok('cloud/main.js exists');
135-
} else {
136-
fs.writeFileSync(target_directory + '/cloud/main.js', `// Cloud Code entry point\n`);
137-
ok('Created cloud/main.js');
138-
}
140+
shell.mkdir(target_directory + '/cloud');
141+
ok('Created cloud/');
139142

140-
if (fs.existsSync(target_directory + '/public')) {
141-
ok('public/ exists');
142-
} else {
143-
shell.mkdir(target_directory + '/public');
144-
ok('Created public/');
145-
}
143+
fs.writeFileSync(target_directory + '/cloud/main.js', `// Cloud Code entry point\n`);
144+
ok('Created cloud/main.js');
145+
shell.mkdir(target_directory + '/public');
146+
ok('Created public/');
146147

147148
if (useYarn) {
148-
shell.exec("yarn add parse-server");
149+
shell.exec("yarn add parse-server dotenv");
149150
} else {
150-
shell.exec("npm install parse-server --save");
151+
shell.exec("npm install parse-server dotenv --save");
151152
}
152153

153154
console.log(chalk.green(`parse-server is installed in \n\t${target_directory}!\n`));

0 commit comments

Comments
 (0)