zerotier: add option to copy config
authorMoritz Warning <redacted>
Sun, 19 Sep 2021 13:15:12 +0000 (15:15 +0200)
committerRosen Penev <redacted>
Fri, 8 Oct 2021 16:51:03 +0000 (09:51 -0700)
Signed-off-by: Moritz Warning <redacted>
net/zerotier/files/etc/config/zerotier
net/zerotier/files/etc/init.d/zerotier

index f342f851b5548daa4f216a4e1e18da2c293673e3..34b1ad347edc86c5123ccbd7c5037fca13ecf308 100644 (file)
@@ -4,6 +4,8 @@ config zerotier sample_config
 
        # persistent configuration folder (for ZT controller mode)
        #option config_path '/etc/zerotier'
+       # copy <config_path> to RAM to prevent writing to flash (for ZT controller mode)
+       #option copy_config_path '1'
 
        #option port '9993'
 
index c308b4246ee53ffd45aff5b11a5cfa93743dd26c..625c6db776cf29197540218e8e8d255abe1bd9c5 100755 (executable)
@@ -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
git clone https://git.99rst.org/PROJECT