refactor(lmc): remove intermediate vars and directly access CLI args

This commit is contained in:
mitchell 2026-06-27 03:31:03 -04:00
parent 4aaa80898d
commit a8cbfb3665

View file

@ -38,30 +38,22 @@ async function main() {
allowPositionals: true, allowPositionals: true,
}); });
const newConvo = args.new;
const plainOut = args["plain-out"] ?? args.plain ?? !process.stdout.isTTY; const plainOut = args["plain-out"] ?? args.plain ?? !process.stdout.isTTY;
const plainErr = args["plain-err"] ?? args.plain ?? !process.stderr.isTTY; const plainErr = args["plain-err"] ?? args.plain ?? !process.stderr.isTTY;
const modelOverride = args.model;
const showVersion = args.version;
const editConfig = args.config;
const generateGitMessage = args["git-message"];
const generateReview = args.review;
const inputFiles = args.file;
const stdinContent = args.stdin;
if (showVersion) { if (args.version) {
console.log("0.0.0"); console.log("0.0.0");
return; return;
} }
const config = await loadConfig(editConfig); const config = await loadConfig(args.config);
if (editConfig || !config) { if (args.config || !config) {
await initConfig(config); await initConfig(config);
return; return;
} }
const model = modelOverride ?? config.model; const model = args.model ?? config.model;
const renderer = new Renderer(plainOut, plainErr); const renderer = new Renderer(plainOut, plainErr);
@ -74,25 +66,25 @@ async function main() {
const convo = new Conversation(model); const convo = new Conversation(model);
if (!newConvo) { if (!args.new) {
await convo.load(); await convo.load();
if (modelOverride) convo.model = modelOverride; if (args.model) convo.model = args.model;
} }
const input = positionals.join(" ").trim(); const input = positionals.join(" ").trim();
let stdinText = ""; let stdinText = "";
if (stdinContent) stdinText = await consumers.text(process.stdin); if (args.stdin) stdinText = await consumers.text(process.stdin);
const files = []; const files = [];
for (const file of inputFiles ?? []) for (const file of args.file ?? [])
files.push(fileFence(file, await fs.readFile(file, "utf8"))); files.push(fileFence(file, await fs.readFile(file, "utf8")));
let prompt = base(input, [ let prompt = base(input, [
...files, ...files,
stdinText ? contextFence(stdinText) : "", stdinText ? contextFence(stdinText) : "",
]); ]);
if (generateGitMessage) { if (args["git-message"]) {
prompt = commitDiff(stdinText, [...files]); prompt = commitDiff(stdinText, [...files]);
} else if (generateReview) { } else if (args.review) {
prompt = review([...files, stdinText ? diffFence(stdinText) : "", input]); prompt = review([...files, stdinText ? diffFence(stdinText) : "", input]);
} }