From 9acec235a6c47c3bede917187808a8acd1369050 Mon Sep 17 00:00:00 2001 From: "Rafael G. Martins" Date: Wed, 30 May 2018 22:19:59 +0200 Subject: git-receiver: allow users to change the base directory this is useful mostly for shared environments that just provide one shell user. --- src/blogc-git-receiver/post-receive.c | 5 ++++- src/blogc-git-receiver/pre-receive.c | 5 ++++- src/blogc-git-receiver/shell.c | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'src') 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; -- cgit v1.2.3-18-g5258