| "use strict"; |
| var __importDefault = (this && this.__importDefault) || function (mod) { |
| return (mod && mod.__esModule) ? mod : { "default": mod }; |
| }; |
| Object.defineProperty(exports, "__esModule", { value: true }); |
| const find_up_1 = __importDefault(require("find-up")); |
| const fs_1 = __importDefault(require("fs")); |
| const path_1 = __importDefault(require("path")); |
| function default_1(cwd) { |
| const foundPath = find_up_1.default.sync('.git', { cwd }); |
| if (foundPath) { |
| const stats = fs_1.default.lstatSync(foundPath); |
| // If it's a .git file resolve path |
| if (stats.isFile()) { |
| // Expect following format |
| // git: pathToGit |
| // On Windows pathToGit can contain ':' (example "gitdir: C:/Some/Path") |
| const gitFileData = fs_1.default.readFileSync(foundPath, 'utf-8'); |
| const gitDir = gitFileData |
| .split(':') |
| .slice(1) |
| .join(':') |
| .trim(); |
| const resolvedGitDir = path_1.default.resolve(path_1.default.dirname(foundPath), gitDir); |
| // For git-worktree, check if commondir file exists and return that path |
| const pathCommonDir = path_1.default.join(resolvedGitDir, 'commondir'); |
| if (fs_1.default.existsSync(pathCommonDir)) { |
| const commondir = fs_1.default.readFileSync(pathCommonDir, 'utf-8').trim(); |
| const resolvedCommonGitDir = path_1.default.join(resolvedGitDir, commondir); |
| return resolvedCommonGitDir; |
| } |
| return resolvedGitDir; |
| } |
| // Else return path to .git directory |
| return foundPath; |
| } |
| return null; |
| } |
| exports.default = default_1; |