6

I have a post-receive hook that is running as user 'git'. I have a virtualenv /python/ve//bin/activate that is readable by git. Running:

source /python/ve/<name>/bin/activate

works fine for a user in the git group.

When it runs as a post-receive hook after a push, I get the error "source: not found".

I'm not sure where else to look - any hints much appreciated.

Dan D.
  • 73,243
  • 15
  • 104
  • 123
willcritchlow
  • 721
  • 3
  • 7
  • 18

1 Answers1

14

This is something of a guess, since you haven't quoted your complete post-receive hook, but I suspect that you don't have a shebang line pointing to /bin/bash at the top. Your post-receive hook should begin:

#!/bin/bash

I suspect this because if I run a strict Bourne shell, like dash, I get the same error when trying to source anything with source.

Mark Longair
  • 446,582
  • 72
  • 411
  • 327
  • Brilliant. Thank you. I had accidentally had /bin/sh as I'd copied it from another person's hook. I'd just changed the shell for the git user, but forgot about the shebang line. Thank you for such a quick accurate answer. – willcritchlow Apr 29 '11 at 08:48
  • No problem - it's very easy to do :) – Mark Longair Apr 29 '11 at 08:54