I have a SVN repository server that runs under the repository user. I want to run a script after every post-commit action. I wrote a shell script that runs from the hook after every commit. It needs to be run as root. This is why I used sudo in the script, but it didn't work. Is there any way to run the script as root?
sudo su
echo "password"
svn export --force file:///home/repository/trunk/ /home/memarexweb/public_html/devel/
chmod -R 777 /home/memarexweb/public_html/devel/
I was searching around and found this useful solution:
Edit your sudoers
file to allow running certain commands without a password.
It's best to split your post-commit
script into two parts, one of which will be run through sudo
.
entry in /etc/sudoers
:
loqman ALL=(root) NOPASSWD: /usr/local/bin/svn-postcommit-export
Your post-commit hook:
#!/bin/sh
sudo /usr/local/bin/svn-postcommit-export
Script /usr/local/bin/svn-postcommit-export
:
#!/bin/sh
svn export --force file:///home/repository/trunk/ /home/memarexweb/public_html/devel/
chmod -R 777 /home/memarexweb/public_html/devel/
(You can choose any name and put the script anywhere; I just suggested svn-postcommit-export
as an example, and /usr/local/bin
as a common location.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With