fossil: add package
[feed/packages.git] / net / fossil / files / fossil.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2015 OpenWrt.org
3
4 START=90
5 USE_PROCD=1
6
7 start_instance() {
8 local cfg="$1"
9
10 config_get repository "$cfg" repository
11 if [ -z "$repository" ]; then
12 echo "repository is not defined in $1, skipping"
13 return
14 fi
15
16 config_get_bool create "$cfg" create 0
17
18 if [ "$create" -eq 0 -a ! -f "$repository" ]; then
19 echo "in $1 create option is '$create' and repository '$repository' is not a regular file, skipping"
20 return
21 fi
22
23 if [ "$create" -eq 1 -a ! -d `dirname $repository` ]; then
24 mkdir -p `dirname $repository`
25 if [ "$?" -ne 0 ]; then
26 echo "could not create directory, skipping"
27 return
28 fi
29 fi
30
31 config_get port "$cfg" port ""
32 if [ -z "$port" ]; then
33 echo "port is not defined in $1, skipping"
34 return
35 fi
36
37 config_get_bool debug "$cfg" debug 0
38 config_get_bool localhost "$cfg" localhost 1
39 config_get_bool scgi "$cfg" scgi 0
40
41 procd_open_instance
42 procd_set_param command /usr/bin/fossil server "$repository" --port $port
43 [ "$debug" -eq 1 ] && procd_append_param command --th-trace
44 [ "$create" -eq 1 ] && procd_append_param command --user root --create
45 [ "$localhost" -eq 1 ] && procd_append_param command --localhost
46 [ "$scgi" -eq 1 ] && procd_append_param command --scgi
47 procd_set_param respawn
48 procd_close_instance
49 }
50
51 start_service() {
52 config_load 'fossil'
53 config_foreach start_instance 'server'
54 }