diff options
Diffstat (limited to 'xlators/features')
-rwxr-xr-x | xlators/features/marker/utils/gsyncd.in | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/xlators/features/marker/utils/gsyncd.in b/xlators/features/marker/utils/gsyncd.in index c34fea1a198..a7af8c0b0b4 100755 --- a/xlators/features/marker/utils/gsyncd.in +++ b/xlators/features/marker/utils/gsyncd.in @@ -3,5 +3,53 @@ prefix="@prefix@" exec_prefix="@exec_prefix@" libexecdir=`eval echo "@libexecdir@"` +sbindir=`eval echo "@sbindir@"` -exec @PYTHON@ "$libexecdir"/glusterfs/python/syncdaemon/gsyncd.py "$@" +gluster="$sbindir"/gluster + +# glusterd service autodetection + +config_wanted=1 +if [ "$_GLUSTERD_CALLED_" = 1 ]; then + # OK, we know glusterd called us, no need to look for further config + config_wanted=0 + # ... altough this conclusion should not inherit to our children + unset _GLUSTERD_CALLED_ +else + # look for a -c option -- if present, we are already configured. + + for a in "$@"; do + # -c found, see if it has an argument + if [ "$one_more_arg" = 1 ]; then + if echo "$a" | grep -qv ^-; then + config_wanted=0 + break + fi + one_more_arg=0 + fi + + if [ "$a" = -c ] || [ "$a" = --config-file ]; then + one_more_arg=1 + continue + fi + + if echo $a | grep -qE '^(-c.|--config-file=)'; then + config_wanted=0; + break + fi + done + +fi + +if [ $config_wanted = 1 ]; then + wd="`${gluster} system:: getwd`" + if [ $? -eq 0 ]; then + config_file="$wd/geo-replication/gsyncd.conf" + fi +fi + +if [ -z "$config_file" ]; then + exec @PYTHON@ "$libexecdir"/glusterfs/python/syncdaemon/gsyncd.py "$@" +else + exec @PYTHON@ "$libexecdir"/glusterfs/python/syncdaemon/gsyncd.py -c "$config_file" "$@" +fi |