‘liusuyi’
2023-08-09 161b9318e345c8a0c9cdc133b33a1c759495f323
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
'use strict'
 
const fs = require('fs')
const path = require('path')
const findParent = require('./find-parent')
 
function findHooksDir(dir) {
  if (dir) {
    let gitDir = path.join(dir, '.git')
    if (!fs.existsSync(gitDir)) {
      return
    }
 
    const stats = fs.lstatSync(gitDir)
 
    if (stats.isFile()) {
      // Expect following format
      // git: pathToGit
      // On Windows pathToGit can contain ':' (example "gitdir: C:/Some/Path")
      const gitFileData = fs.readFileSync(gitDir, 'utf-8')
      gitDir = gitFileData
        .split(':')
        .slice(1)
        .join(':')
        .trim()
    }
 
    return path.resolve(dir, gitDir, 'hooks')
  }
}
 
module.exports = findHooksDir