aboutsummaryrefslogtreecommitdiffstats
path: root/src/blogc-git-receiver
diff options
context:
space:
mode:
authorRafael G. Martins <rafael@rafaelmartins.eng.br>2018-05-30 22:19:59 +0200
committerRafael G. Martins <rafael@rafaelmartins.eng.br>2018-05-30 22:19:59 +0200
commit9acec235a6c47c3bede917187808a8acd1369050 (patch)
treede32925e547c9b52a307d7b987370d1145936943 /src/blogc-git-receiver
parentb42538956a08f009060a56c48f8844f96165daa4 (diff)
downloadblogc-9acec235a6c47c3bede917187808a8acd1369050.tar.gz
blogc-9acec235a6c47c3bede917187808a8acd1369050.tar.bz2
blogc-9acec235a6c47c3bede917187808a8acd1369050.zip
git-receiver: allow users to change the base directory
this is useful mostly for shared environments that just provide one shell user.
Diffstat (limited to 'src/blogc-git-receiver')
-rw-r--r--src/blogc-git-receiver/post-receive.c5
-rw-r--r--src/blogc-git-receiver/pre-receive.c5
-rw-r--r--src/blogc-git-receiver/shell.c5
3 files changed, 12 insertions, 3 deletions
diff --git a/src/blogc-git-receiver/post-receive.c b/src/blogc-git-receiver/post-receive.c
index 3593bb5..93cae25 100644
--- a/src/blogc-git-receiver/post-receive.c
+++ b/src/blogc-git-receiver/post-receive.c
@@ -76,7 +76,10 @@ bgr_post_receive_hook(int argc, char *argv[])
goto push;
}
- char *home = getenv("HOME");
+ char *home = getenv("BLOGC_GIT_RECEIVER_BASEDIR");
+ if (home == NULL) {
+ home = getenv("HOME");
+ }
if (home == NULL) {
fprintf(stderr, "warning: failed to find user home path, "
"mirroring disabled\n");
diff --git a/src/blogc-git-receiver/pre-receive.c b/src/blogc-git-receiver/pre-receive.c
index b059753..20c6738 100644
--- a/src/blogc-git-receiver/pre-receive.c
+++ b/src/blogc-git-receiver/pre-receive.c
@@ -177,7 +177,10 @@ bgr_pre_receive_hook(int argc, char *argv[])
goto cleanup;
}
- char *home = getenv("HOME");
+ char *home = getenv("BLOGC_GIT_RECEIVER_BASEDIR");
+ if (home == NULL) {
+ home = getenv("HOME");
+ }
if (home == NULL) {
fprintf(stderr, "error: failed to find user home path\n");
rv = 3;
diff --git a/src/blogc-git-receiver/shell.c b/src/blogc-git-receiver/shell.c
index 1ad8f20..eb859e8 100644
--- a/src/blogc-git-receiver/shell.c
+++ b/src/blogc-git-receiver/shell.c
@@ -35,7 +35,10 @@ bgr_shell(int argc, char *argv[])
}
// get home path
- char *home = getenv("HOME");
+ char *home = getenv("BLOGC_GIT_RECEIVER_BASEDIR");
+ if (home == NULL) {
+ home = getenv("HOME");
+ }
if (home == NULL) {
fprintf(stderr, "error: failed to find user home path\n");
rv = 3;