mirror of
https://github.com/KeygraphHQ/shannon.git
synced 2026-06-30 18:45:34 +02:00
181f24cfcc
Restructure into apps/worker, apps/cli, packages/mcp-server with Turborepo task orchestration, pnpm workspaces, Biome linting/formatting, and tsdown CLI bundling. Key changes: - src/ -> apps/worker/src/, cli/ -> apps/cli/, mcp-server/ -> packages/mcp-server/ - prompts/ and configs/ moved into apps/worker/ - npm replaced with pnpm, package-lock.json replaced with pnpm-lock.yaml - Dockerfile updated for pnpm-based builds - CLI logs command rewritten with chokidar for cross-platform reliability - Router health checking added for auto-detected router mode - Centralized path resolution via apps/worker/src/paths.ts
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
/**
|
|
* `shn uninstall` command — remove ~/.shannon/ after confirmation (npx only).
|
|
*/
|
|
|
|
import fs from 'node:fs';
|
|
import os from 'node:os';
|
|
import path from 'node:path';
|
|
import * as p from '@clack/prompts';
|
|
import { stopInfra, stopWorkers } from '../docker.js';
|
|
|
|
const SHANNON_HOME = path.join(os.homedir(), '.shannon');
|
|
|
|
export async function uninstall(): Promise<void> {
|
|
p.intro('Shannon Uninstall');
|
|
|
|
if (!fs.existsSync(SHANNON_HOME)) {
|
|
p.log.info('Nothing to remove. Shannon is not configured on this machine.');
|
|
p.outro('Done.');
|
|
return;
|
|
}
|
|
|
|
const confirmed = await p.confirm({
|
|
message: 'This will permanently remove all past scan data, saved configurations, and API keys. Continue?',
|
|
});
|
|
if (p.isCancel(confirmed) || !confirmed) {
|
|
p.cancel('Aborted.');
|
|
process.exit(0);
|
|
}
|
|
|
|
// Stop any running containers first
|
|
stopWorkers();
|
|
stopInfra(false);
|
|
|
|
fs.rmSync(SHANNON_HOME, { recursive: true, force: true });
|
|
p.log.success('All Shannon data has been removed.');
|
|
p.outro('Shannon has been uninstalled. Run `npx @keygraph/shannon setup` to start fresh.');
|
|
}
|