2020-09-03 10:49:55 +02:00
|
|
|
From 4a950257fa353e27ef1bd753bca4d0279f41bc77 Mon Sep 17 00:00:00 2001
|
2020-08-24 14:41:47 +02:00
|
|
|
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
|
2020-09-03 10:49:55 +02:00
|
|
|
index 77aea1f..8fd6b43 100755
|
2020-08-24 14:41:47 +02:00
|
|
|
--- 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
|
2020-09-03 10:49:55 +02:00
|
|
|
index 9591a49..b7c7ba4 100755
|
2020-08-24 14:41:47 +02:00
|
|
|
--- 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
|
2020-09-03 10:49:55 +02:00
|
|
|
@@ -37,7 +38,14 @@ MODULES=(
|
2020-08-24 14:41:47 +02:00
|
|
|
|
|
|
|
# functions
|
|
|
|
INSTALL_MODULE() {
|
2020-09-03 10:49:55 +02:00
|
|
|
- "$SYSREPOCTL" -a -i $MODDIR/$1 -s "$MODDIR" -p "$PERMS" -o "$OWNER" -g "$GROUP" -v2
|
2020-08-24 14:41:47 +02:00
|
|
|
+ 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
|
2020-09-03 10:49:55 +02:00
|
|
|
@@ -45,7 +53,14 @@ INSTALL_MODULE() {
|
2020-08-24 14:41:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
UPDATE_MODULE() {
|
2020-09-03 10:49:55 +02:00
|
|
|
- "$SYSREPOCTL" -a -U $MODDIR/$1 -s "$MODDIR" -p "$PERMS" -o "$OWNER" -g "$GROUP" -v2
|
2020-08-24 14:41:47 +02:00
|
|
|
+ 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
|
|
|
|
|