From d9a84f47da8bc1eb3ec6af1aea65f1a78ef4523d Mon Sep 17 00:00:00 2001 From: Justin Ma Date: Fri, 31 Jan 2025 20:51:29 +0800 Subject: [PATCH] refactor: Extracted git repo check into is-repo custom command (#64) --- nu/review.nu | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/nu/review.nu b/nu/review.nu index 8f2cc29..05b4a3d 100644 --- a/nu/review.nu +++ b/nu/review.nu @@ -197,8 +197,7 @@ export def git-check [ } # If we don't need repo check just quit now if ($check_repo != 0) { - let checkRepo = (do -i { git rev-parse --is-inside-work-tree } | complete) - if not ($checkRepo.stdout =~ 'true') { + if not (is-repo) { print $'Current directory is (ansi r)NOT(ansi reset) a git repo, bye...(char nl)' exit $ECODE.CONDITION_NOT_SATISFIED } @@ -206,12 +205,21 @@ export def git-check [ true } +# Check if current directory is a git repo +export def is-repo [] { + let checkRepo = try { + do -i { git rev-parse --is-inside-work-tree } | complete + } catch { + ({ stdout: 'false' }) + } + if ($checkRepo.stdout =~ 'true') { true } else { false } +} + # Check if a git repo has the specified ref: could be a branch or tag, etc. export def has-ref [ ref: string # The git ref to check ] { - let checkRepo = (do -i { git rev-parse --is-inside-work-tree } | complete) - if not ($checkRepo.stdout =~ 'true') { return false } + if not (is-repo) { return false } # Brackets were required here, or error will occur let parse = (do -i { git rev-parse --verify -q $ref } | complete) if ($parse.stdout | is-empty) { false } else { true }