UNPKG

@lenne.tech/cli

Version:

lenne.Tech CLI: lt

93 lines (92 loc) 4.18 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const fs_1 = require("fs"); const path_1 = require("path"); const caddy_1 = require("../../lib/caddy"); const dev_service_1 = require("../../lib/dev-service"); /** * Symmetric counterpart to `lt dev install`. * * Removes the LaunchAgent / systemd-user unit, stops the running Caddy * daemon, and optionally purges all lt-dev state (Caddyfile, logs). * * What it does NOT touch: * - the caddy binary itself (`brew uninstall caddy` remains the * user's choice — we don't presume they want to drop the tool) * - per-project state under `<project>/.lt-dev/` (use `lt dev down`) * - the trusted CA in the system keychain (use * `sudo -E HOME="$HOME" caddy untrust` if desired) * * Flags: * --purge — also remove ~/.lenneTech/Caddyfile and caddy logs * --noConfirm — skip the purge confirmation prompt */ const UninstallCommand = { alias: ['un'], description: 'Remove lt dev Caddy service', hidden: false, name: 'uninstall', run: (toolbox) => __awaiter(void 0, void 0, void 0, function* () { const { parameters, print: { colors, error, info, success, warning }, prompt: { confirm }, } = toolbox; info(''); info(colors.bold('lt dev uninstall — remove the lt-dev Caddy service')); info(colors.dim('─'.repeat(60))); const plat = (0, dev_service_1.platformSupported)(); if (plat === 'unsupported') { info('No managed service to remove on this platform.'); if (!parameters.options.fromGluegunMenu) process.exit(0); return 'dev uninstall: nothing to do'; } const paths = (0, dev_service_1.getServicePaths)(); const result = yield (0, dev_service_1.uninstallService)(); if (!result.ok) { error(result.message); if (!parameters.options.fromGluegunMenu) process.exit(1); return 'dev uninstall: failed'; } if (result.removed.length === 0) { info(colors.dim('Service was not installed.')); } else { success(`Removed: ${result.removed.join(', ')}`); } // Optional purge of related state files. const purge = Boolean(parameters.options.purge) || (!parameters.options.noConfirm && (yield confirm('Also remove the Caddyfile and lt-dev caddy logs?', false))); if (purge) { const toRemove = [caddy_1.paths.caddyfile, paths.logFile, paths.errFile, (0, path_1.join)(paths.logFile, '..', 'ports.json')]; for (const file of toRemove) { if ((0, fs_1.existsSync)(file)) { try { (0, fs_1.unlinkSync)(file); success(`Removed ${file}`); } catch (e) { warning(`Failed to remove ${file}: ${e.message}`); } } } } else { info(colors.dim(`Kept: ${caddy_1.paths.caddyfile}`)); info(colors.dim(`Kept: ${paths.logFile}`)); } info(''); info(`To reinstall: ${colors.cyan('lt dev install')}. To also remove caddy itself: ${colors.cyan('brew uninstall caddy')}.`); if (!parameters.options.fromGluegunMenu) process.exit(0); return 'dev uninstall: ok'; }), }; module.exports = UninstallCommand;