/usr/share/httpd/sent: Permission denied (errno=13)
Hi, I would like, if someone could help me how to setup my post-commit script to work. I have set up my svn server on Centos 7, and I have installed tortoise svn client for my Windows PC. Commiting and updating works fine, but, when i try to set post-commit script to send mail when someone commit some file, i get the error : /usr/share/httpd/sent: Permission denied (errno=13) . Any hint would be very helpful? Regards, Mike
Could you share your post-commit hook script? Please redact anything sensitive...
Hi DougR, Well I tried every single answer I could find, on how to modify post-commit script. Now, I am on the beggining again. I have installed SVN, from this site : https://www.vultr.com/docs/how-to-setup-an-apache-subversion-svn-server-on-centos-7, so my post-commit.tmpl is default now, and it looks like this : #!/bin/sh # POST-COMMIT HOOK # # The post-commit hook is invoked after a commit. Subversion runs # this hook by invoking a program (script, executable, binary, etc.) # named 'post-commit' (for which this file is a template) with the # following ordered arguments: # #  REPOS-PATH (the path to this repository) #  REV (the number of the revision just committed) # # The default working directory for the invocation is undefined, so # the program should set one explicitly if it cares. # # Because the commit has already completed and cannot be undone, # the exit code of the hook program is ignored. The hook program # can use the 'svnlook' utility to help it examine the # newly-committed tree. # # On a Unix system, the normal procedure is to have 'post-commit' # invoke other programs to do the real work, though it may do the # work itself too. # # Note that 'post-commit' must be executable by the user(s) who will # invoke it (typically the user httpd runs as), and that user must # have filesystem-level permission to access the repository. # # On a Windows system, you should name the hook program # 'post-commit.bat' or 'post-commit.exe', # but the basic idea is the same. # # The hook program typically does not inherit the environment of # its parent process. For example, a common problem is for the # PATH environment variable to not be set to its usual value, so # that subprograms fail to launch unless invoked via absolute path. # If you're having unexpected problems with a hook program, the # culprit may be unusual (or missing) environment variables. # # Here is an example hook script, for a Unix /bin/sh interpreter. # For more examples and pre-written hooks, see those in # the Subversion repository at # http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/ and # http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/ REPOS="$1" REV="$2" mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf Regards, Mike
So, writing good hook scripts is something that requires that you understand the environment in which the script will execute. First, the very 1st line in the file should be "#!/bin/bash --noprofile" for reliability's sake. Second, you should set the PATH environment variable at the beginning of the script to include all directories that you will be using executables from. The simple name "mailer.py" needs to be found in the PATH. And, given its name, I would expect that it will require a "#!" line that invokes the python interpreter. I also have to assume that you're going to fix up the last argument to the "mailer.py" script to point to an actual configuration file for that script (strange to me that it's the last argument - but perhaps that's just me). In this I'm assuming that your system does not have a file located in "/path/to/mailer.conf". In general, you can debug hook scripts by dumping their STDOUT/STDERR into a file. Again, you'll need to know your bash scripting to do this but it is relatively simple.
1-4 of 4
Reply to this discussion
You cannot edit posts or make replies: You should be logged in before you can post.