alwaysai
Version:
The alwaysAI command-line interface (CLI)
94 lines (87 loc) • 2.69 kB
text/typescript
import { CliLeaf } from '@alwaysai/alwayscli';
import * as logSymbols from 'log-symbols';
import { AppJsonFile } from '../../../core/app';
import { echo } from '../../../util';
export const show = CliLeaf({
name: 'show',
description: `Show your current application analytics configuration`,
action() {
const appCfgFile = AppJsonFile();
const appCfg = appCfgFile.read();
const analytics = appCfg.analytics ? appCfg.analytics : {};
echo(analytics);
}
});
export function printAnalytics(opts: { changed: boolean; analytics? }) {
const { changed, analytics } = opts;
const log = changed
? `${logSymbols.success} Updated analytics configuration.`
: `${logSymbols.warning} Analytics configuration not updated.`;
echo(log);
echo(`analytics: ${JSON.stringify(analytics || {}, null, 2)}`);
}
export const enableCloudPublish = CliLeaf({
name: 'enable-cloud-publish',
description: `Enable analytics cloud publish`,
action() {
const appCfgFile = AppJsonFile();
const result = appCfgFile.update((appCfg) => {
const analytics = appCfg.analytics || {};
appCfg.analytics = { ...analytics, enable_cloud_publish: true };
});
printAnalytics({
changed: result.changed,
analytics: appCfgFile.read().analytics
});
}
});
export const disableCloudPublish = CliLeaf({
name: 'disable-cloud-publish',
description: `Disable analytics cloud publish`,
action() {
const appCfgFile = AppJsonFile();
const result = appCfgFile.update((appCfg) => {
if (appCfg.analytics) {
appCfg.analytics.enable_cloud_publish = false;
}
});
printAnalytics({
changed: result.changed,
analytics: appCfgFile.read().analytics
});
}
});
export const enableFilePublish = CliLeaf({
name: 'enable-file-publish',
description: `Enable analytics file publish`,
action() {
const appCfgFile = AppJsonFile();
const result = appCfgFile.update((appCfg) => {
if (!appCfg.analytics) {
appCfg.analytics = { enable_file_publish: true };
} else {
appCfg.analytics.enable_file_publish = true;
}
});
printAnalytics({
changed: result.changed,
analytics: appCfgFile.read().analytics
});
}
});
export const disableFilePublish = CliLeaf({
name: 'disable-file-publish',
description: `Disable analytics file publish`,
action() {
const appCfgFile = AppJsonFile();
const result = appCfgFile.update((appCfg) => {
if (appCfg.analytics) {
appCfg.analytics.enable_file_publish = false;
}
});
printAnalytics({
changed: result.changed,
analytics: appCfgFile.read().analytics
});
}
});