mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-17 23:52:36 +00:00
42 lines
1.4 KiB
TypeScript
42 lines
1.4 KiB
TypeScript
/**
|
|
* Status Command
|
|
*
|
|
* Shows the indexing status of the current repository.
|
|
*/
|
|
|
|
import { findRepo, getStoragePaths, hasKuzuIndex } from '../storage/repo-manager.js';
|
|
import { getCurrentCommit, isGitRepo, getGitRoot } from '../storage/git.js';
|
|
import { t } from './i18n/index.js';
|
|
|
|
export const statusCommand = async () => {
|
|
const cwd = process.cwd();
|
|
|
|
if (!isGitRepo(cwd)) {
|
|
console.log(t('status.notGitRepo'));
|
|
return;
|
|
}
|
|
|
|
const repo = await findRepo(cwd);
|
|
if (!repo) {
|
|
// Check if there's a stale KuzuDB index that needs migration
|
|
const repoRoot = getGitRoot(cwd) ?? cwd;
|
|
const { storagePath } = getStoragePaths(repoRoot);
|
|
if (await hasKuzuIndex(storagePath)) {
|
|
console.log(t('status.staleKuzu'));
|
|
console.log(t('status.rebuildLadybug'));
|
|
} else {
|
|
console.log(t('status.repoNotIndexed'));
|
|
console.log(t('common.runAnalyzeShort'));
|
|
}
|
|
return;
|
|
}
|
|
|
|
const currentCommit = getCurrentCommit(repo.repoPath);
|
|
const isUpToDate = currentCommit === repo.meta.lastCommit;
|
|
|
|
console.log(`${t('status.repository')}: ${repo.repoPath}`);
|
|
console.log(`${t('status.indexed')}: ${new Date(repo.meta.indexedAt).toLocaleString()}`);
|
|
console.log(`${t('status.indexedCommit')}: ${repo.meta.lastCommit?.slice(0, 7)}`);
|
|
console.log(`${t('status.currentCommit')}: ${currentCommit?.slice(0, 7)}`);
|
|
console.log(`${t('status.status')}: ${isUpToDate ? t('status.upToDate') : t('status.stale')}`);
|
|
};
|