@chiendt/ack-cli 1.0.1-dev.2 → 1.0.1-dev.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli-manifest.json +88 -2
- package/dist/index.js +93 -19
- package/package.json +1 -1
package/cli-manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.0.1-dev.
|
|
3
|
-
"generatedAt": "2026-05-
|
|
2
|
+
"version": "1.0.1-dev.6",
|
|
3
|
+
"generatedAt": "2026-05-22T07:47:43.075Z",
|
|
4
4
|
"commands": {
|
|
5
5
|
"agents": {
|
|
6
6
|
"name": "agents",
|
|
@@ -1810,6 +1810,92 @@
|
|
|
1810
1810
|
}
|
|
1811
1811
|
]
|
|
1812
1812
|
}
|
|
1813
|
+
],
|
|
1814
|
+
"subcommands": [
|
|
1815
|
+
{
|
|
1816
|
+
"name": "install",
|
|
1817
|
+
"description": "Run skills dependency install script (install.sh / install.ps1)",
|
|
1818
|
+
"usage": "ack setup install [options]",
|
|
1819
|
+
"examples": [
|
|
1820
|
+
{
|
|
1821
|
+
"command": "ack setup install",
|
|
1822
|
+
"description": "Run install script in ./.claude/skills"
|
|
1823
|
+
},
|
|
1824
|
+
{
|
|
1825
|
+
"command": "ack setup install --global",
|
|
1826
|
+
"description": "Run install script in ~/.claude/skills"
|
|
1827
|
+
},
|
|
1828
|
+
{
|
|
1829
|
+
"command": "ack setup install --dir /custom/path --with-sudo",
|
|
1830
|
+
"description": "Custom dir with sudo for system packages"
|
|
1831
|
+
}
|
|
1832
|
+
],
|
|
1833
|
+
"optionGroups": [
|
|
1834
|
+
{
|
|
1835
|
+
"title": "Options",
|
|
1836
|
+
"options": [
|
|
1837
|
+
{
|
|
1838
|
+
"flags": "--global",
|
|
1839
|
+
"description": "Use ~/.claude/skills"
|
|
1840
|
+
},
|
|
1841
|
+
{
|
|
1842
|
+
"flags": "--dir <dir>",
|
|
1843
|
+
"description": "Custom skills directory"
|
|
1844
|
+
},
|
|
1845
|
+
{
|
|
1846
|
+
"flags": "--with-sudo",
|
|
1847
|
+
"description": "Allow sudo for system packages (Linux)"
|
|
1848
|
+
},
|
|
1849
|
+
{
|
|
1850
|
+
"flags": "-y, --yes",
|
|
1851
|
+
"description": "Skip confirmation prompts"
|
|
1852
|
+
}
|
|
1853
|
+
]
|
|
1854
|
+
}
|
|
1855
|
+
]
|
|
1856
|
+
}
|
|
1857
|
+
]
|
|
1858
|
+
},
|
|
1859
|
+
"setup install": {
|
|
1860
|
+
"name": "setup install",
|
|
1861
|
+
"description": "Run skills dependency install script (install.sh / install.ps1)",
|
|
1862
|
+
"usage": "ack setup install [options]",
|
|
1863
|
+
"examples": [
|
|
1864
|
+
{
|
|
1865
|
+
"command": "ack setup install",
|
|
1866
|
+
"description": "Run install script in ./.claude/skills"
|
|
1867
|
+
},
|
|
1868
|
+
{
|
|
1869
|
+
"command": "ack setup install --global",
|
|
1870
|
+
"description": "Run install script in ~/.claude/skills"
|
|
1871
|
+
},
|
|
1872
|
+
{
|
|
1873
|
+
"command": "ack setup install --dir /custom/path --with-sudo",
|
|
1874
|
+
"description": "Custom dir with sudo for system packages"
|
|
1875
|
+
}
|
|
1876
|
+
],
|
|
1877
|
+
"optionGroups": [
|
|
1878
|
+
{
|
|
1879
|
+
"title": "Options",
|
|
1880
|
+
"options": [
|
|
1881
|
+
{
|
|
1882
|
+
"flags": "--global",
|
|
1883
|
+
"description": "Use ~/.claude/skills"
|
|
1884
|
+
},
|
|
1885
|
+
{
|
|
1886
|
+
"flags": "--dir <dir>",
|
|
1887
|
+
"description": "Custom skills directory"
|
|
1888
|
+
},
|
|
1889
|
+
{
|
|
1890
|
+
"flags": "--with-sudo",
|
|
1891
|
+
"description": "Allow sudo for system packages (Linux)"
|
|
1892
|
+
},
|
|
1893
|
+
{
|
|
1894
|
+
"flags": "-y, --yes",
|
|
1895
|
+
"description": "Skip confirmation prompts"
|
|
1896
|
+
}
|
|
1897
|
+
]
|
|
1898
|
+
}
|
|
1813
1899
|
]
|
|
1814
1900
|
},
|
|
1815
1901
|
"skills": {
|
package/dist/index.js
CHANGED
|
@@ -63692,7 +63692,7 @@ var package_default;
|
|
|
63692
63692
|
var init_package = __esm(() => {
|
|
63693
63693
|
package_default = {
|
|
63694
63694
|
name: "@chiendt/ack-cli",
|
|
63695
|
-
version: "1.0.1-dev.
|
|
63695
|
+
version: "1.0.1-dev.6",
|
|
63696
63696
|
description: "ACK CLI - tool for bootstrapping and updating ACK kits (Claude Code agent kits)",
|
|
63697
63697
|
type: "module",
|
|
63698
63698
|
repository: {
|
|
@@ -67614,7 +67614,8 @@ var init_config_version_checker = __esm(() => {
|
|
|
67614
67614
|
CACHE_TTL_MS = parseCacheTtl();
|
|
67615
67615
|
KIT_REPOS = {
|
|
67616
67616
|
engineer: { owner: "ack", repo: "ack-engineer" },
|
|
67617
|
-
marketing: { owner: "ack", repo: "claudekit-marketing" }
|
|
67617
|
+
marketing: { owner: "ack", repo: "claudekit-marketing" },
|
|
67618
|
+
"fqc-qa": { owner: "chiendt1108", repo: "ack-fqc-qa" }
|
|
67618
67619
|
};
|
|
67619
67620
|
});
|
|
67620
67621
|
|
|
@@ -76521,9 +76522,9 @@ async function listActiveWorktrees(projectDir) {
|
|
|
76521
76522
|
for (const line of output2.split(`
|
|
76522
76523
|
`)) {
|
|
76523
76524
|
if (line.startsWith("worktree ")) {
|
|
76524
|
-
const
|
|
76525
|
-
if (
|
|
76526
|
-
const num = Number.parseInt(
|
|
76525
|
+
const path10 = line.slice(9).replace(/\\/g, "/");
|
|
76526
|
+
if (path10.startsWith(worktreePrefix)) {
|
|
76527
|
+
const num = Number.parseInt(path10.slice(worktreePrefix.length), 10);
|
|
76527
76528
|
if (!Number.isNaN(num))
|
|
76528
76529
|
issueNumbers.push(num);
|
|
76529
76530
|
}
|
|
@@ -80968,9 +80969,45 @@ var init_projects_command_help = __esm(() => {
|
|
|
80968
80969
|
};
|
|
80969
80970
|
});
|
|
80970
80971
|
|
|
80972
|
+
// src/domains/help/commands/setup-install-command-help.ts
|
|
80973
|
+
var setupInstallCommandHelp;
|
|
80974
|
+
var init_setup_install_command_help = __esm(() => {
|
|
80975
|
+
setupInstallCommandHelp = {
|
|
80976
|
+
name: "setup install",
|
|
80977
|
+
description: "Run skills dependency install script (install.sh / install.ps1)",
|
|
80978
|
+
usage: "ack setup install [options]",
|
|
80979
|
+
examples: [
|
|
80980
|
+
{
|
|
80981
|
+
command: "ack setup install",
|
|
80982
|
+
description: "Run install script in ./.claude/skills"
|
|
80983
|
+
},
|
|
80984
|
+
{
|
|
80985
|
+
command: "ack setup install --global",
|
|
80986
|
+
description: "Run install script in ~/.claude/skills"
|
|
80987
|
+
},
|
|
80988
|
+
{
|
|
80989
|
+
command: "ack setup install --dir /custom/path --with-sudo",
|
|
80990
|
+
description: "Custom dir with sudo for system packages"
|
|
80991
|
+
}
|
|
80992
|
+
],
|
|
80993
|
+
optionGroups: [
|
|
80994
|
+
{
|
|
80995
|
+
title: "Options",
|
|
80996
|
+
options: [
|
|
80997
|
+
{ flags: "--global", description: "Use ~/.claude/skills" },
|
|
80998
|
+
{ flags: "--dir <dir>", description: "Custom skills directory" },
|
|
80999
|
+
{ flags: "--with-sudo", description: "Allow sudo for system packages (Linux)" },
|
|
81000
|
+
{ flags: "-y, --yes", description: "Skip confirmation prompts" }
|
|
81001
|
+
]
|
|
81002
|
+
}
|
|
81003
|
+
]
|
|
81004
|
+
};
|
|
81005
|
+
});
|
|
81006
|
+
|
|
80971
81007
|
// src/domains/help/commands/setup-command-help.ts
|
|
80972
81008
|
var setupCommandHelp;
|
|
80973
81009
|
var init_setup_command_help = __esm(() => {
|
|
81010
|
+
init_setup_install_command_help();
|
|
80974
81011
|
setupCommandHelp = {
|
|
80975
81012
|
name: "setup",
|
|
80976
81013
|
description: "Run guided setup for provider API keys, preferred image provider, and optional packages",
|
|
@@ -81008,6 +81045,15 @@ var init_setup_command_help = __esm(() => {
|
|
|
81008
81045
|
}
|
|
81009
81046
|
]
|
|
81010
81047
|
}
|
|
81048
|
+
],
|
|
81049
|
+
subcommands: [
|
|
81050
|
+
{
|
|
81051
|
+
name: "install",
|
|
81052
|
+
description: setupInstallCommandHelp.description,
|
|
81053
|
+
usage: setupInstallCommandHelp.usage,
|
|
81054
|
+
examples: setupInstallCommandHelp.examples,
|
|
81055
|
+
optionGroups: setupInstallCommandHelp.optionGroups
|
|
81056
|
+
}
|
|
81011
81057
|
]
|
|
81012
81058
|
};
|
|
81013
81059
|
});
|
|
@@ -81395,6 +81441,7 @@ var init_commands2 = __esm(() => {
|
|
|
81395
81441
|
init_plan_command_help();
|
|
81396
81442
|
init_projects_command_help();
|
|
81397
81443
|
init_setup_command_help();
|
|
81444
|
+
init_setup_install_command_help();
|
|
81398
81445
|
init_skills_command_help();
|
|
81399
81446
|
init_uninstall_command_help();
|
|
81400
81447
|
init_update_command_help();
|
|
@@ -81425,6 +81472,7 @@ var init_help_commands = __esm(() => {
|
|
|
81425
81472
|
plan: planCommandHelp,
|
|
81426
81473
|
projects: projectsCommandHelp,
|
|
81427
81474
|
setup: setupCommandHelp,
|
|
81475
|
+
"setup install": setupInstallCommandHelp,
|
|
81428
81476
|
skills: skillsCommandHelp,
|
|
81429
81477
|
uninstall: uninstallCommandHelp,
|
|
81430
81478
|
update: updateCommandHelp,
|
|
@@ -100152,7 +100200,7 @@ init_types3();
|
|
|
100152
100200
|
var import_fs_extra17 = __toESM(require_lib(), 1);
|
|
100153
100201
|
async function writeManifest(claudeDir3, kitName, version, scope, kitType, trackedFiles, userConfigFiles) {
|
|
100154
100202
|
const metadataPath = join111(claudeDir3, "metadata.json");
|
|
100155
|
-
const kit = kitType || (/\bmarketing\b/i.test(kitName) ? "marketing" : "engineer");
|
|
100203
|
+
const kit = kitType || (/\bfqc[\s_-]?qa\b/i.test(kitName) ? "fqc-qa" : /\bmarketing\b/i.test(kitName) ? "marketing" : "engineer");
|
|
100156
100204
|
await import_fs_extra17.ensureFile(metadataPath);
|
|
100157
100205
|
let release = null;
|
|
100158
100206
|
try {
|
|
@@ -108963,6 +109011,22 @@ async function setupCommand(options2) {
|
|
|
108963
109011
|
f2.success(`Installed packages: ${ctx.packagesInstalled.join(", ")}`);
|
|
108964
109012
|
}
|
|
108965
109013
|
}
|
|
109014
|
+
// src/commands/setup/setup-install-command.ts
|
|
109015
|
+
init_package_installer();
|
|
109016
|
+
init_logger();
|
|
109017
|
+
init_path_resolver();
|
|
109018
|
+
import path9 from "node:path";
|
|
109019
|
+
async function setupInstallCommand(options2) {
|
|
109020
|
+
if (options2.dir && options2.global) {
|
|
109021
|
+
logger.error("--dir and --global are mutually exclusive. Use one or the other.");
|
|
109022
|
+
process.exit(1);
|
|
109023
|
+
}
|
|
109024
|
+
const resolvedDir = options2.dir ? path9.resolve(options2.dir) : PathResolver.buildSkillsPath(options2.global ? PathResolver.getGlobalKitDir() : process.cwd(), !!options2.global);
|
|
109025
|
+
await handleSkillsInstallation(resolvedDir, {
|
|
109026
|
+
skipConfirm: !!options2.yes,
|
|
109027
|
+
withSudo: !!options2.withSudo
|
|
109028
|
+
});
|
|
109029
|
+
}
|
|
108966
109030
|
// src/commands/skills/skills-command.ts
|
|
108967
109031
|
init_dist2();
|
|
108968
109032
|
init_skill_catalog_generator();
|
|
@@ -112355,6 +112419,9 @@ function registerCommands(cli) {
|
|
|
112355
112419
|
cli.command("setup", "Configure API keys and optional packages").option("--global", "Configure globally (~/.claude/)").option("--skip-packages", "Skip optional package installation").option("--dir <dir>", "Target directory (default: current directory)").action(async (options2) => {
|
|
112356
112420
|
await setupCommand(options2);
|
|
112357
112421
|
});
|
|
112422
|
+
cli.command("setup install", "Run skills dependency install script").option("--global", "Use ~/.claude/skills").option("--dir <dir>", "Custom skills directory").option("--with-sudo", "Allow sudo for system packages (Linux)").option("-y, --yes", "Skip confirmation prompts").action(async (options2) => {
|
|
112423
|
+
await setupInstallCommand(options2);
|
|
112424
|
+
});
|
|
112358
112425
|
cli.command("skills", "Install AckKit skills to other coding agents").option("-n, --name <skill>", "Skill name to install/uninstall").option("-a, --agent <agents...>", "Target agents (claude-code, cursor, codex, etc.)").option("-g, --global", "Install/uninstall globally instead of project-level").option("-l, --list", "List available skills").option("--installed", "Show installed skills (use with --list)").option("--all", "Install to all supported agents").option("-u, --uninstall", "Uninstall skill(s)").option("--force", "Force uninstall even if not in registry").option("--sync", "Sync registry with filesystem (remove orphans)").option("-y, --yes", "Skip confirmation prompts").option("--catalog", "Show skill catalog stats").option("--regenerate", "Force regenerate catalog (use with --catalog)").option("--search <query>", "BM25 full-text search over skill catalog").option("--json", "Output search results as JSON (use with --search)").option("--limit <n>", "Max search results, default 10 (use with --search)").option("--validate", "Validate SKILL.md frontmatter fields").action(async (options2) => {
|
|
112359
112426
|
if (options2.agent && !Array.isArray(options2.agent)) {
|
|
112360
112427
|
options2.agent = [options2.agent];
|
|
@@ -112379,8 +112446,8 @@ function registerCommands(cli) {
|
|
|
112379
112446
|
cli.command("plan [action] [target]", "Plan management: parse, validate, status, kanban, create, check, uncheck, add-phase").option("--json", "Output in JSON format").option("--strict", "Strict validation mode").option("--port <port>", "Port for kanban dashboard").option("--no-open", "Don't auto-open browser").option("--dev", "Development mode for dashboard").option("-g, --global", "Use global plans scope (~/.claude/plans or configured global root)").option("--title <title>", "Plan title (for create)").option("--phases <phases>", "Comma-separated phase names (for create)").option("--dir <dir>", "Plan directory (for create)").option("--priority <priority>", "Priority: P1, P2, P3 (for create)").option("--issue <issue>", "GitHub issue number (for create)").option("--after <after>", "Insert after phase ID (for add-phase)").option("--start", "Mark as in-progress instead of completed (for check)").option("--source <source>", "Creation source: skill | cli | dashboard (for create)").option("--session-id <id>", "Claude session ID for tracking (for create)").action(async (action, target, options2) => {
|
|
112380
112447
|
await planCommand(action, target, options2);
|
|
112381
112448
|
});
|
|
112382
|
-
cli.command("api [action] [service] [path]", "Interact with AckKit API and proxy services").option("--method <method>", "HTTP method for proxy requests (default: GET)").option("--body <json>", "Request body as JSON string (proxy only)").option("--query <json>", "Query params as JSON string (proxy only)").option("--key <key>", "API key to use (setup only)").option("--force", "Force re-setup even if key exists (setup only)").option("--json", "Output raw JSON instead of formatted display").option("--locale <locale>", "Locale for vidcap summary/caption (default: en)").option("--max-results <n>", "Max results for vidcap search").option("--second <s>", "Timestamp in seconds for vidcap screenshot").option("--order <order>", "Sort order for vidcap comments (time/relevance)").option("--format <fmt>", "Summary format for reviewweb (bullet/paragraph)").option("--max-length <n>", "Max summary length for reviewweb").option("--instructions <text>", "Extraction instructions for reviewweb extract").option("--template <json>", "JSON template for reviewweb extract").option("--type <type>", "Link type filter for reviewweb links (web/image/file/all)").option("--country <code>", "Country code for reviewweb SEO commands").action(async (action, service,
|
|
112383
|
-
await apiCommand(action, service,
|
|
112449
|
+
cli.command("api [action] [service] [path]", "Interact with AckKit API and proxy services").option("--method <method>", "HTTP method for proxy requests (default: GET)").option("--body <json>", "Request body as JSON string (proxy only)").option("--query <json>", "Query params as JSON string (proxy only)").option("--key <key>", "API key to use (setup only)").option("--force", "Force re-setup even if key exists (setup only)").option("--json", "Output raw JSON instead of formatted display").option("--locale <locale>", "Locale for vidcap summary/caption (default: en)").option("--max-results <n>", "Max results for vidcap search").option("--second <s>", "Timestamp in seconds for vidcap screenshot").option("--order <order>", "Sort order for vidcap comments (time/relevance)").option("--format <fmt>", "Summary format for reviewweb (bullet/paragraph)").option("--max-length <n>", "Max summary length for reviewweb").option("--instructions <text>", "Extraction instructions for reviewweb extract").option("--template <json>", "JSON template for reviewweb extract").option("--type <type>", "Link type filter for reviewweb links (web/image/file/all)").option("--country <code>", "Country code for reviewweb SEO commands").action(async (action, service, path10, options2) => {
|
|
112450
|
+
await apiCommand(action, service, path10, options2);
|
|
112384
112451
|
});
|
|
112385
112452
|
cli.command("migrate", "Migrate agents, commands, skills, config, rules, and hooks to other providers").option("-a, --agent <agents...>", "Target providers (cursor, codex, droid, opencode, etc.)").option("-g, --global", "Install globally instead of project-level").option("--all", "Migrate to all supported providers").option("-y, --yes", "Skip confirmation prompts").option("--only-agents", "Migrate agents only").option("--only-commands", "Migrate commands only").option("--only-skills", "Migrate skills only").option("--config", "Migrate CLAUDE.md config only").option("--rules", "Migrate .claude/rules/ only").option("--hooks", "Migrate .claude/hooks/ only").option("--skip-agents", "Skip agents migration").option("--skip-commands", "Skip commands migration").option("--skip-skills", "Skip skills migration (preserve symlinks/custom layouts)").option("--skip-config", "Skip config migration").option("--skip-rules", "Skip rules migration").option("--skip-hooks", "Skip hooks migration").option("--source <path>", "Custom CLAUDE.md source path (config only, not agents/commands/skills/hooks)").option("--dry-run", "Preview migration targets without writing files").option("-f, --force", "Force reinstall deleted/edited items").option("--install", "Opt-in install picker mode (select specific items to install)").option("--reconcile", "Force reconcile mode (current default when registry is valid)").option("--reinstall-empty-dirs", "Reinstall all items when their type directory is empty (default: true)").option("--respect-deletions", "Preserve deletion even when type directory is empty (disables reinstall-empty-dirs)").action(async (options2) => {
|
|
112386
112453
|
if (options2.agent && !Array.isArray(options2.agent)) {
|
|
@@ -112480,10 +112547,13 @@ class VersionCacheManager {
|
|
|
112480
112547
|
|
|
112481
112548
|
// src/domains/versioning/checking/kit-version-checker.ts
|
|
112482
112549
|
init_version_utils();
|
|
112483
|
-
async function fetchLatestRelease(currentVersion) {
|
|
112550
|
+
async function fetchLatestRelease(currentVersion, kitType) {
|
|
112484
112551
|
try {
|
|
112485
112552
|
const githubClient = new GitHubClient;
|
|
112486
|
-
const kit = AVAILABLE_KITS
|
|
112553
|
+
const kit = AVAILABLE_KITS[kitType];
|
|
112554
|
+
if (!kit) {
|
|
112555
|
+
throw new Error(`Unsupported kit type: ${kitType}`);
|
|
112556
|
+
}
|
|
112487
112557
|
const timeoutPromise = new Promise((_4, reject) => setTimeout(() => reject(new Error("Timeout")), 5000));
|
|
112488
112558
|
const releasePromise = githubClient.getLatestRelease(kit);
|
|
112489
112559
|
const release = await Promise.race([releasePromise, timeoutPromise]);
|
|
@@ -112504,7 +112574,7 @@ async function fetchLatestRelease(currentVersion) {
|
|
|
112504
112574
|
}
|
|
112505
112575
|
|
|
112506
112576
|
class VersionChecker {
|
|
112507
|
-
static async check(currentVersion) {
|
|
112577
|
+
static async check(currentVersion, kitType) {
|
|
112508
112578
|
if (isUpdateCheckDisabled()) {
|
|
112509
112579
|
logger.debug("Update check disabled by environment");
|
|
112510
112580
|
return null;
|
|
@@ -112520,7 +112590,7 @@ class VersionChecker {
|
|
|
112520
112590
|
};
|
|
112521
112591
|
}
|
|
112522
112592
|
logger.debug("Cache expired or invalid, fetching latest release");
|
|
112523
|
-
const result = await fetchLatestRelease(currentVersion);
|
|
112593
|
+
const result = await fetchLatestRelease(currentVersion, kitType);
|
|
112524
112594
|
if (result) {
|
|
112525
112595
|
await VersionCacheManager.save({
|
|
112526
112596
|
lastCheck: Date.now(),
|
|
@@ -112648,8 +112718,8 @@ function displayCliNotification(result) {
|
|
|
112648
112718
|
}
|
|
112649
112719
|
// src/domains/versioning/version-checker.ts
|
|
112650
112720
|
class VersionChecker2 {
|
|
112651
|
-
static async check(currentVersion) {
|
|
112652
|
-
return VersionChecker.check(currentVersion);
|
|
112721
|
+
static async check(currentVersion, kitType) {
|
|
112722
|
+
return VersionChecker.check(currentVersion, kitType);
|
|
112653
112723
|
}
|
|
112654
112724
|
static displayNotification(result, options2 = {}) {
|
|
112655
112725
|
displayKitNotification(result, options2);
|
|
@@ -112688,7 +112758,11 @@ function getInstalledKitTypes(metadata) {
|
|
|
112688
112758
|
return Object.keys(metadata.kits);
|
|
112689
112759
|
}
|
|
112690
112760
|
function inferLegacyKitType(metadata) {
|
|
112691
|
-
|
|
112761
|
+
const name = metadata.name ?? "";
|
|
112762
|
+
if (/\bfqc[\s_-]?qa\b/i.test(name)) {
|
|
112763
|
+
return "fqc-qa";
|
|
112764
|
+
}
|
|
112765
|
+
if (/\bmarketing\b/i.test(name)) {
|
|
112692
112766
|
return "marketing";
|
|
112693
112767
|
}
|
|
112694
112768
|
return "engineer";
|
|
@@ -112841,18 +112915,18 @@ class Logger2 {
|
|
|
112841
112915
|
isVerbose() {
|
|
112842
112916
|
return this.verboseEnabled;
|
|
112843
112917
|
}
|
|
112844
|
-
setLogFile(
|
|
112918
|
+
setLogFile(path10) {
|
|
112845
112919
|
if (this.logFileStream) {
|
|
112846
112920
|
this.logFileStream.end();
|
|
112847
112921
|
this.logFileStream = undefined;
|
|
112848
112922
|
}
|
|
112849
|
-
if (
|
|
112850
|
-
this.logFileStream = createWriteStream5(
|
|
112923
|
+
if (path10) {
|
|
112924
|
+
this.logFileStream = createWriteStream5(path10, {
|
|
112851
112925
|
flags: "a",
|
|
112852
112926
|
mode: 384
|
|
112853
112927
|
});
|
|
112854
112928
|
this.registerExitHandler();
|
|
112855
|
-
this.verbose(`Logging to file: ${
|
|
112929
|
+
this.verbose(`Logging to file: ${path10}`);
|
|
112856
112930
|
}
|
|
112857
112931
|
}
|
|
112858
112932
|
close() {
|