-
Notifications
You must be signed in to change notification settings - Fork 2
/
cli.js
45 lines (40 loc) · 1.47 KB
/
cli.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
#!/usr/bin/env node
const program = require("commander");
const ora = require("ora");
const { status, wake } = require(".");
program
.version("1.0.0")
.description("Keep your Cloud9 workspaces running without hot workspaces.")
.option("-u, --user [value]", "The user the workspace is hosted under")
.option("-w, --workspace [value]", "The target workspace’s name")
.parse(process.argv);
const { user, workspace } = program;
if(!user || !workspace) {
console.log("Both a user and workspace name need to be specified.");
process.exit(1);
}
const spinner = ora({
spinner: "dots12",
text: "Connecting to workspace..."
}).start();
(async () => {
const result = await wake(user, workspace);
switch(result) {
case status.SUCCESS:
spinner.succeed(`Successfully woke up workspace ${user}/${workspace}!`);
break;
case status.CREDENTIALS_NOT_FOUND:
spinner.fail("Couldn’t find Cloud9 credentials. Did you set up the `C9_EMAIL` and `C9_PASSWORD` environment variables yet?");
break;
case status.CREDENTIALS_INVALID:
spinner.fail("Supplied credentials were invalid.");
break;
case status.WORKSPACE_NOT_FOUND:
spinner.fail("Couldn’t seem to find that workspace.");
break;
case status.WORKSPACE_INACCESSIBLE:
spinner.fail("Couldn’t access that workspace.");
break;
}
process.exit(result);
})();