mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[enh] add dynamic variables to systemd helper
This commit is contained in:
parent
08f9091257
commit
9bd6d39a79
1 changed files with 19 additions and 4 deletions
|
@ -2,9 +2,10 @@
|
||||||
|
|
||||||
# Create a dedicated systemd config
|
# Create a dedicated systemd config
|
||||||
#
|
#
|
||||||
# usage: ynh_add_systemd_config [--service=service] [--template=template]
|
# usage: ynh_add_systemd_config [--service=service] [--template=template] "list of others variables to replace"
|
||||||
# | arg: -s, --service - Service name (optionnal, $app by default)
|
# | arg: -s, --service - Service name (optional, $app by default)
|
||||||
# | arg: -t, --template - Name of template file (optionnal, this is 'systemd' by default, meaning ./conf/systemd.service will be used as template)
|
# | arg: -t, --template - Name of template file (optional, this is 'systemd' by default, meaning ./conf/systemd.service will be used as template)
|
||||||
|
# | arg: -v, --others_var= - List of others variables to replace separeted by a space. For example : 'var_1 var_2 ...'
|
||||||
#
|
#
|
||||||
# This will use the template ../conf/<templatename>.service
|
# This will use the template ../conf/<templatename>.service
|
||||||
# to generate a systemd config, by replacing the following keywords
|
# to generate a systemd config, by replacing the following keywords
|
||||||
|
@ -14,17 +15,22 @@
|
||||||
# __APP__ by $app
|
# __APP__ by $app
|
||||||
# __FINALPATH__ by $final_path
|
# __FINALPATH__ by $final_path
|
||||||
#
|
#
|
||||||
|
# And dynamic variables (from the last example) :
|
||||||
|
# __PATH_2__ by $path_2
|
||||||
|
# __PORT_2__ by $port_2
|
||||||
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 2.7.2 or higher.
|
||||||
ynh_add_systemd_config () {
|
ynh_add_systemd_config () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=st
|
local legacy_args=st
|
||||||
declare -Ar args_array=( [s]=service= [t]=template= )
|
declare -Ar args_array=( [s]=service= [t]=template= [v]=others_var=)
|
||||||
local service
|
local service
|
||||||
local template
|
local template
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
local service="${service:-$app}"
|
local service="${service:-$app}"
|
||||||
local template="${template:-systemd.service}"
|
local template="${template:-systemd.service}"
|
||||||
|
local others_var="${others_var:-}"
|
||||||
|
|
||||||
finalsystemdconf="/etc/systemd/system/$service.service"
|
finalsystemdconf="/etc/systemd/system/$service.service"
|
||||||
ynh_backup_if_checksum_is_different --file="$finalsystemdconf"
|
ynh_backup_if_checksum_is_different --file="$finalsystemdconf"
|
||||||
|
@ -38,6 +44,15 @@ ynh_add_systemd_config () {
|
||||||
if test -n "${app:-}"; then
|
if test -n "${app:-}"; then
|
||||||
ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$finalsystemdconf"
|
ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$finalsystemdconf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Replace all other variable given as arguments
|
||||||
|
for var_to_replace in $others_var
|
||||||
|
do
|
||||||
|
# ${var_to_replace^^} make the content of the variable on upper-cases
|
||||||
|
# ${!var_to_replace} get the content of the variable named $var_to_replace
|
||||||
|
ynh_replace_string --match_string="__${var_to_replace^^}__" --replace_string="${!var_to_replace}" --target_file="$finalnginxconf"
|
||||||
|
done
|
||||||
|
|
||||||
ynh_store_file_checksum --file="$finalsystemdconf"
|
ynh_store_file_checksum --file="$finalsystemdconf"
|
||||||
|
|
||||||
chown root: "$finalsystemdconf"
|
chown root: "$finalsystemdconf"
|
||||||
|
|
Loading…
Add table
Reference in a new issue