UNPKG

@codewithmehmet/paul-cli

Version:

Intelligent project file scanner and Git change tracker with interactive interface

68 lines (64 loc) 1.85 kB
import { getGitDiff, formatGitStatus, getGitCommitDiff } from '../core/git.js'; /** * Génère l'en-tête markdown pour les changements Git */ export function generateDiffHeader(branch, commitInfo = null) { const output = []; output.push('# Git Changes'); output.push(''); output.push('## 📊 Information'); output.push(`- 🌿 Branch: ${branch}`); if (commitInfo) { if (commitInfo.mode === 'since') { output.push(`- 📝 Since commit: ${commitInfo.commit}`); } else { output.push(`- 📝 Commit: ${commitInfo.commit}`); } } output.push(''); return output; } /** * Génère le markdown pour un changement avec diff */ export function generateSingleChangeWithDiff(change, diff) { const output = []; output.push(`### ${formatGitStatus(change.status)} \`${change.file}\``); if (diff && diff.trim()) { output.push('```diff'); output.push(diff.trim()); output.push('```'); output.push(''); } return output; } /** * Génère le markdown pour un changement de commit */ export function generateCommitChange(change, commitHash) { const output = []; output.push(`#### ${formatGitStatus(change.status)} \`${change.file}\``); const diff = getGitCommitDiff(change.file, commitHash); if (diff && diff.trim()) { output.push('```diff'); output.push(diff.trim()); output.push('```'); output.push(''); } return output; } /** * Génère le markdown pour un changement actuel (staged/unstaged) */ export function generateCurrentChange(change, isStaged) { const output = []; output.push(`#### ${formatGitStatus(change.status)} \`${change.file}\``); const diff = getGitDiff(change.file, isStaged); if (diff && diff.trim()) { output.push('```diff'); output.push(diff.trim()); output.push('```'); output.push(''); } return output; }