13

I want to call a Script that is located in the repository.

I could of course do the following:

#!/bin/sh
../../myscript.sh

but I think thats not nice ;)

so how do I get the path of my project within the post-commit script?

kmindi
  • 3,904
  • 3
  • 28
  • 44

1 Answers1

23

When you're dealing with a non-bare repository, the post-commit1 hook is run with a current working directory of the working tree of the repository. So, you don't need the ../../.

If you want the full path of the script, you could always do:

SCRIPT=$(readlink -nf myscript.sh)

... or you could use git rev-parse --show-toplevel to get an absolute path to the working directory:

SCRIPT=$(git rev-parse --show-toplevel)/myscript.sh

1 ... but note that this is not true of some other hooks, e.g. in a post-receive hook in a non-bare repository, the current working directory is the .git directory.

Joe Holloway
  • 26,963
  • 15
  • 79
  • 92
Mark Longair
  • 415,589
  • 70
  • 403
  • 320
  • thank you. I did not know that it was already in the right directory, could have tried it before to figure it out by myself.. ;) – kmindi Mar 09 '11 at 16:34