I am trying to setup a web-based portal through which we can checkout different branches of our Git repository through a simple click on a back-end panel.
So currently, I have /var/www/devportal which contains index.php, status.sh and checkout.sh
In index.php I do the following:
$repo = $_GET['repo'];
$command = 'sh status.sh ' . $repo;
$output = exec($command);
echo "<pre>$output</pre>";
The contents of status.sh are:
#!/bin/bash -e
if [ $# -ne 1 ]
then
echo "Usage: `basename $0` <repo name>"
exit 1
fi
cd /var/www/$1
git status
And this works just fine. The output echoed in PHP shows me the status of the current branch within /var/www/proj.
Now when I try to do the same thing (passing 2 parms this time with the second one being the name of the branch to checkout) with checkout.sh, who'se contents are:
#!/bin/bash -e
if [ $# -ne 2 ]
then
echo "Usage: `basename $0` <repo name> <branch name>"
exit 1
fi
cd /var/www/$1
git checkout $2
It doesn't work. Not only does it not work, I don't get diddly squat for an error message. There is no output. I know that the checkout.sh script works fine because when I echo the command that is being sent via PHP's exec command, copy that exact thing and run it via terminal logged in as root, it works just fine, does the checkout and returns the name of the newly activated branch.
Any tips on this would be greatly appreciated. My box is pretty standard, Ubuntu 10.04 and running Apache2.
Thanks!