summaryrefslogtreecommitdiff
path: root/syncthing/files/etc/init.d
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2021-08-13 08:04:36 +0200
committerKarel Kočí <cynerd@email.cz>2021-08-13 08:04:36 +0200
commit2849c76c23146f651a70cdf0a70e6e98d4ea8ecf (patch)
tree113d180a14c1647194076fdce8ecc7c75a3f23c5 /syncthing/files/etc/init.d
parenta0be567986b2b6d21df0f7530bcc732e8ee5576f (diff)
downloadopenwrt-personal-pkgs-2849c76c23146f651a70cdf0a70e6e98d4ea8ecf.tar.gz
openwrt-personal-pkgs-2849c76c23146f651a70cdf0a70e6e98d4ea8ecf.tar.bz2
openwrt-personal-pkgs-2849c76c23146f651a70cdf0a70e6e98d4ea8ecf.zip
syncthing: add new version
Diffstat (limited to 'syncthing/files/etc/init.d')
-rwxr-xr-xsyncthing/files/etc/init.d/syncthing69
1 files changed, 69 insertions, 0 deletions
diff --git a/syncthing/files/etc/init.d/syncthing b/syncthing/files/etc/init.d/syncthing
new file mode 100755
index 0000000..f77aad8
--- /dev/null
+++ b/syncthing/files/etc/init.d/syncthing
@@ -0,0 +1,69 @@
+#!/bin/sh /etc/rc.common
+
+START=90
+STOP=10
+
+USE_PROCD=1
+
+PROG=/usr/bin/syncthing
+
+service_triggers()
+{
+ procd_add_reload_trigger "syncthing"
+}
+
+start_service() {
+ local gui_address home enabled nice macprocs user
+ config_load "syncthing"
+
+ # Some of the default values below might not match the defaults
+ # in /etc/config/syncthing: the reason is to remain backwards
+ # compatible with the older versions of this service as it
+ # evolves.
+
+ config_get_bool enabled syncthing enabled 1
+ [ "$enabled" -gt 0 ] || return 0
+
+ config_get user syncthing user 'root'
+ config_get gui_address syncthing gui_address "http://127.0.0.1:8384"
+ config_get home syncthing home "/etc/syncthing"
+
+ # For backwards compatibility
+ IDX_DB=$(readlink -n "$home"/index-v0.14.0.db)
+ if [ ! -z "$IDX_DB" ]; then
+ [ -d "$IDX_DB" ] || mkdir -p "$IDX_DB"
+
+ # A separate step to handle an upgrade use case
+ [ -d "$IDX_DB" ] && chown -R $user:$user "$IDX_DB"
+ fi
+
+ [ -d "$home" ] || mkdir -p "$home"
+ # A separate step to handle an upgrade use case
+ [ -d "$home" ] && chown -R $user:$user "$home"
+
+ # Changes to "niceness"/macprocs are not picked up by "reload_config"
+ # nor by "restart": the service has to be stopped/started
+ # for it to take effect
+ config_get nice syncthing nice "0"
+
+ config_get macprocs syncthing macprocs 0
+ if [ $macprocs -le 0 ]; then
+ # Default to the number of cores in this case
+ macprocs=$(grep -c ^processor /proc/cpuinfo)
+ fi
+
+ procd_open_instance
+ procd_set_param command "$PROG"
+ procd_set_param file /etc/config/syncthing
+ procd_set_param env GOMAXPROCS="$macprocs" STNOUPGRADE=1
+ procd_append_param command -gui-address="$gui_address"
+ procd_append_param command -home="$home"
+ procd_append_param command -no-browser
+ procd_set_param nice "$nice"
+ procd_set_param term_timeout 15
+ procd_set_param user "$user"
+ procd_set_param respawn
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_close_instance
+}