addGitDiff method

Future<bool> addGitDiff({
  1. String? ref,
  2. bool staged = false,
})

Add git diff to context.

Implementation

Future<bool> addGitDiff({String? ref, bool staged = false}) async {
  try {
    final args = staged
        ? ['diff', '--staged']
        : ref != null
        ? ['diff', ref]
        : ['diff'];

    final result = await Process.run('git', args);
    if (result.exitCode == 0) {
      final diff = (result.stdout as String).trim();
      if (diff.isNotEmpty) {
        return add(
          GitDiffContext(
            diff: diff,
            description: staged
                ? 'staged changes'
                : ref != null
                ? 'diff vs $ref'
                : 'unstaged changes',
          ),
        );
      }
    }
  } catch (_) {}
  return false;
}