From 4a950257fa353e27ef1bd753bca4d0279f41bc77 Mon Sep 17 00:00:00 2001
From: Michal Vasko <mvasko@cesnet.cz>
Date: Mon, 24 Aug 2020 13:47:40 +0200
Subject: [PATCH] scripts FEATURE support using current user for SR modules

Mostly for special cases user/group configuration
when the user/group cannot be retrieved normally.

Fixes #701
---
 CMakeLists.txt   | 10 +++++-----
 scripts/setup.sh | 23 +++++++++++++++++++----
 2 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 77aea1f..8fd6b43 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,19 +68,19 @@ if(NOT MODULES_OWNER)
     OUTPUT_VARIABLE MODULES_OWNER OUTPUT_STRIP_TRAILING_WHITESPACE
     ERROR_VARIABLE ERROR_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
     if(RET)
-        message(FATAL_ERROR "Learning server module user failed: ${ERROR_STR}")
+        message(WARNING "Learning server module user failed (${ERROR_STR}), the current user will be used.")
     endif()
 endif()
-set(MODULES_OWNER "${MODULES_OWNER}" CACHE STRING "System user that will become the owner of server modules")
-if(NOT MODULES_GROUP)
+set(MODULES_OWNER "${MODULES_OWNER}" CACHE STRING "System user that will become the owner of server modules, empty means the current user")
+if(NOT MODULES_GROUP AND MODULES_OWNER)
     execute_process(COMMAND id -gn ${MODULES_OWNER} RESULT_VARIABLE RET
     OUTPUT_VARIABLE MODULES_GROUP OUTPUT_STRIP_TRAILING_WHITESPACE
     ERROR_VARIABLE ERROR_STR OUTPUT_STRIP_TRAILING_WHITESPACE)
     if(RET)
-        message(FATAL_ERROR "Learning server module group failed: ${ERROR_STR}")
+        message(WARNING "Learning server module group failed (${ERROR_STR}), the current user group will be used.")
     endif()
 endif()
-set(MODULES_GROUP "${MODULES_GROUP}" CACHE STRING "System group that the server modules will belong to")
+set(MODULES_GROUP "${MODULES_GROUP}" CACHE STRING "System group that the server modules will belong to, empty means the current user group")
 
 # set prefix for the PID file
 if(NOT PIDFILE_PREFIX)
diff --git a/scripts/setup.sh b/scripts/setup.sh
index 9591a49..b7c7ba4 100755
--- a/scripts/setup.sh
+++ b/scripts/setup.sh
@@ -1,7 +1,8 @@
 #!/bin/bash
 
-# env variables NP2_MODULE_DIR, NP2_MODULE_PERMS, NP2_MODULE_OWNER, NP2_MODULE_GROUP must be defined when executing this script!
-if [ -z "$NP2_MODULE_DIR" -o -z "$NP2_MODULE_PERMS" -o -z "$NP2_MODULE_OWNER" -o -z "$NP2_MODULE_GROUP" ]; then
+# env variables NP2_MODULE_DIR, NP2_MODULE_PERMS must be defined and NP2_MODULE_OWNER, NP2_MODULE_GROUP will be used if
+# defined when executing this script!
+if [ -z "$NP2_MODULE_DIR" -o -z "$NP2_MODULE_PERMS" ]; then
     echo "Required environment variables not defined!"
     exit 1
 fi
@@ -37,7 +38,14 @@ MODULES=(
 
 # functions
 INSTALL_MODULE() {
-    "$SYSREPOCTL" -a -i $MODDIR/$1 -s "$MODDIR" -p "$PERMS" -o "$OWNER" -g "$GROUP" -v2
+    CMD="'$SYSREPOCTL' -a -i $MODDIR/$1 -s '$MODDIR' -p '$PERMS' -v2"
+    if [ ! -z ${OWNER} ]; then
+        CMD="$CMD -o '$OWNER'"
+    fi
+    if [ ! -z ${GROUP} ]; then
+        CMD="$CMD -g '$GROUP'"
+    fi
+    eval $CMD
     local rc=$?
     if [ $rc -ne 0 ]; then
         exit $rc
@@ -45,7 +53,14 @@ INSTALL_MODULE() {
 }
 
 UPDATE_MODULE() {
-    "$SYSREPOCTL" -a -U $MODDIR/$1 -s "$MODDIR" -p "$PERMS" -o "$OWNER" -g "$GROUP" -v2
+    CMD="'$SYSREPOCTL' -a -U $MODDIR/$1 -s '$MODDIR' -p '$PERMS' -v2"
+    if [ ! -z ${OWNER} ]; then
+        CMD="$CMD -o '$OWNER'"
+    fi
+    if [ ! -z ${GROUP} ]; then
+        CMD="$CMD -g '$GROUP'"
+    fi
+    eval $CMD
     local rc=$?
     if [ $rc -ne 0 ]; then
         exit $rc
-- 
2.20.1

