2 # Copyright (C) 2011 Openwrt.org
3 # Copyright (C) 2011 Daniel Dickinson <openwrt@cshore.neomailbox.net>
5 BXBK_CONFIG_PATH=/var/etc/boxbackup
6 PID_FILE=/var/run/bbstored.pid
26 local extended_logging
33 config_get external_config "$cfg" external_config
34 if [ -n "$external_config" ]; then
36 EXTERNAL_CONF_FILE="$external_config"
39 config_get config_path "$cfg" config_path
40 [ -n "$config_path" ] && {
41 BXBK_CONFIG_PATH="$config_path"
44 [ "$get_config" = "1" ] && return 0
45 [ -z "$BXBK_CONFIG_FILE" ] && return 1
47 rm -f "$BXBK_CONFIG_FILE"
48 touch "$BXBK_CONFIG_FILE"
50 config_get raidfileconf "$cfg" raidfileconf "$BXBK_CONFIG_PATH/raidfile.conf"
51 echo "RaidFileConf = $raidfileconf" >>$BXBK_CONFIG_FILE
52 BXBK_RAIDFILE_CONF="$raidfileconf"
54 config_get accountdb "$cfg" accountdb "/etc/bbstored/accounts.txt"
55 echo "AccountDatabase = $accountdb" >>$BXBK_CONFIG_FILE
56 [ ! -r "$accountdb" ] && {
57 echo "Account database missing"
63 config_get extended_logging "$cfg" extended_logging 1
64 if [ "$extended_logging" = "1" ]; then
69 echo "ExtendedLogging = $extlog" >>$BXBK_CONFIG_FILE
71 config_get housekeep_time "$cfg" housekeep_time 900
72 echo "TimeBetweenHousekeeping = $housekeep_time" >>$BXBK_CONFIG_FILE
74 echo "" >>$BXBK_CONFIG_FILE
75 echo "Server" >>$BXBK_CONFIG_FILE
76 echo "{" >>$BXBK_CONFIG_FILE
78 config_get user "$cfg" user
79 config_get group "$cfg" group
80 [ -n "$user" ] && [ "$group" ] && {
84 echo " User = ${RUNAS_USER:-nobody}" >>$BXBK_CONFIG_FILE
86 config_get address "$cfg" address
87 [ -z "$address" ] && NORUN=1
89 echo " ListenAddresses = inet:$address" >>$BXBK_CONFIG_FILE
91 config_get certfile "$cfg" certfile
92 [ -z "$certfile" ] && NORUN=1
94 echo " CertificateFile = $certfile" >>$BXBK_CONFIG_FILE
96 config_get keyfile "$cfg" keyfile
97 [ -z "$keyfile" ] && NORUN=1
99 echo " PrivateKeyFile = $keyfile" >>$BXBK_CONFIG_FILE
101 config_get cafile "$cfg" cafile
102 [ -z "$cafile" ] && NORUN=1
104 echo " TrustedCAsFile = $cafile" >>$BXBK_CONFIG_FILE
106 config_get pidfile "$cfg" pidfile
107 [ -n "$pidfile" ] && {
110 echo " PidFile = $PID_FILE" >>$BXBK_CONFIG_FILE
112 echo "}" >>$BXBK_CONFIG_FILE
122 config_get setnum "$cfg" setnum
123 [ -z "$setnum" ] && return 1
125 config_get blocksize "$cfg" blocksize
127 config_get path "$cfg" path
128 [ -z "$path" ] && return 1
130 echo "disc${setnum}" >>$BXBK_RAIDFILE_CONF
131 echo "{" >>$BXBK_RAIDFILE_CONF
132 echo " SetNumber = ${setnum}" >>$BXBK_RAIDFILE_CONF
133 [ -n "$blocksize" ] && echo " BlockSize = ${blocksize}" >>$BXBK_RAIDFILE_CONF
135 echo " Dir${i} = $path" >>$BXBK_RAIDFILE_CONF
138 echo "}" >>$BXBK_RAIDFILE_CONF
144 config_foreach bbstored_global bbstored 1
146 if [ "$EXTERNAL_CONFIG" -eq 0 ]
148 mkdir -p "$BXBK_CONFIG_PATH/bbstored"
149 BXBK_CONFIG_FILE="$BXBK_CONFIG_PATH/bbstored.conf"
150 touch "$BXBK_CONFIG_FILE"
153 config_foreach bbstored_global bbstored
155 [ -z "$BXBK_RAIDFILE_CONF" ] && return 1
156 rm -f "$BXBK_RAIDFILE_CONF"
157 touch "$BXBK_RAIDFILE_CONF"
159 config_foreach raidfile_section raidfile
161 chown -R ${RUNAS_USER:-nobody}:${RUNAS_GROUP:-nogroup} "$BXBK_CONFIG_PATH"