mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-03-10 16:37:40 +00:00
35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
import { spawn } from 'child_process';
|
|
|
|
function spawnAsync(command, args) {
|
|
return new Promise((resolve, reject) => {
|
|
const child = spawn(command, args, { shell: false });
|
|
let stdout = '';
|
|
child.stdout.on('data', (data) => { stdout += data.toString(); });
|
|
child.on('error', (error) => { reject(error); });
|
|
child.on('close', (code) => {
|
|
if (code === 0) { resolve({ stdout }); return; }
|
|
reject(new Error(`Command failed with code ${code}`));
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Read git configuration from system's global git config
|
|
* @returns {Promise<{git_name: string|null, git_email: string|null}>}
|
|
*/
|
|
export async function getSystemGitConfig() {
|
|
try {
|
|
const [nameResult, emailResult] = await Promise.all([
|
|
spawnAsync('git', ['config', '--global', 'user.name']).catch(() => ({ stdout: '' })),
|
|
spawnAsync('git', ['config', '--global', 'user.email']).catch(() => ({ stdout: '' }))
|
|
]);
|
|
|
|
return {
|
|
git_name: nameResult.stdout.trim() || null,
|
|
git_email: emailResult.stdout.trim() || null
|
|
};
|
|
} catch (error) {
|
|
return { git_name: null, git_email: null };
|
|
}
|
|
}
|