1
1
const fs = require("fs");
2
2
const path = require("path");
3
+ const { localConfig, globalConfig } = require("./config");
4
+ const { success, log } = require('./parser')
5
+ const readline = require('readline');
6
+ const cp = require('child_process');
3
7
4
8
function getAllFiles(folder) {
5
9
const files = [];
6
- for(const pathDir of fs.readdirSync(folder)) {
10
+ for (const pathDir of fs.readdirSync(folder)) {
7
11
const pathAbsolute = path.join(folder, pathDir);
8
12
if (fs.statSync(pathAbsolute).isDirectory()) {
9
13
files.push(...getAllFiles(pathAbsolute));
@@ -14,6 +18,60 @@ function getAllFiles(folder) {
14
18
return files;
15
19
}
16
20
21
+ function showConsoleLink(serviceName, action, id = '') {
22
+ let resource = '';
23
+ let service = '';
24
+
25
+ switch (serviceName) {
26
+ case "account":
27
+ service = 'account';
28
+ break;
29
+ case "databases":
30
+ resource = 'database';
31
+ service = 'databases';
32
+ break;
33
+ case "functions":
34
+ resource = 'function';
35
+ service = 'functions';
36
+ break;
37
+ case "projects":
38
+ service = `project-${id}`;
39
+ id = '';
40
+ break;
41
+ case "teams":
42
+ resource = 'team';
43
+ service = 'auth/teams';
44
+ break;
45
+
46
+ case "users":
47
+ resource = 'user';
48
+ service = 'auth';
49
+ break;
50
+ default:
51
+ return;
52
+ }
53
+
54
+ const baseUrl = globalConfig.getEndpoint().replace('/v1', '');
55
+
56
+ const end = action === 'get' ? (id ? `/${resource}-${id}` : `/${resource}`) : '';
57
+ const projectId = localConfig.getProject().projectId;
58
+ const middle = resource !== '' ? `/project-${projectId}` : '';
59
+ const url = `${baseUrl}/console${middle}/${service}${end}`
60
+
61
+ const start = (process.platform == 'darwin' ? 'open' : process.platform == 'win32' ? 'start' : 'xdg-open');
62
+ const key = (process.platform == 'darwin' ? 'Return' : 'Enter');
63
+
64
+ success(`\n ${url}\n Press < ${key}> to open URL in your default browser, exising in 3 seconds`);
65
+ setTimeout(() => process.exit(0), 3000);
66
+
67
+ const read = readline.createInterface({ input: process.stdin, output: process.stdout });
68
+ read.on('line', () => {
69
+ cp.exec(`${start} ${url}`);
70
+ setTimeout(() => process.exit(0), 250);
71
+ });
72
+ }
73
+
17
74
module.exports = {
18
- getAllFiles
75
+ getAllFiles,
76
+ showConsoleLink
19
77
};
0 commit comments