From 078bd4189c18727daa84e8116478f2048e2989a7 Mon Sep 17 00:00:00 2001 From: Moritz Warning Date: Sun, 19 Sep 2021 15:15:12 +0200 Subject: [PATCH] zerotier: add option to copy config Signed-off-by: Moritz Warning --- net/zerotier/files/etc/config/zerotier | 2 ++ net/zerotier/files/etc/init.d/zerotier | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/net/zerotier/files/etc/config/zerotier b/net/zerotier/files/etc/config/zerotier index f342f851b..34b1ad347 100644 --- a/net/zerotier/files/etc/config/zerotier +++ b/net/zerotier/files/etc/config/zerotier @@ -4,6 +4,8 @@ config zerotier sample_config # persistent configuration folder (for ZT controller mode) #option config_path '/etc/zerotier' + # copy to RAM to prevent writing to flash (for ZT controller mode) + #option copy_config_path '1' #option port '9993' diff --git a/net/zerotier/files/etc/init.d/zerotier b/net/zerotier/files/etc/init.d/zerotier index c308b4246..625c6db77 100755 --- a/net/zerotier/files/etc/init.d/zerotier +++ b/net/zerotier/files/etc/init.d/zerotier @@ -14,7 +14,7 @@ section_enabled() { start_instance() { local cfg="$1" - local port secret config_path local_conf path + local port secret config_path local_conf copy_config_path path local args="" if ! section_enabled "$cfg"; then @@ -26,23 +26,28 @@ start_instance() { config_get port $cfg 'port' config_get secret $cfg 'secret' config_get local_conf $cfg 'local_conf' + config_get_bool copy_config_path $cfg 'copy_config_path' 0 path=${CONFIG_PATH}_$cfg # Remove existing link or folder rm -rf $path - # Create link from CONFIG_PATH to config_path + # Create link or copy files from CONFIG_PATH to config_path if [ -n "$config_path" -a "$config_path" != "$path" ]; then if [ ! -d "$config_path" ]; then echo "ZeroTier config_path does not exist: $config_path" 1>&2 return fi - # ensure that the symlink target exists + # ensure that the target exists mkdir -p $(dirname $path) - ln -s $config_path $path + if [ "$copy_config_path" = "1" ]; then + cp -r $config_path $path + else + ln -s $config_path $path + fi fi mkdir -p $path/networks.d