-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinit.js
More file actions
73 lines (53 loc) · 2.34 KB
/
init.js
File metadata and controls
73 lines (53 loc) · 2.34 KB
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
/* eslint-disable global-require, no-console */
const fs = require('fs');
const shell = require('shelljs'); // eslint-disable-line
/* ************************************************************ */
module.exports = {
prepare: {
app: (project, environment = 'dev') => {
let config;
if (project) {
const $config = require('./environment/config');
config = $config[Object.keys($config).find(k => $config[k].projectId === project)];
} else {
config = require('./environment/config')[environment];
}
const source1 = './app/app.js';
fs.readFile(source1, 'utf8', (err1, data) => {
if (err1) { throw err1; }
const $data = data.replace(/(const config = )[^;]+(;)/g, `$1${JSON.stringify(config)}$2`);
fs.writeFile(source1, $data, err2 => {
if (err2) { throw err2; }
console.log('\n\u001B[1m\x1b[32m\u2713 \u001B[1m%s\x1b[0m', `utils.prepare.app \u2192 ${project || environment} \u2192 ${source1}`);
});
});
const source2 = './.firebaserc';
fs.readFile(source2, 'utf8', (err1, data) => {
if (err1) { throw err1; }
const $data = data.replace(/("default": ")[^"]+(")/g, `$1${config.projectId}$2`);
fs.writeFile(source2, $data, err2 => {
if (err2) { throw err2; }
console.log('\n\u001B[1m\x1b[32m\u2713 \u001B[1m%s\x1b[0m', `utils.prepare.app \u2192 ${project || environment} \u2192 ${source2}`);
});
});
},
storage: project => {
const source = './storage/rules.fire';
fs.readFile(source, 'utf8', (err1, data) => {
if (err1) { throw err1; }
const $data = data.replace(/(\/b\/)[a-z0-9-]{0,30}(.appspot.com\/o)/g, `$1${project}$2`);
fs.writeFile(source, $data, err2 => {
if (err2) { throw err2; }
console.log('\n\u001B[1m\x1b[32m\u2713 \u001B[1m%s\x1b[0m', `utils.prepare.storage \u2192 ${project} \u2192 ${source}`);
});
});
},
},
deploy: target => {
const environment = /test/.test(process.env.NODE_ENV) ? 'test' : 'dev';
const project = require('./environment/config')[environment].projectId;
return shell.exec(`PROJECT=${project} npm run deploy:${target}`, () =>
console.log('\n\u001B[1m\x1b[32m\u2713 \u001B[1m%s\x1b[0m', `utils.deploy.${target} \u2192 ${project}`),
);
},
};