|  | @@ -84,6 +84,55 @@ function datserver_generate_bootstraps {
 | 
	
		
			
			| 84 | 84 |      echo 'module.exports = function (opts) {';
 | 
	
		
			
			| 85 | 85 |      echo '  return extend(DEFAULT_OPTS, opts) // opts takes priority';
 | 
	
		
			
			| 86 | 86 |      echo '}'; } > $DATSERVER_BOOTSTRAP_FILE
 | 
	
		
			
			|  | 87 | +
 | 
	
		
			
			|  | 88 | +  chown datserver:datserver $DATSERVER_BOOTSTRAP_FILE
 | 
	
		
			
			|  | 89 | +}
 | 
	
		
			
			|  | 90 | +
 | 
	
		
			
			|  | 91 | +function datserver_configure_bootstraps {
 | 
	
		
			
			|  | 92 | +    read_config_param DATSERVER_DISCOVERY1
 | 
	
		
			
			|  | 93 | +    read_config_param DATSERVER_DISCOVERY2
 | 
	
		
			
			|  | 94 | +
 | 
	
		
			
			|  | 95 | +    read_config_param DATSERVER_BOOTSTRAP1
 | 
	
		
			
			|  | 96 | +    read_config_param DATSERVER_BOOTSTRAP2
 | 
	
		
			
			|  | 97 | +    read_config_param DATSERVER_BOOTSTRAP3
 | 
	
		
			
			|  | 98 | +    read_config_param DATSERVER_BOOTSTRAP4
 | 
	
		
			
			|  | 99 | +
 | 
	
		
			
			|  | 100 | +    data=$(mktemp 2>/dev/null)
 | 
	
		
			
			|  | 101 | +    dialog --backtitle $"Freedombone Control Panel" \
 | 
	
		
			
			|  | 102 | +           --title $"dat bootstrap servers" \
 | 
	
		
			
			|  | 103 | +           --form $"Specify discovery and bootstrap servers:\\n" 14 68 6 \
 | 
	
		
			
			|  | 104 | +           $"Discovery 1:" 1 1 "$DATSERVER_DISCOVERY1" 1 35 26 25 \
 | 
	
		
			
			|  | 105 | +           $"Discovery 2:" 2 1 "$DATSERVER_DISCOVERY2" 2 35 26 25 \
 | 
	
		
			
			|  | 106 | +           $"Bootstrap 1:" 3 1 "$DATSERVER_BOOTSTRAP1" 3 35 26 25 \
 | 
	
		
			
			|  | 107 | +           $"Bootstrap 2:" 4 1 $"$DATSERVER_BOOTSTRAP2" 4 35 4 25 \
 | 
	
		
			
			|  | 108 | +           $"Bootstrap 3:" 5 1 $"$DATSERVER_BOOTSTRAP3" 5 35 4 25 \
 | 
	
		
			
			|  | 109 | +           $"Bootstrap 4:" 6 1 $"$DATSERVER_BOOTSTRAP4" 6 35 4 25 \
 | 
	
		
			
			|  | 110 | +           2> "$data"
 | 
	
		
			
			|  | 111 | +    sel=$?
 | 
	
		
			
			|  | 112 | +    case $sel in
 | 
	
		
			
			|  | 113 | +        1)  rm -f "$data"
 | 
	
		
			
			|  | 114 | +            return;;
 | 
	
		
			
			|  | 115 | +        255) rm -f "$data"
 | 
	
		
			
			|  | 116 | +             return;;
 | 
	
		
			
			|  | 117 | +    esac
 | 
	
		
			
			|  | 118 | +    DATSERVER_DISCOVERY1=$(sed -n 1p < "$data")
 | 
	
		
			
			|  | 119 | +    DATSERVER_DISCOVERY2=$(sed -n 2p < "$data")
 | 
	
		
			
			|  | 120 | +    DATSERVER_BOOTSTRAP1=$(sed -n 3p < "$data")
 | 
	
		
			
			|  | 121 | +    DATSERVER_BOOTSTRAP2=$(sed -n 4p < "$data")
 | 
	
		
			
			|  | 122 | +    DATSERVER_BOOTSTRAP3=$(sed -n 4p < "$data")
 | 
	
		
			
			|  | 123 | +    DATSERVER_BOOTSTRAP4=$(sed -n 4p < "$data")
 | 
	
		
			
			|  | 124 | +    rm "$data"
 | 
	
		
			
			|  | 125 | +
 | 
	
		
			
			|  | 126 | +    write_config_param DATSERVER_DISCOVERY1
 | 
	
		
			
			|  | 127 | +    write_config_param DATSERVER_DISCOVERY2
 | 
	
		
			
			|  | 128 | +
 | 
	
		
			
			|  | 129 | +    write_config_param DATSERVER_BOOTSTRAP1
 | 
	
		
			
			|  | 130 | +    write_config_param DATSERVER_BOOTSTRAP2
 | 
	
		
			
			|  | 131 | +    write_config_param DATSERVER_BOOTSTRAP3
 | 
	
		
			
			|  | 132 | +    write_config_param DATSERVER_BOOTSTRAP4
 | 
	
		
			
			|  | 133 | +
 | 
	
		
			
			|  | 134 | +    datserver_generate_bootstraps
 | 
	
		
			
			|  | 135 | +    systemctl restart datserver
 | 
	
		
			
			| 87 | 136 |  }
 | 
	
		
			
			| 88 | 137 |  
 | 
	
		
			
			| 89 | 138 |  function logging_on_datserver {
 | 
	
	
		
			
			|  | @@ -142,12 +191,13 @@ function datserver_add_dat {
 | 
	
		
			
			| 142 | 191 |  
 | 
	
		
			
			| 143 | 192 |  function configure_interactive_datserver {
 | 
	
		
			
			| 144 | 193 |      W=(1 $"Add a dat"
 | 
	
		
			
			| 145 |  | -       2 $"Browse or edit feeds")
 | 
	
		
			
			|  | 194 | +       2 $"Browse or edit feeds"
 | 
	
		
			
			|  | 195 | +       3 $"Bootstrap servers")
 | 
	
		
			
			| 146 | 196 |  
 | 
	
		
			
			| 147 | 197 |      while true
 | 
	
		
			
			| 148 | 198 |      do
 | 
	
		
			
			| 149 | 199 |          # shellcheck disable=SC2068
 | 
	
		
			
			| 150 |  | -        selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"dat server" --menu $"Choose an operation, or ESC for main menu:" 10 70 3 "${W[@]}" 3>&2 2>&1 1>&3)
 | 
	
		
			
			|  | 200 | +        selection=$(dialog --backtitle $"Freedombone Administrator Control Panel" --title $"dat server" --menu $"Choose an operation, or ESC for main menu:" 11 70 4 "${W[@]}" 3>&2 2>&1 1>&3)
 | 
	
		
			
			| 151 | 201 |  
 | 
	
		
			
			| 152 | 202 |          if [ ! "$selection" ]; then
 | 
	
		
			
			| 153 | 203 |             break
 | 
	
	
		
			
			|  | @@ -160,6 +210,8 @@ function configure_interactive_datserver {
 | 
	
		
			
			| 160 | 210 |                 chown -R datserver:datserver $DATSERVER_DIRECTORY/feeds
 | 
	
		
			
			| 161 | 211 |                 systemctl restart datserver
 | 
	
		
			
			| 162 | 212 |                 ;;
 | 
	
		
			
			|  | 213 | +            3) datserver_configure_bootstraps
 | 
	
		
			
			|  | 214 | +               ;;
 | 
	
		
			
			| 163 | 215 |          esac
 | 
	
		
			
			| 164 | 216 |      done
 | 
	
		
			
			| 165 | 217 |  }
 |