@edgedev/create-edge-app 1.0.12 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/cli.js +58 -58
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
console.log('Script started')
|
|
3
3
|
const { execSync } = require('child_process')
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const fs = require('fs')
|
|
5
|
+
const readline = require('readline')
|
|
6
6
|
|
|
7
7
|
const runCommand = (command) => {
|
|
8
8
|
try {
|
|
@@ -16,57 +16,57 @@ const runCommand = (command) => {
|
|
|
16
16
|
return true
|
|
17
17
|
}
|
|
18
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
|
-
|
|
19
|
+
const promptForProjectId = () => {
|
|
20
|
+
const rl = readline.createInterface({
|
|
21
|
+
input: process.stdin,
|
|
22
|
+
output: process.stdout,
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
rl.question('Please enter your Firebase project ID: ', (projectId) => {
|
|
27
|
+
rl.close()
|
|
28
|
+
resolve(projectId)
|
|
29
|
+
})
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const initializeFirebase = async (projectId, repoName) => {
|
|
34
|
+
if (!projectId) {
|
|
35
|
+
console.error('Error: Firebase project ID cannot be empty.')
|
|
36
|
+
process.exit(1)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
try {
|
|
40
|
+
execSync('firebase --version', { stdio: 'inherit' })
|
|
41
|
+
}
|
|
42
|
+
catch (err) {
|
|
43
|
+
console.error('Firebase CLI could not be found. Please install it and try again.')
|
|
44
|
+
process.exit(1)
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const pathToFirebaseJson = `${repoName}/firebase.json`
|
|
48
|
+
const pathToFirestoreRules = `${repoName}/firestore.rules`
|
|
49
|
+
|
|
50
|
+
if (fs.existsSync(pathToFirebaseJson)) {
|
|
51
|
+
fs.renameSync(pathToFirebaseJson, `${pathToFirebaseJson}.temp`)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (fs.existsSync(pathToFirestoreRules)) {
|
|
55
|
+
fs.renameSync(pathToFirestoreRules, `${pathToFirestoreRules}.temp`)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
console.log(`Initializing Firebase for ${repoName}...`)
|
|
59
|
+
runCommand(`cd ${repoName} && firebase init firestore functions hosting storage emulators --project default`)
|
|
60
|
+
runCommand(`cd ${repoName} && firebase use --add ${projectId} --alias default`)
|
|
61
|
+
|
|
62
|
+
if (fs.existsSync(`${pathToFirebaseJson}.temp`)) {
|
|
63
|
+
fs.renameSync(`${pathToFirebaseJson}.temp`, pathToFirebaseJson)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (fs.existsSync(`${pathToFirestoreRules}.temp`)) {
|
|
67
|
+
fs.renameSync(`${pathToFirestoreRules}.temp`, pathToFirestoreRules)
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
70
|
|
|
71
71
|
const repoName = process.argv[2]
|
|
72
72
|
const gitCheckoutCommand = `git clone --depth 1 https://github.com/Edge-Marketing-and-Design/edgeApp.git ${repoName}`
|
|
@@ -93,9 +93,9 @@ if (!installedFunctionDeps) {
|
|
|
93
93
|
|
|
94
94
|
console.log(`Successfully created ${repoName}!`)
|
|
95
95
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
const main = async () => {
|
|
97
|
+
const projectId = await promptForProjectId()
|
|
98
|
+
await initializeFirebase(projectId, repoName)
|
|
99
|
+
}
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
main()
|