Skip to content

Commit 1ba26c9

Browse files
authored
refactor: split telemetry command into subcommands and enable by default (#58)
1 parent 8dad16d commit 1ba26c9

File tree

5 files changed

+61
-85
lines changed

5 files changed

+61
-85
lines changed

packages/cli/src/commands/telemetry.ts

Lines changed: 0 additions & 84 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { Command } from "@oclif/core";
2+
import { setGlobalTelemetryPreference, getGlobalTelemetryPreference } from "../../utils/globalConfig";
3+
import { withTelemetry } from "../../telemetry";
4+
5+
export default class TelemetryDisable extends Command {
6+
static description = "Disable telemetry collection";
7+
8+
async run() {
9+
return withTelemetry(this, async () => {
10+
const currentPreference = getGlobalTelemetryPreference();
11+
if (currentPreference === false) {
12+
this.log("\nTelemetry is already disabled");
13+
return;
14+
}
15+
16+
setGlobalTelemetryPreference(false);
17+
this.log("\nTelemetry disabled");
18+
});
19+
}
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { Command } from "@oclif/core";
2+
import { setGlobalTelemetryPreference, getGlobalTelemetryPreference } from "../../utils/globalConfig";
3+
import { withTelemetry } from "../../telemetry";
4+
5+
export default class TelemetryEnable extends Command {
6+
static description = "Enable telemetry collection";
7+
8+
async run() {
9+
return withTelemetry(this, async () => {
10+
const currentPreference = getGlobalTelemetryPreference();
11+
if (currentPreference === true) {
12+
this.log("\nTelemetry is already enabled");
13+
return;
14+
}
15+
16+
setGlobalTelemetryPreference(true);
17+
this.log("\nTelemetry enabled");
18+
});
19+
}
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { Command } from "@oclif/core";
2+
import { getGlobalTelemetryPreference } from "../../utils/globalConfig";
3+
import { withTelemetry } from "../../telemetry";
4+
5+
export default class TelemetryStatus extends Command {
6+
static description = "Show current telemetry status";
7+
8+
async run() {
9+
return withTelemetry(this, async () => {
10+
const globalPreference = getGlobalTelemetryPreference();
11+
if (globalPreference === undefined) {
12+
this.log("Telemetry: Enabled (default)");
13+
} else if (globalPreference) {
14+
this.log("Telemetry: Enabled");
15+
} else {
16+
this.log("Telemetry: Disabled");
17+
}
18+
});
19+
}
20+
}

packages/cli/src/telemetry.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export function createCLITelemetryClient(): TelemetryClient {
3333
const telemetryEnabled = getGlobalTelemetryPreference();
3434

3535
return createTelemetryClient(environment, "ecloud-cli", {
36-
telemetryEnabled: telemetryEnabled === true, // Only enabled if explicitly set to true
36+
telemetryEnabled: telemetryEnabled !== false, // Enabled by default, disabled only if explicitly set to false
3737
});
3838
}
3939

0 commit comments

Comments
 (0)