f15383213637c253e15702dc44121401d90cb3aa37b2d7362d0686595844d949f7f5ec5a4251279b425284bbf909b46196ff7f6cdcb8a2191a075b09f92618 700 B

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