|  | @@ -100,7 +100,6 @@ VARIANT_NONMAILBOX="nonmailbox"
 | 
	
		
			
			| 100 | 100 |  VARIANT_SOCIAL="social"
 | 
	
		
			
			| 101 | 101 |  VARIANT_MEDIA="media"
 | 
	
		
			
			| 102 | 102 |  VARIANT_TOR_DONGLE="tordongle"
 | 
	
		
			
			| 103 |  | -VARIANT_TOR_WIFI="torwifi"
 | 
	
		
			
			| 104 | 103 |  
 | 
	
		
			
			| 105 | 104 |  # An optional configuration file which overrides some of these variables
 | 
	
		
			
			| 106 | 105 |  CONFIGURATION_FILE="freedombone.cfg"
 | 
	
	
		
			
			|  | @@ -303,46 +302,6 @@ DATABASE_PASSWORD_FILE=/root/dbpass
 | 
	
		
			
			| 303 | 302 |  # log file where details of remote backups are stored
 | 
	
		
			
			| 304 | 303 |  REMOTE_BACKUPS_LOG=/var/log/remotebackups.log
 | 
	
		
			
			| 305 | 304 |  
 | 
	
		
			
			| 306 |  | -# Whether to enable wifi (on the BBB via USB)
 | 
	
		
			
			| 307 |  | -ENABLE_WIFI="no"
 | 
	
		
			
			| 308 |  | -
 | 
	
		
			
			| 309 |  | -# Whether to enable wifi hotspot (on the BBB via USB)
 | 
	
		
			
			| 310 |  | -ENABLE_WIFI_HOTSPOT="no"
 | 
	
		
			
			| 311 |  | -
 | 
	
		
			
			| 312 |  | -# ESSID for wifi
 | 
	
		
			
			| 313 |  | -WIFI_ESSID=
 | 
	
		
			
			| 314 |  | -
 | 
	
		
			
			| 315 |  | -# Optional wifi password
 | 
	
		
			
			| 316 |  | -WIFI_PASSWORD=
 | 
	
		
			
			| 317 |  | -
 | 
	
		
			
			| 318 |  | -# Wifi interface
 | 
	
		
			
			| 319 |  | -WIFI_INTERFACE="wlan0"
 | 
	
		
			
			| 320 |  | -
 | 
	
		
			
			| 321 |  | -# Whether to always force there to exist a wifi password
 | 
	
		
			
			| 322 |  | -WIFI_FORCE_PASSWORD="yes"
 | 
	
		
			
			| 323 |  | -
 | 
	
		
			
			| 324 |  | -# Channel number for wifi hotspot
 | 
	
		
			
			| 325 |  | -WIFI_HOTSPOT_CHANNEL=7
 | 
	
		
			
			| 326 |  | -
 | 
	
		
			
			| 327 |  | -# Mode such as "g" or "n"
 | 
	
		
			
			| 328 |  | -WIFI_HOTSPOT_MODE="g"
 | 
	
		
			
			| 329 |  | -
 | 
	
		
			
			| 330 |  | -# Static IP address for wifi hotspot
 | 
	
		
			
			| 331 |  | -WIFI_STATIC_IP_ADDRESS="192.168.4.1"
 | 
	
		
			
			| 332 |  | -
 | 
	
		
			
			| 333 |  | -# Subnet for wifi hotspot
 | 
	
		
			
			| 334 |  | -WIFI_SUBNET="192.168.4.0"
 | 
	
		
			
			| 335 |  | -
 | 
	
		
			
			| 336 |  | -# DHCP range for wifi hotspot
 | 
	
		
			
			| 337 |  | -WIFI_IP_RANGE_START="192.168.4.10"
 | 
	
		
			
			| 338 |  | -WIFI_IP_RANGE_END="192.168.4.20"
 | 
	
		
			
			| 339 |  | -
 | 
	
		
			
			| 340 |  | -# Broadcast address for wifi hotspot
 | 
	
		
			
			| 341 |  | -WIFI_BROADCAST_ADDRESS="192.168.4.255"
 | 
	
		
			
			| 342 |  | -
 | 
	
		
			
			| 343 |  | -# space separated list of DNS servers for wifi hotspot
 | 
	
		
			
			| 344 |  | -WIFI_DNS_SERVERS="213.73.91.35 85.214.20.141"
 | 
	
		
			
			| 345 |  | -
 | 
	
		
			
			| 346 | 305 |  # message if something fails to install
 | 
	
		
			
			| 347 | 306 |  CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list."
 | 
	
		
			
			| 348 | 307 |  
 | 
	
	
		
			
			|  | @@ -386,40 +345,15 @@ function argument_checks {
 | 
	
		
			
			| 386 | 345 |        exit 2
 | 
	
		
			
			| 387 | 346 |    fi
 | 
	
		
			
			| 388 | 347 |    if [ ! $MY_USERNAME ]; then
 | 
	
		
			
			| 389 |  | -      if [[ $DOMAIN_NAME == "tor-wifi" || $DOMAIN_NAME == "torwifi" || $DOMAIN_NAME == "tor-hotspot" || $DOMAIN_NAME == "torhotspot"  || $DOMAIN_NAME == "tor-access-point" || $DOMAIN_NAME == "tor" || $DOMAIN_NAME == "tor-dongle" || $DOMAIN_NAME == "tordongle" ]]; then
 | 
	
		
			
			| 390 |  | -          if [ -d /home/tor ]; then
 | 
	
		
			
			| 391 |  | -              MY_USERNAME="tor"
 | 
	
		
			
			| 392 |  | -          fi
 | 
	
		
			
			| 393 |  | -          if [ -d /home/toruser ]; then
 | 
	
		
			
			| 394 |  | -              MY_USERNAME="toruser"
 | 
	
		
			
			| 395 |  | -          fi
 | 
	
		
			
			| 396 |  | -          if [ ! $MY_USERNAME ]; then
 | 
	
		
			
			| 397 |  | -              show_help
 | 
	
		
			
			| 398 |  | -              exit 3
 | 
	
		
			
			| 399 |  | -          fi
 | 
	
		
			
			| 400 |  | -      else
 | 
	
		
			
			| 401 |  | -          show_help
 | 
	
		
			
			| 402 |  | -          exit 3
 | 
	
		
			
			| 403 |  | -      fi
 | 
	
		
			
			|  | 348 | +      show_help
 | 
	
		
			
			|  | 349 | +      exit 3
 | 
	
		
			
			| 404 | 350 |    fi
 | 
	
		
			
			| 405 | 351 |    if [ ! $FREEDNS_SUBDOMAIN_CODE ]; then
 | 
	
		
			
			| 406 |  | -      if [[ $DOMAIN_NAME == "tor-wifi" || $DOMAIN_NAME == "torwifi" || $DOMAIN_NAME == "tor-hotspot" || $DOMAIN_NAME == "torhotspot"  || $DOMAIN_NAME == "tor-access-point" ]]; then
 | 
	
		
			
			| 407 |  | -          DOMAIN_NAME="tor-wifi"
 | 
	
		
			
			| 408 |  | -          SYSTEM_TYPE=$VARIANT_TOR_WIFI
 | 
	
		
			
			| 409 |  | -          ROUTE_THROUGH_TOR="yes"
 | 
	
		
			
			| 410 |  | -          ENABLE_WIFI_HOTSPOT="yes"
 | 
	
		
			
			| 411 |  | -      fi
 | 
	
		
			
			| 412 |  | -      if [[ $DOMAIN_NAME == "tor" || $DOMAIN_NAME == "tor-dongle" || $DOMAIN_NAME == "tordongle" ]]; then
 | 
	
		
			
			| 413 |  | -          DOMAIN_NAME="tor-dongle"
 | 
	
		
			
			| 414 |  | -          SYSTEM_TYPE=$VARIANT_TOR_DONGLE
 | 
	
		
			
			| 415 |  | -      fi
 | 
	
		
			
			| 416 |  | -      if [[ $SYSTEM_TYPE != $VARIANT_TOR_DONGLE && $SYSTEM_TYPE != $VARIANT_TOR_WIFI ]]; then
 | 
	
		
			
			| 417 |  | -          show_help
 | 
	
		
			
			| 418 |  | -          exit 4
 | 
	
		
			
			| 419 |  | -      fi
 | 
	
		
			
			|  | 352 | +      show_help
 | 
	
		
			
			|  | 353 | +      exit 4
 | 
	
		
			
			| 420 | 354 |    fi
 | 
	
		
			
			| 421 | 355 |    if [ $SYSTEM_TYPE ]; then
 | 
	
		
			
			| 422 |  | -      if [[ $SYSTEM_TYPE != $VARIANT_WRITER && $SYSTEM_TYPE != $VARIANT_CLOUD && $SYSTEM_TYPE != $VARIANT_CHAT && $SYSTEM_TYPE != $VARIANT_MAILBOX && $SYSTEM_TYPE != $VARIANT_NONMAILBOX && $SYSTEM_TYPE != $VARIANT_SOCIAL && $SYSTEM_TYPE != $VARIANT_MEDIA && $SYSTEM_TYPE != $VARIANT_TOR_DONGLE && $SYSTEM_TYPE != $VARIANT_TOR_WIFI ]]; then
 | 
	
		
			
			|  | 356 | +      if [[ $SYSTEM_TYPE != $VARIANT_WRITER && $SYSTEM_TYPE != $VARIANT_CLOUD && $SYSTEM_TYPE != $VARIANT_CHAT && $SYSTEM_TYPE != $VARIANT_MAILBOX && $SYSTEM_TYPE != $VARIANT_NONMAILBOX && $SYSTEM_TYPE != $VARIANT_SOCIAL && $SYSTEM_TYPE != $VARIANT_MEDIA && $SYSTEM_TYPE != $VARIANT_TOR_DONGLE ]]; then
 | 
	
		
			
			| 423 | 357 |            echo "'$SYSTEM_TYPE' is an unrecognised Freedombone variant."
 | 
	
		
			
			| 424 | 358 |            exit 30
 | 
	
		
			
			| 425 | 359 |        fi
 | 
	
	
		
			
			|  | @@ -438,45 +372,6 @@ function read_configuration {
 | 
	
		
			
			| 438 | 372 |        if grep -q "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 439 | 373 |            LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep "LOCAL_NETWORK_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 440 | 374 |        fi
 | 
	
		
			
			| 441 |  | -      if grep -q "WIFI_STATIC_IP_ADDRESS" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 442 |  | -          WIFI_STATIC_IP_ADDRESS=$(grep "WIFI_STATIC_IP_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 443 |  | -      fi
 | 
	
		
			
			| 444 |  | -      if grep -q "WIFI_SUBNET" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 445 |  | -          WIFI_SUBNET=$(grep "WIFI_SUBNET" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 446 |  | -      fi
 | 
	
		
			
			| 447 |  | -      if grep -q "WIFI_BROADCAST_ADDRESS" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 448 |  | -          WIFI_BROADCAST_ADDRESS=$(grep "WIFI_BROADCAST_ADDRESS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 449 |  | -      fi
 | 
	
		
			
			| 450 |  | -      if grep -q "WIFI_DNS_SERVERS" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 451 |  | -          WIFI_DNS_SERVERS=$(grep "WIFI_DNS_SERVERS" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 452 |  | -      fi
 | 
	
		
			
			| 453 |  | -      if grep -q "WIFI_IP_RANGE_START" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 454 |  | -          WIFI_IP_RANGE_START=$(grep "WIFI_IP_RANGE_START" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 455 |  | -      fi
 | 
	
		
			
			| 456 |  | -      if grep -q "WIFI_IP_RANGE_END" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 457 |  | -          WIFI_IP_RANGE_END=$(grep "WIFI_IP_RANGE_END" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 458 |  | -      fi
 | 
	
		
			
			| 459 |  | -      if grep -q "WIFI_INTERFACE" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 460 |  | -          WIFI_INTERFACE=$(grep "WIFI_INTERFACE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 461 |  | -      fi
 | 
	
		
			
			| 462 |  | -      if grep -q "WIFI_HOTSPOT_MODE" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 463 |  | -          WIFI_HOTSPOT_MODE=$(grep "WIFI_HOTSPOT_MODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 464 |  | -      fi
 | 
	
		
			
			| 465 |  | -      if grep -q "WIFI_HOTSPOT_CHANNEL" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 466 |  | -          WIFI_HOTSPOT_CHANNEL=$(grep "WIFI_HOTSPOT_CHANNEL" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 467 |  | -      fi
 | 
	
		
			
			| 468 |  | -      if grep -q "ENABLE_WIFI" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 469 |  | -          ENABLE_WIFI=$(grep "ENABLE_WIFI" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 470 |  | -      fi
 | 
	
		
			
			| 471 |  | -      if grep -q "ENABLE_WIFI_HOTSPOT" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 472 |  | -          ENABLE_WIFI_HOTSPOT=$(grep "ENABLE_WIFI_HOTSPOT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 473 |  | -      fi
 | 
	
		
			
			| 474 |  | -      if grep -q "WIFI_PASSWORD" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 475 |  | -          WIFI_PASSWORD=$(grep "WIFI_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 476 |  | -      fi
 | 
	
		
			
			| 477 |  | -      if grep -q "WIFI_ESSID" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 478 |  | -          WIFI_ESSID=$(grep "WIFI_ESSID" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 479 |  | -      fi
 | 
	
		
			
			| 480 | 375 |        if grep -q "BACKUP_CERTIFICATE" $CONFIGURATION_FILE; then
 | 
	
		
			
			| 481 | 376 |            BACKUP_CERTIFICATE=$(grep "BACKUP_CERTIFICATE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
 | 
	
		
			
			| 482 | 377 |        fi
 | 
	
	
		
			
			|  | @@ -603,7 +498,7 @@ function install_not_on_BBB {
 | 
	
		
			
			| 603 | 498 |    echo "    address $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/network/interfaces
 | 
	
		
			
			| 604 | 499 |    echo '    netmask 255.255.255.0' >> /etc/network/interfaces
 | 
	
		
			
			| 605 | 500 |    echo "    gateway $ROUTER_IP_ADDRESS" >> /etc/network/interfaces
 | 
	
		
			
			| 606 |  | -  echo "    dns-nameservers $WIFI_DNS_SERVERS" >> /etc/network/interfaces
 | 
	
		
			
			|  | 501 | +  echo '    dns-nameservers 213.73.91.35 85.214.20.141' >> /etc/network/interfaces
 | 
	
		
			
			| 607 | 502 |    echo '# Example to keep MAC address between reboots' >> /etc/network/interfaces
 | 
	
		
			
			| 608 | 503 |    echo '#hwaddress ether DE:AD:BE:EF:CA:FE' >> /etc/network/interfaces
 | 
	
		
			
			| 609 | 504 |    echo '' >> /etc/network/interfaces
 | 
	
	
		
			
			|  | @@ -2882,14 +2777,6 @@ function change_login_message {
 | 
	
		
			
			| 2882 | 2777 |        echo "            '  -' '     '--'   -' '   - - | - --'" >> /etc/motd
 | 
	
		
			
			| 2883 | 2778 |        echo "                                       ._.'      " >> /etc/motd
 | 
	
		
			
			| 2884 | 2779 |    fi
 | 
	
		
			
			| 2885 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			| 2886 |  | -
 | 
	
		
			
			| 2887 |  | -      echo '      .---.              .  .   .  .      .-.     ' >> /etc/motd
 | 
	
		
			
			| 2888 |  | -      echo '        |                 \  \ /  /   o   |    o  ' >> /etc/motd
 | 
	
		
			
			| 2889 |  | -      echo '        |   .-. .--.       \  \  /    .  -|-   .  ' >> /etc/motd
 | 
	
		
			
			| 2890 |  | -      echo '        |  (   )|           \/ \/     |   |    |  ' >> /etc/motd
 | 
	
		
			
			| 2891 |  | -      echo "        '    -' '            ' '    -'  - '  -'  -" >> /etc/motd
 | 
	
		
			
			| 2892 |  | -  fi
 | 
	
		
			
			| 2893 | 2780 |  
 | 
	
		
			
			| 2894 | 2781 |    echo '' >> /etc/motd
 | 
	
		
			
			| 2895 | 2782 |    echo '                  Freedom in the Cloud' >> /etc/motd
 | 
	
	
		
			
			|  | @@ -2903,7 +2790,7 @@ function search_for_attached_usb_drive {
 | 
	
		
			
			| 2903 | 2790 |    if grep -Fxq "search_for_attached_usb_drive" $COMPLETION_FILE; then
 | 
	
		
			
			| 2904 | 2791 |        return
 | 
	
		
			
			| 2905 | 2792 |    fi
 | 
	
		
			
			| 2906 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 2793 | +  if [[ $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 2907 | 2794 |        return
 | 
	
		
			
			| 2908 | 2795 |    fi
 | 
	
		
			
			| 2909 | 2796 |    if [ -b $USB_DRIVE ]; then
 | 
	
	
		
			
			|  | @@ -3248,13 +3135,11 @@ function random_number_generator {
 | 
	
		
			
			| 3248 | 3135 |        # no hardware random number generator is available
 | 
	
		
			
			| 3249 | 3136 |        # and use the second best option
 | 
	
		
			
			| 3250 | 3137 |        apt-get -y --force-yes install haveged
 | 
	
		
			
			| 3251 |  | -      echo 'random_number_generator' >> $COMPLETION_FILE
 | 
	
		
			
			| 3252 | 3138 |        return
 | 
	
		
			
			| 3253 | 3139 |    fi
 | 
	
		
			
			| 3254 | 3140 |    if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
 | 
	
		
			
			| 3255 | 3141 |        # it is assumed that docker uses the random number
 | 
	
		
			
			| 3256 | 3142 |        # generator of the host system
 | 
	
		
			
			| 3257 |  | -      echo 'random_number_generator' >> $COMPLETION_FILE
 | 
	
		
			
			| 3258 | 3143 |        return
 | 
	
		
			
			| 3259 | 3144 |    fi
 | 
	
		
			
			| 3260 | 3145 |    if [[ $USE_HWRNG == "yes" ]]; then
 | 
	
	
		
			
			|  | @@ -3263,7 +3148,6 @@ function random_number_generator {
 | 
	
		
			
			| 3263 | 3148 |    else
 | 
	
		
			
			| 3264 | 3149 |      apt-get -y --force-yes install haveged
 | 
	
		
			
			| 3265 | 3150 |    fi
 | 
	
		
			
			| 3266 |  | -
 | 
	
		
			
			| 3267 | 3151 |    echo 'random_number_generator' >> $COMPLETION_FILE
 | 
	
		
			
			| 3268 | 3152 |  }
 | 
	
		
			
			| 3269 | 3153 |  
 | 
	
	
		
			
			|  | @@ -3519,7 +3403,7 @@ function configure_firewall_for_dlna {
 | 
	
		
			
			| 3519 | 3403 |        # docker does its own firewalling
 | 
	
		
			
			| 3520 | 3404 |        return
 | 
	
		
			
			| 3521 | 3405 |    fi
 | 
	
		
			
			| 3522 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 3406 | +  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 3523 | 3407 |        return
 | 
	
		
			
			| 3524 | 3408 |    fi
 | 
	
		
			
			| 3525 | 3409 |    iptables -A INPUT -i eth0 -p udp --dport 1900 -j ACCEPT
 | 
	
	
		
			
			|  | @@ -3646,7 +3530,7 @@ function configure_firewall_for_git {
 | 
	
		
			
			| 3646 | 3530 |  }
 | 
	
		
			
			| 3647 | 3531 |  
 | 
	
		
			
			| 3648 | 3532 |  function configure_firewall_for_email {
 | 
	
		
			
			| 3649 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 3533 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 3650 | 3534 |        return
 | 
	
		
			
			| 3651 | 3535 |    fi
 | 
	
		
			
			| 3652 | 3536 |    if grep -Fxq "configure_firewall_for_email" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -3729,7 +3613,7 @@ function script_to_make_self_signed_certificates {
 | 
	
		
			
			| 3729 | 3613 |  }
 | 
	
		
			
			| 3730 | 3614 |  
 | 
	
		
			
			| 3731 | 3615 |  function configure_email {
 | 
	
		
			
			| 3732 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 3616 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 3733 | 3617 |        return
 | 
	
		
			
			| 3734 | 3618 |    fi
 | 
	
		
			
			| 3735 | 3619 |    if grep -Fxq "configure_email" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -3835,7 +3719,7 @@ function configure_email {
 | 
	
		
			
			| 3835 | 3719 |  }
 | 
	
		
			
			| 3836 | 3720 |  
 | 
	
		
			
			| 3837 | 3721 |  function create_procmail {
 | 
	
		
			
			| 3838 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 3722 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 3839 | 3723 |        return
 | 
	
		
			
			| 3840 | 3724 |    fi
 | 
	
		
			
			| 3841 | 3725 |    if grep -Fxq "create_procmail" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -3852,7 +3736,7 @@ function create_procmail {
 | 
	
		
			
			| 3852 | 3736 |  
 | 
	
		
			
			| 3853 | 3737 |  function spam_filtering {
 | 
	
		
			
			| 3854 | 3738 |    # NOTE: spamassassin installation currently doesn't work, sa-compile fails with a make error 23/09/2014
 | 
	
		
			
			| 3855 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 3739 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 3856 | 3740 |        return
 | 
	
		
			
			| 3857 | 3741 |    fi
 | 
	
		
			
			| 3858 | 3742 |    if grep -Fxq "spam_filtering" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -3947,7 +3831,7 @@ function spam_filtering {
 | 
	
		
			
			| 3947 | 3831 |  }
 | 
	
		
			
			| 3948 | 3832 |  
 | 
	
		
			
			| 3949 | 3833 |  function configure_imap {
 | 
	
		
			
			| 3950 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 3834 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 3951 | 3835 |        return
 | 
	
		
			
			| 3952 | 3836 |    fi
 | 
	
		
			
			| 3953 | 3837 |    if grep -Fxq "configure_imap" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -4085,7 +3969,7 @@ function encrypt_incoming_email {
 | 
	
		
			
			| 4085 | 3969 |    # encrypts incoming mail using your GPG public key
 | 
	
		
			
			| 4086 | 3970 |    # so even if an attacker gains access to the data at rest they still need
 | 
	
		
			
			| 4087 | 3971 |    # to know your GPG key password to be able to read anything
 | 
	
		
			
			| 4088 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 3972 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4089 | 3973 |        return
 | 
	
		
			
			| 4090 | 3974 |    fi
 | 
	
		
			
			| 4091 | 3975 |    if grep -Fxq "encrypt_incoming_email" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -4116,7 +4000,7 @@ function encrypt_outgoing_email {
 | 
	
		
			
			| 4116 | 4000 |    # encrypts outgoing mail using your GPG public key
 | 
	
		
			
			| 4117 | 4001 |    # so even if an attacker gains access to the data at rest they still need
 | 
	
		
			
			| 4118 | 4002 |    # to know your GPG key password to be able to read sent mail
 | 
	
		
			
			| 4119 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4003 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4120 | 4004 |        return
 | 
	
		
			
			| 4121 | 4005 |    fi
 | 
	
		
			
			| 4122 | 4006 |    if grep -Fxq "encrypt_outgoing_email" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -4143,7 +4027,7 @@ function encrypt_outgoing_email {
 | 
	
		
			
			| 4143 | 4027 |  }
 | 
	
		
			
			| 4144 | 4028 |  
 | 
	
		
			
			| 4145 | 4029 |  function encrypt_all_email {
 | 
	
		
			
			| 4146 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4030 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4147 | 4031 |        return
 | 
	
		
			
			| 4148 | 4032 |    fi
 | 
	
		
			
			| 4149 | 4033 |    if grep -Fxq "encrypt_all_email" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -4277,7 +4161,7 @@ function encrypt_all_email {
 | 
	
		
			
			| 4277 | 4161 |  }
 | 
	
		
			
			| 4278 | 4162 |  
 | 
	
		
			
			| 4279 | 4163 |  function email_client {
 | 
	
		
			
			| 4280 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4164 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4281 | 4165 |        return
 | 
	
		
			
			| 4282 | 4166 |    fi
 | 
	
		
			
			| 4283 | 4167 |    if grep -Fxq "email_client" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -4405,14 +4289,14 @@ function email_archiving {
 | 
	
		
			
			| 4405 | 4289 |    echo '#!/bin/bash' > /etc/cron.daily/archivemail
 | 
	
		
			
			| 4406 | 4290 |    echo "MUTTRC=/home/$MY_USERNAME/.muttrc" >> /etc/cron.daily/archivemail
 | 
	
		
			
			| 4407 | 4291 |    echo "python /usr/bin/cleanup-maildir --archive-folder='archive' --maildir-root='/home/$MY_USERNAME/Maildir' archive ''" >> /etc/cron.daily/archivemail
 | 
	
		
			
			| 4408 |  | -  echo 'if [ -f $MUTTRC ]; then' >> /usr/bin/addmailinglist
 | 
	
		
			
			| 4409 |  | -  echo '  MUTT_MAILBOXES=$(grep "mailboxes =" $MUTTRC)' >> /usr/bin/addmailinglist
 | 
	
		
			
			| 4410 |  | -  echo '  BACKUP_DIRECTORY=archive.$(date +"%Y")' >> /usr/bin/addmailinglist
 | 
	
		
			
			| 4411 |  | -  echo '  if [[ $MUTT_MAILBOXES != *$BACKUP_DIRECTORY* ]]; then' >> /usr/bin/addmailinglist
 | 
	
		
			
			| 4412 |  | -  echo '    sed -i "s|$MUTT_MAILBOXES|$MUTT_MAILBOXES =$BACKUP_DIRECTORY|g" $MUTTRC' >> /usr/bin/addmailinglist
 | 
	
		
			
			| 4413 |  | -  echo '    chown $MYUSERNAME:$MYUSERNAME $MUTTRC' >> /usr/bin/addmailinglist
 | 
	
		
			
			| 4414 |  | -  echo '  fi' >> /usr/bin/addmailinglist
 | 
	
		
			
			| 4415 |  | -  echo 'fi' >> /usr/bin/addmailinglist
 | 
	
		
			
			|  | 4292 | +  echo 'if [ -f $MUTTRC ]; then' >> /etc/cron.daily/archivemail
 | 
	
		
			
			|  | 4293 | +  echo '  MUTT_MAILBOXES=$(grep "mailboxes =" $MUTTRC)' >> /etc/cron.daily/archivemail
 | 
	
		
			
			|  | 4294 | +  echo '  BACKUP_DIRECTORY=archive.$(date +"%Y")' >> /etc/cron.daily/archivemail
 | 
	
		
			
			|  | 4295 | +  echo '  if [[ $MUTT_MAILBOXES != *$BACKUP_DIRECTORY* ]]; then' >> /etc/cron.daily/archivemail
 | 
	
		
			
			|  | 4296 | +  echo '    sed -i "s|$MUTT_MAILBOXES|$MUTT_MAILBOXES =$BACKUP_DIRECTORY|g" $MUTTRC' >> /etc/cron.daily/archivemail
 | 
	
		
			
			|  | 4297 | +  echo '    chown $MYUSERNAME:$MYUSERNAME $MUTTRC' >> /etc/cron.daily/archivemail
 | 
	
		
			
			|  | 4298 | +  echo '  fi' >> /etc/cron.daily/archivemail
 | 
	
		
			
			|  | 4299 | +  echo 'fi' >> /etc/cron.daily/archivemail
 | 
	
		
			
			| 4416 | 4300 |    echo 'exit 0' >> /etc/cron.daily/archivemail
 | 
	
		
			
			| 4417 | 4301 |    chmod +x /etc/cron.daily/archivemail
 | 
	
		
			
			| 4418 | 4302 |  
 | 
	
	
		
			
			|  | @@ -4420,7 +4304,7 @@ function email_archiving {
 | 
	
		
			
			| 4420 | 4304 |  }
 | 
	
		
			
			| 4421 | 4305 |  
 | 
	
		
			
			| 4422 | 4306 |  function folders_for_mailing_lists {
 | 
	
		
			
			| 4423 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4307 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4424 | 4308 |        return
 | 
	
		
			
			| 4425 | 4309 |    fi
 | 
	
		
			
			| 4426 | 4310 |    if grep -Fxq "folders_for_mailing_lists" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -4498,7 +4382,7 @@ function email_from_address {
 | 
	
		
			
			| 4498 | 4382 |  }
 | 
	
		
			
			| 4499 | 4383 |  
 | 
	
		
			
			| 4500 | 4384 |  function folders_for_email_addresses {
 | 
	
		
			
			| 4501 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4385 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4502 | 4386 |        return
 | 
	
		
			
			| 4503 | 4387 |    fi
 | 
	
		
			
			| 4504 | 4388 |    if grep -Fxq "folders_for_email_addresses" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -4570,7 +4454,7 @@ function dynamic_dns_freedns {
 | 
	
		
			
			| 4570 | 4454 |  }
 | 
	
		
			
			| 4571 | 4455 |  
 | 
	
		
			
			| 4572 | 4456 |  function create_public_mailing_list {
 | 
	
		
			
			| 4573 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4457 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4574 | 4458 |        return
 | 
	
		
			
			| 4575 | 4459 |    fi
 | 
	
		
			
			| 4576 | 4460 |    if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -4666,7 +4550,7 @@ function create_public_mailing_list {
 | 
	
		
			
			| 4666 | 4550 |  }
 | 
	
		
			
			| 4667 | 4551 |  
 | 
	
		
			
			| 4668 | 4552 |  function create_private_mailing_list {
 | 
	
		
			
			| 4669 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4553 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4670 | 4554 |        return
 | 
	
		
			
			| 4671 | 4555 |    fi
 | 
	
		
			
			| 4672 | 4556 |    # This installation doesn't work, results in ruby errors
 | 
	
	
		
			
			|  | @@ -4727,7 +4611,7 @@ function create_private_mailing_list {
 | 
	
		
			
			| 4727 | 4611 |  }
 | 
	
		
			
			| 4728 | 4612 |  
 | 
	
		
			
			| 4729 | 4613 |  function import_email {
 | 
	
		
			
			| 4730 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4614 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4731 | 4615 |        return
 | 
	
		
			
			| 4732 | 4616 |    fi
 | 
	
		
			
			| 4733 | 4617 |    EMAIL_COMPLETE_MSG='  *** Freedombone mailbox installation is complete ***'
 | 
	
	
		
			
			|  | @@ -4778,7 +4662,7 @@ function import_email {
 | 
	
		
			
			| 4778 | 4662 |  }
 | 
	
		
			
			| 4779 | 4663 |  
 | 
	
		
			
			| 4780 | 4664 |  function install_web_server {
 | 
	
		
			
			| 4781 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4665 | +  if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 4782 | 4666 |        return
 | 
	
		
			
			| 4783 | 4667 |    fi
 | 
	
		
			
			| 4784 | 4668 |    if grep -Fxq "install_web_server" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -4911,11 +4795,6 @@ function install_mariadb {
 | 
	
		
			
			| 4911 | 4795 |    if grep -Fxq "install_mariadb" $COMPLETION_FILE; then
 | 
	
		
			
			| 4912 | 4796 |        return
 | 
	
		
			
			| 4913 | 4797 |    fi
 | 
	
		
			
			| 4914 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 4915 |  | -      echo 'install_mariadb was called before the random number generator was initialised'
 | 
	
		
			
			| 4916 |  | -      exit 853
 | 
	
		
			
			| 4917 |  | -  fi
 | 
	
		
			
			| 4918 |  | -
 | 
	
		
			
			| 4919 | 4798 |    apt-get -y --force-yes install python-software-properties debconf-utils
 | 
	
		
			
			| 4920 | 4799 |    apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
 | 
	
		
			
			| 4921 | 4800 |    add-apt-repository 'deb http://mariadb.biz.net.id//repo/10.1/debian sid main'
 | 
	
	
		
			
			|  | @@ -5051,7 +4930,7 @@ function repair_databases_script {
 | 
	
		
			
			| 5051 | 4930 |  }
 | 
	
		
			
			| 5052 | 4931 |  
 | 
	
		
			
			| 5053 | 4932 |  function install_owncloud_music_app {
 | 
	
		
			
			| 5054 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4933 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 5055 | 4934 |        return
 | 
	
		
			
			| 5056 | 4935 |    fi
 | 
	
		
			
			| 5057 | 4936 |    if grep -Fxq "install_owncloud_music_app" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -5077,13 +4956,9 @@ function install_owncloud_music_app {
 | 
	
		
			
			| 5077 | 4956 |  }
 | 
	
		
			
			| 5078 | 4957 |  
 | 
	
		
			
			| 5079 | 4958 |  function install_owncloud {
 | 
	
		
			
			| 5080 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 4959 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 5081 | 4960 |        return
 | 
	
		
			
			| 5082 | 4961 |    fi
 | 
	
		
			
			| 5083 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 5084 |  | -      echo 'install_owncloud was called before the random number generator was initialised'
 | 
	
		
			
			| 5085 |  | -      exit 853
 | 
	
		
			
			| 5086 |  | -  fi
 | 
	
		
			
			| 5087 | 4962 |    OWNCLOUD_COMPLETION_MSG1=" *** Freedombone $SYSTEM_TYPE is now installed ***"
 | 
	
		
			
			| 5088 | 4963 |    OWNCLOUD_COMPLETION_MSG2="Open $OWNCLOUD_DOMAIN_NAME in a web browser to complete the setup"
 | 
	
		
			
			| 5089 | 4964 |    if grep -Fxq "install_owncloud" $COMPLETION_FILE; then
 | 
	
	
		
			
			|  | @@ -5330,13 +5205,9 @@ quit" > $INSTALL_DIR/batch.sql
 | 
	
		
			
			| 5330 | 5205 |  }
 | 
	
		
			
			| 5331 | 5206 |  
 | 
	
		
			
			| 5332 | 5207 |  function install_xmpp {
 | 
	
		
			
			| 5333 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 5208 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 5334 | 5209 |        return
 | 
	
		
			
			| 5335 | 5210 |    fi
 | 
	
		
			
			| 5336 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 5337 |  | -      echo 'install_xmpp was called before the random number generator was initialised'
 | 
	
		
			
			| 5338 |  | -      exit 853
 | 
	
		
			
			| 5339 |  | -  fi
 | 
	
		
			
			| 5340 | 5211 |    if grep -Fxq "install_xmpp" $COMPLETION_FILE; then
 | 
	
		
			
			| 5341 | 5212 |        return
 | 
	
		
			
			| 5342 | 5213 |    fi
 | 
	
	
		
			
			|  | @@ -5432,13 +5303,9 @@ function install_watchdog_script {
 | 
	
		
			
			| 5432 | 5303 |  }
 | 
	
		
			
			| 5433 | 5304 |  
 | 
	
		
			
			| 5434 | 5305 |  function install_irc_server {
 | 
	
		
			
			| 5435 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 5306 | +  if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 5436 | 5307 |        return
 | 
	
		
			
			| 5437 | 5308 |    fi
 | 
	
		
			
			| 5438 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 5439 |  | -      echo 'install_irc_server was called before the random number generator was initialised'
 | 
	
		
			
			| 5440 |  | -      exit 853
 | 
	
		
			
			| 5441 |  | -  fi
 | 
	
		
			
			| 5442 | 5309 |    if grep -Fxq "install_irc_server" $COMPLETION_FILE; then
 | 
	
		
			
			| 5443 | 5310 |        return
 | 
	
		
			
			| 5444 | 5311 |    fi
 | 
	
	
		
			
			|  | @@ -5516,13 +5383,9 @@ function get_wiki_admin_password {
 | 
	
		
			
			| 5516 | 5383 |  }
 | 
	
		
			
			| 5517 | 5384 |  
 | 
	
		
			
			| 5518 | 5385 |  function install_wiki {
 | 
	
		
			
			| 5519 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 5386 | +  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 5520 | 5387 |        return
 | 
	
		
			
			| 5521 | 5388 |    fi
 | 
	
		
			
			| 5522 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 5523 |  | -      echo 'install_wiki was called before the random number generator was initialised'
 | 
	
		
			
			| 5524 |  | -      exit 853
 | 
	
		
			
			| 5525 |  | -  fi
 | 
	
		
			
			| 5526 | 5389 |    if grep -Fxq "install_wiki" $COMPLETION_FILE; then
 | 
	
		
			
			| 5527 | 5390 |        return
 | 
	
		
			
			| 5528 | 5391 |    fi
 | 
	
	
		
			
			|  | @@ -5808,13 +5671,9 @@ function get_blog_admin_password {
 | 
	
		
			
			| 5808 | 5671 |  }
 | 
	
		
			
			| 5809 | 5672 |  
 | 
	
		
			
			| 5810 | 5673 |  function install_blog {
 | 
	
		
			
			| 5811 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 5674 | +  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 5812 | 5675 |        return
 | 
	
		
			
			| 5813 | 5676 |    fi
 | 
	
		
			
			| 5814 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 5815 |  | -      echo 'install_blog was called before the random number generator was initialised'
 | 
	
		
			
			| 5816 |  | -      exit 853
 | 
	
		
			
			| 5817 |  | -  fi
 | 
	
		
			
			| 5818 | 5677 |    if grep -Fxq "install_blog" $COMPLETION_FILE; then
 | 
	
		
			
			| 5819 | 5678 |        return
 | 
	
		
			
			| 5820 | 5679 |    fi
 | 
	
	
		
			
			|  | @@ -6060,13 +5919,9 @@ function install_gnu_social {
 | 
	
		
			
			| 6060 | 5919 |    if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
 | 
	
		
			
			| 6061 | 5920 |        return
 | 
	
		
			
			| 6062 | 5921 |    fi
 | 
	
		
			
			| 6063 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 5922 | +  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 6064 | 5923 |        return
 | 
	
		
			
			| 6065 | 5924 |    fi
 | 
	
		
			
			| 6066 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 6067 |  | -      echo 'install_gnu_social was called before the random number generator was initialised'
 | 
	
		
			
			| 6068 |  | -      exit 853
 | 
	
		
			
			| 6069 |  | -  fi
 | 
	
		
			
			| 6070 | 5925 |    if [ ! $MICROBLOG_DOMAIN_NAME ]; then
 | 
	
		
			
			| 6071 | 5926 |        return
 | 
	
		
			
			| 6072 | 5927 |    fi
 | 
	
	
		
			
			|  | @@ -6313,13 +6168,9 @@ function install_redmatrix {
 | 
	
		
			
			| 6313 | 6168 |    if grep -Fxq "install_redmatrix" $COMPLETION_FILE; then
 | 
	
		
			
			| 6314 | 6169 |        return
 | 
	
		
			
			| 6315 | 6170 |    fi
 | 
	
		
			
			| 6316 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 6171 | +  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 6317 | 6172 |        return
 | 
	
		
			
			| 6318 | 6173 |    fi
 | 
	
		
			
			| 6319 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 6320 |  | -      echo 'install_redmatrix was called before the random number generator was initialised'
 | 
	
		
			
			| 6321 |  | -      exit 853
 | 
	
		
			
			| 6322 |  | -  fi
 | 
	
		
			
			| 6323 | 6174 |    # if this is exclusively a social setup
 | 
	
		
			
			| 6324 | 6175 |    if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
 | 
	
		
			
			| 6325 | 6176 |        REDMATRIX_DOMAIN_NAME=$DOMAIN_NAME
 | 
	
	
		
			
			|  | @@ -6633,7 +6484,7 @@ function install_dlna_server {
 | 
	
		
			
			| 6633 | 6484 |    if grep -Fxq "install_dlna_server" $COMPLETION_FILE; then
 | 
	
		
			
			| 6634 | 6485 |        return
 | 
	
		
			
			| 6635 | 6486 |    fi
 | 
	
		
			
			| 6636 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 6487 | +  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 6637 | 6488 |        return
 | 
	
		
			
			| 6638 | 6489 |    fi
 | 
	
		
			
			| 6639 | 6490 |    apt-get -y --force-yes install minidlna
 | 
	
	
		
			
			|  | @@ -6685,7 +6536,7 @@ function install_mediagoblin {
 | 
	
		
			
			| 6685 | 6536 |    if grep -Fxq "install_mediagoblin" $COMPLETION_FILE; then
 | 
	
		
			
			| 6686 | 6537 |        return
 | 
	
		
			
			| 6687 | 6538 |    fi
 | 
	
		
			
			| 6688 |  | -  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" || $SYSTEM_TYPE == "$VARIANT_TOR_WIFI" ]]; then
 | 
	
		
			
			|  | 6539 | +  if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_TOR_DONGLE" ]]; then
 | 
	
		
			
			| 6689 | 6540 |        return
 | 
	
		
			
			| 6690 | 6541 |    fi
 | 
	
		
			
			| 6691 | 6542 |    # if this is exclusively a writer setup
 | 
	
	
		
			
			|  | @@ -7024,27 +6875,46 @@ function route_outgoing_traffic_through_tor {
 | 
	
		
			
			| 7024 | 6875 |    fi
 | 
	
		
			
			| 7025 | 6876 |    apt-get -y --force-yes install tor tor-arm
 | 
	
		
			
			| 7026 | 6877 |  
 | 
	
		
			
			| 7027 |  | -  # Ensure that redirects are possible
 | 
	
		
			
			| 7028 |  | -  sed -i "s/net.ipv4.conf.all.accept_redirects = 0/net.ipv4.conf.all.accept_redirects = 1/g" /etc/sysctl.conf
 | 
	
		
			
			| 7029 |  | -  sed -i "s/net.ipv4.conf.all.send_redirects = 0/net.ipv4.conf.all.send_redirects = 1/g" /etc/sysctl.conf
 | 
	
		
			
			| 7030 |  | -  sed -i "s/net.ipv4.conf.all.accept_source_route = 0/net.ipv4.conf.all.accept_source_route = 1/g" /etc/sysctl.conf
 | 
	
		
			
			| 7031 |  | -  sed -i "s/net.ipv4.conf.default.rp_filter=1/#net.ipv4.conf.default.rp_filter=1/g" /etc/sysctl.conf
 | 
	
		
			
			| 7032 |  | -  sed -i "s/net.ipv4.conf.all.rp_filter=1/#net.ipv4.conf.all.rp_filter=1/g" /etc/sysctl.conf
 | 
	
		
			
			| 7033 |  | -  sed -i 's/net.ipv4.icmp_echo_ignore_all = 1/net.ipv4.icmp_echo_ignore_all = 0/g' /etc/sysctl.conf
 | 
	
		
			
			| 7034 |  | -  sed -i "s/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g" /etc/sysctl.conf
 | 
	
		
			
			|  | 6878 | +  ### set variables
 | 
	
		
			
			|  | 6879 | +  # Destinations you don't want routed through Tor
 | 
	
		
			
			|  | 6880 | +  _non_tor="192.168.1.0/24 192.168.0.0/24"
 | 
	
		
			
			| 7035 | 6881 |  
 | 
	
		
			
			| 7036 |  | -  iptables -F
 | 
	
		
			
			| 7037 |  | -  iptables -t nat -F
 | 
	
		
			
			| 7038 |  | -  iptables -t nat -A PREROUTING -i $WIFI_INTERFACE -p tcp --dport $SSH_PORT -j REDIRECT --to-ports $SSH_PORT
 | 
	
		
			
			| 7039 |  | -  iptables -t nat -A PREROUTING -i $WIFI_INTERFACE -p udp --dport 53 -j REDIRECT --to-ports 53
 | 
	
		
			
			|  | 6882 | +  # The user that Tor runs as
 | 
	
		
			
			|  | 6883 | +  _tor_uid="debian-tor"
 | 
	
		
			
			|  | 6884 | +
 | 
	
		
			
			|  | 6885 | +  # Tor's TransPort
 | 
	
		
			
			|  | 6886 | +  _trans_port="9040"
 | 
	
		
			
			|  | 6887 | +
 | 
	
		
			
			|  | 6888 | +  # Your internal interface
 | 
	
		
			
			|  | 6889 | +  _int_if="eth0"
 | 
	
		
			
			| 7040 | 6890 |  
 | 
	
		
			
			| 7041 |  | -  # allow clearnet access for hosts in $_non_tor
 | 
	
		
			
			| 7042 |  | -  NON_TOR="192.168.1.0/24 192.168.0.0/24 192.168.2.0/24 192.168.10.0/24 192.168.4.0/24"
 | 
	
		
			
			| 7043 |  | -  for _clearnet in $NON_TOR 127.0.0.0/9 127.128.0.0/10; do
 | 
	
		
			
			| 7044 |  | -      iptables -t nat -A PREROUTING -d $_clearnet -j RETURN
 | 
	
		
			
			|  | 6891 | +  ### Set iptables *nat
 | 
	
		
			
			|  | 6892 | +  iptables -t nat -A OUTPUT -o lo -j RETURN
 | 
	
		
			
			|  | 6893 | +  iptables -t nat -A OUTPUT -m owner --uid-owner $_tor_uid -j RETURN
 | 
	
		
			
			|  | 6894 | +  iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 53
 | 
	
		
			
			|  | 6895 | +
 | 
	
		
			
			|  | 6896 | +  # Allow clearnet access for hosts in $_non_tor
 | 
	
		
			
			|  | 6897 | +  for _clearnet in $_non_tor; do
 | 
	
		
			
			|  | 6898 | +      iptables -t nat -A OUTPUT -d $_clearnet -j RETURN
 | 
	
		
			
			|  | 6899 | +      iptables -t nat -A PREROUTING -i $_int_if -d $_clearnet -j RETURN
 | 
	
		
			
			| 7045 | 6900 |    done
 | 
	
		
			
			| 7046 | 6901 |  
 | 
	
		
			
			| 7047 |  | -  iptables -t nat -A PREROUTING -i $WIFI_INTERFACE -p tcp --syn -j REDIRECT --to-ports 9040
 | 
	
		
			
			|  | 6902 | +  # Redirect all other pre-routing and output to Tor
 | 
	
		
			
			|  | 6903 | +  iptables -t nat -A OUTPUT -p tcp --syn -j REDIRECT --to-ports $_trans_port
 | 
	
		
			
			|  | 6904 | +  iptables -t nat -A PREROUTING -i $_int_if -p udp --dport 53 -j REDIRECT --to-ports 53
 | 
	
		
			
			|  | 6905 | +  iptables -t nat -A PREROUTING -i $_int_if -p tcp --syn -j REDIRECT --to-ports $_trans_port
 | 
	
		
			
			|  | 6906 | +
 | 
	
		
			
			|  | 6907 | +  ### set iptables *filter
 | 
	
		
			
			|  | 6908 | +  iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 | 
	
		
			
			|  | 6909 | +
 | 
	
		
			
			|  | 6910 | +  # Allow clearnet access for hosts in $_non_tor
 | 
	
		
			
			|  | 6911 | +  for _clearnet in $_non_tor 127.0.0.0/8; do
 | 
	
		
			
			|  | 6912 | +      iptables -A OUTPUT -d $_clearnet -j ACCEPT
 | 
	
		
			
			|  | 6913 | +  done
 | 
	
		
			
			|  | 6914 | +
 | 
	
		
			
			|  | 6915 | +  # Allow only Tor output
 | 
	
		
			
			|  | 6916 | +  iptables -A OUTPUT -m owner --uid-owner $_tor_uid -j ACCEPT
 | 
	
		
			
			|  | 6917 | +  iptables -A OUTPUT -j REJECT
 | 
	
		
			
			| 7048 | 6918 |  
 | 
	
		
			
			| 7049 | 6919 |    save_firewall_settings
 | 
	
		
			
			| 7050 | 6920 |  
 | 
	
	
		
			
			|  | @@ -7053,19 +6923,14 @@ function route_outgoing_traffic_through_tor {
 | 
	
		
			
			| 7053 | 6923 |        /sbin/sysctl -p
 | 
	
		
			
			| 7054 | 6924 |    fi
 | 
	
		
			
			| 7055 | 6925 |  
 | 
	
		
			
			| 7056 |  | -  if ! grep -q 'Log notice file /var/log/tor/notices.log' /etc/tor/torrc; then
 | 
	
		
			
			| 7057 |  | -      echo 'Log notice file /var/log/tor/notices.log' >> /etc/tor/torrc
 | 
	
		
			
			| 7058 |  | -  fi
 | 
	
		
			
			| 7059 |  | -  sed -i 's|#Log notice file /var/log/tor/notices.log|Log notice file /var/log/tor/notices.log|g' /etc/tor/torrc
 | 
	
		
			
			|  | 6926 | +  echo 'domain localdomain' > /etc/resolv.conf
 | 
	
		
			
			|  | 6927 | +  echo 'search localdomain' >> /etc/resolv.conf
 | 
	
		
			
			|  | 6928 | +  echo 'nameserver 127.0.0.1' >> /etc/resolv.conf
 | 
	
		
			
			| 7060 | 6929 |  
 | 
	
		
			
			| 7061 | 6930 |    if ! grep -q "VirtualAddrNetworkIPv4" /etc/tor/torrc; then
 | 
	
		
			
			| 7062 | 6931 |        echo 'VirtualAddrNetworkIPv4 10.192.0.0/10' >> /etc/tor/torrc
 | 
	
		
			
			| 7063 | 6932 |    fi
 | 
	
		
			
			| 7064 | 6933 |  
 | 
	
		
			
			| 7065 |  | -  if ! grep -q "AutomapHostsSuffixes .onion,.exit" /etc/tor/torrc; then
 | 
	
		
			
			| 7066 |  | -      echo 'AutomapHostsSuffixes .onion,.exit' >> /etc/tor/torrc
 | 
	
		
			
			| 7067 |  | -  fi
 | 
	
		
			
			| 7068 |  | -
 | 
	
		
			
			| 7069 | 6934 |    if ! grep -q "AutomapHostsOnResolve" /etc/tor/torrc; then
 | 
	
		
			
			| 7070 | 6935 |        echo 'AutomapHostsOnResolve 1' >> /etc/tor/torrc
 | 
	
		
			
			| 7071 | 6936 |    fi
 | 
	
	
		
			
			|  | @@ -7074,50 +6939,27 @@ function route_outgoing_traffic_through_tor {
 | 
	
		
			
			| 7074 | 6939 |        echo 'TransPort 9040' >> /etc/tor/torrc
 | 
	
		
			
			| 7075 | 6940 |    fi
 | 
	
		
			
			| 7076 | 6941 |  
 | 
	
		
			
			| 7077 |  | -  if ! grep -q "TransListenAddress localhost" /etc/tor/torrc; then
 | 
	
		
			
			| 7078 |  | -      echo "TransListenAddress localhost" >> /etc/tor/torrc
 | 
	
		
			
			|  | 6942 | +  if ! grep -q "TransListenAddress 127.0.0.1" /etc/tor/torrc; then
 | 
	
		
			
			|  | 6943 | +      echo 'TransListenAddress 127.0.0.1' >> /etc/tor/torrc
 | 
	
		
			
			|  | 6944 | +  fi
 | 
	
		
			
			|  | 6945 | +
 | 
	
		
			
			|  | 6946 | +  if ! grep -q "TransListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" /etc/tor/torrc; then
 | 
	
		
			
			|  | 6947 | +      echo "TransListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/tor/torrc
 | 
	
		
			
			| 7079 | 6948 |    fi
 | 
	
		
			
			| 7080 | 6949 |  
 | 
	
		
			
			| 7081 | 6950 |    if ! grep -q "DNSPort" /etc/tor/torrc; then
 | 
	
		
			
			| 7082 | 6951 |        echo 'DNSPort 53' >> /etc/tor/torrc
 | 
	
		
			
			| 7083 | 6952 |    fi
 | 
	
		
			
			| 7084 | 6953 |  
 | 
	
		
			
			| 7085 |  | -  if ! grep -q "DNSListenAddress localhost" /etc/tor/torrc; then
 | 
	
		
			
			| 7086 |  | -      echo "DNSListenAddress localhost" >> /etc/tor/torrc
 | 
	
		
			
			|  | 6954 | +  if ! grep -q "DNSListenAddress 127.0.0.1" /etc/tor/torrc; then
 | 
	
		
			
			|  | 6955 | +      echo 'DNSListenAddress 127.0.0.1' >> /etc/tor/torrc
 | 
	
		
			
			| 7087 | 6956 |    fi
 | 
	
		
			
			| 7088 | 6957 |  
 | 
	
		
			
			| 7089 |  | -  if ! grep -q "ClientOnly" /etc/tor/torrc; then
 | 
	
		
			
			| 7090 |  | -      echo "ClientOnly" >> /etc/tor/torrc
 | 
	
		
			
			|  | 6958 | +  if ! grep -q "DNSListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" /etc/tor/torrc; then
 | 
	
		
			
			|  | 6959 | +      echo "DNSListenAddress $LOCAL_NETWORK_STATIC_IP_ADDRESS" >> /etc/tor/torrc
 | 
	
		
			
			| 7091 | 6960 |    fi
 | 
	
		
			
			| 7092 | 6961 |  
 | 
	
		
			
			| 7093 |  | -  sed -i 's/#RunAsDaemon 1/RunAsDaemon 1/g' /etc/tor/torrc
 | 
	
		
			
			| 7094 |  | -
 | 
	
		
			
			| 7095 |  | -  touch /var/log/tor/notices.log
 | 
	
		
			
			| 7096 |  | -  chown debian-tor /var/log/tor/notices.log
 | 
	
		
			
			| 7097 |  | -  chmod 644 /var/log/tor/notices.log
 | 
	
		
			
			| 7098 |  | -
 | 
	
		
			
			| 7099 | 6962 |    echo 'route_outgoing_traffic_through_tor' >> $COMPLETION_FILE
 | 
	
		
			
			| 7100 |  | -
 | 
	
		
			
			| 7101 |  | -  if [[ $ENABLE_WIFI_HOTSPOT == "yes" ]]; then
 | 
	
		
			
			| 7102 |  | -      if ! grep -q 'check.torproject.org' /home/$MY_USERNAME/README; then
 | 
	
		
			
			| 7103 |  | -          echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7104 |  | -          echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7105 |  | -          echo 'To connect to your own Tor gateway, set your web browser or computer to connect to:' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7106 |  | -          echo '  Proxy type: SOCKSv5' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7107 |  | -          echo '  Port:       9050' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7108 |  | -          echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7109 |  | -          echo '  Transparent proxy port: 9040' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7110 |  | -          echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7111 |  | -          echo 'Before doing anything, verify that you are using the Tor network by visiting:' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7112 |  | -          echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7113 |  | -          echo '  https://check.torproject.org/' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7114 |  | -      fi
 | 
	
		
			
			| 7115 |  | -      echo ''
 | 
	
		
			
			| 7116 |  | -      echo '  *** Freedombone Tor Wifi access point installation is complete. Rebooting... ***'
 | 
	
		
			
			| 7117 |  | -      echo ''
 | 
	
		
			
			| 7118 |  | -      cat /home/$MY_USERNAME/README
 | 
	
		
			
			| 7119 |  | -      reboot
 | 
	
		
			
			| 7120 |  | -  fi
 | 
	
		
			
			| 7121 | 6963 |  }
 | 
	
		
			
			| 7122 | 6964 |  
 | 
	
		
			
			| 7123 | 6965 |  # A command to create a git repository for a project
 | 
	
	
		
			
			|  | @@ -7193,192 +7035,6 @@ function backup_github_projects {
 | 
	
		
			
			| 7193 | 7035 |    echo 'backup_github_projects' >> $COMPLETION_FILE
 | 
	
		
			
			| 7194 | 7036 |  }
 | 
	
		
			
			| 7195 | 7037 |  
 | 
	
		
			
			| 7196 |  | -function get_wifi_essid {
 | 
	
		
			
			| 7197 |  | -  if [ -f /home/$MY_USERNAME/README ]; then
 | 
	
		
			
			| 7198 |  | -      if grep -q "ESSID" /home/$MY_USERNAME/README; then
 | 
	
		
			
			| 7199 |  | -          if [ ! $WIFI_ESSID ]; then
 | 
	
		
			
			| 7200 |  | -              WIFI_ESSID=$(cat /home/$MY_USERNAME/README | grep "ESSID" | awk -F ':' '{print $2}' | sed 's/^ *//')
 | 
	
		
			
			| 7201 |  | -          fi
 | 
	
		
			
			| 7202 |  | -      fi
 | 
	
		
			
			| 7203 |  | -  fi
 | 
	
		
			
			| 7204 |  | -}
 | 
	
		
			
			| 7205 |  | -
 | 
	
		
			
			| 7206 |  | -function get_wifi_password {
 | 
	
		
			
			| 7207 |  | -  if [ -f /home/$MY_USERNAME/README ]; then
 | 
	
		
			
			| 7208 |  | -      if grep -q "Wifi password" /home/$MY_USERNAME/README; then
 | 
	
		
			
			| 7209 |  | -          if [ ! $WIFI_PASSWORD ]; then
 | 
	
		
			
			| 7210 |  | -              WIFI_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Wifi password" | awk -F ':' '{print $2}' | sed 's/^ *//')
 | 
	
		
			
			| 7211 |  | -          fi
 | 
	
		
			
			| 7212 |  | -      fi
 | 
	
		
			
			| 7213 |  | -  fi
 | 
	
		
			
			| 7214 |  | -}
 | 
	
		
			
			| 7215 |  | -
 | 
	
		
			
			| 7216 |  | -function enable_wifi_hotspot {
 | 
	
		
			
			| 7217 |  | -  if grep -Fxq "enable_wifi_hotspot" $COMPLETION_FILE; then
 | 
	
		
			
			| 7218 |  | -      return
 | 
	
		
			
			| 7219 |  | -  fi
 | 
	
		
			
			| 7220 |  | -  if [[ $ENABLE_WIFI_HOTSPOT != "yes" ]]; then
 | 
	
		
			
			| 7221 |  | -      return
 | 
	
		
			
			| 7222 |  | -  fi
 | 
	
		
			
			| 7223 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 7224 |  | -      echo 'enable_wifi_hotspot was called before the random number generator was initialised'
 | 
	
		
			
			| 7225 |  | -      exit 853
 | 
	
		
			
			| 7226 |  | -  fi
 | 
	
		
			
			| 7227 |  | -
 | 
	
		
			
			| 7228 |  | -  get_wifi_essid
 | 
	
		
			
			| 7229 |  | -  get_wifi_password
 | 
	
		
			
			| 7230 |  | -
 | 
	
		
			
			| 7231 |  | -  # Create an ESSID if one doesn't exist
 | 
	
		
			
			| 7232 |  | -  if [ ! $WIFI_ESSID ]; then
 | 
	
		
			
			| 7233 |  | -      TEMP_WIFI_ESSID=$(openssl rand -base64 8)
 | 
	
		
			
			| 7234 |  | -      WIFI_ESSID="Freedom"${TEMP_WIFI_ESSID:0:3}
 | 
	
		
			
			| 7235 |  | -  fi
 | 
	
		
			
			| 7236 |  | -
 | 
	
		
			
			| 7237 |  | -  # Add a password
 | 
	
		
			
			| 7238 |  | -  if [[ $WIFI_FORCE_PASSWORD == "yes" ]]; then
 | 
	
		
			
			| 7239 |  | -      if [ ! $WIFI_PASSWORD ]; then
 | 
	
		
			
			| 7240 |  | -          TEMP_WIFI_PASSWORD=$(openssl rand -base64 8)
 | 
	
		
			
			| 7241 |  | -          WIFI_PASSWORD=${TEMP_WIFI_PASSWORD:0:8}
 | 
	
		
			
			| 7242 |  | -      fi
 | 
	
		
			
			| 7243 |  | -  fi
 | 
	
		
			
			| 7244 |  | -
 | 
	
		
			
			| 7245 |  | -  apt-get -y install hostapd isc-dhcp-server
 | 
	
		
			
			| 7246 |  | -
 | 
	
		
			
			| 7247 |  | -  if [ ! -f /etc/default/hostapd ]; then
 | 
	
		
			
			| 7248 |  | -      echo 'Unable to find /etc/default/hostapd. hostapd may not have installed correctly'
 | 
	
		
			
			| 7249 |  | -      exit 490
 | 
	
		
			
			| 7250 |  | -  fi
 | 
	
		
			
			| 7251 |  | -
 | 
	
		
			
			| 7252 |  | -  #mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/
 | 
	
		
			
			| 7253 |  | -
 | 
	
		
			
			| 7254 |  | -  sed -i 's|#DAEMON_CONF=.*|DAEMON_CONF="/etc/hostapd/hostapd.conf"|g' /etc/default/hostapd
 | 
	
		
			
			| 7255 |  | -
 | 
	
		
			
			| 7256 |  | -  echo "interface=$WIFI_INTERFACE" > /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7257 |  | -  echo "ssid=$WIFI_ESSID" >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7258 |  | -  echo "hw_mode=$WIFI_HOTSPOT_MODE" >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7259 |  | -  echo "channel=${WIFI_HOTSPOT_CHANNEL}" >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7260 |  | -  echo 'macaddr_acl=0' >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7261 |  | -  echo 'auth_algs=1' >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7262 |  | -  echo 'ignore_broadcast_ssid=0' >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7263 |  | -  echo 'wpa=2' >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7264 |  | -  echo "wpa_passphrase=$WIFI_PASSWORD" >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7265 |  | -  echo 'wpa_key_mgmt=WPA-PSK' >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7266 |  | -  echo 'wpa_pairwise=TKIP' >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7267 |  | -  echo 'rsn_pairwise=CCMP' >> /etc/hostapd/hostapd.conf
 | 
	
		
			
			| 7268 |  | -
 | 
	
		
			
			| 7269 |  | -  if ! grep -q "Wifi hotspot" /etc/network/interfaces; then
 | 
	
		
			
			| 7270 |  | -      echo '' >> /etc/network/interfaces
 | 
	
		
			
			| 7271 |  | -      echo '# Wifi hotspot' >> /etc/network/interfaces
 | 
	
		
			
			| 7272 |  | -      echo "iface $WIFI_INTERFACE inet static" >> /etc/network/interfaces
 | 
	
		
			
			| 7273 |  | -      echo "    address $WIFI_STATIC_IP_ADDRESS" >> /etc/network/interfaces
 | 
	
		
			
			| 7274 |  | -      echo '    netmask 255.255.255.0' >> /etc/network/interfaces
 | 
	
		
			
			| 7275 |  | -  fi
 | 
	
		
			
			| 7276 |  | -
 | 
	
		
			
			| 7277 |  | -  if ! grep -q '#option domain-name "example.org";' /etc/network/interfaces; then
 | 
	
		
			
			| 7278 |  | -      sed -i 's/option domain-name "example.org";/#option domain-name "example.org";/g' /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7279 |  | -  fi
 | 
	
		
			
			| 7280 |  | -  if ! grep -q '#option domain-name-servers ns1.example.org, ns2.example.org;' /etc/network/interfaces; then
 | 
	
		
			
			| 7281 |  | -      sed -i 's/option domain-name-servers ns1.example.org, ns2.example.org;/#option domain-name-servers ns1.example.org, ns2.example.org;/g' /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7282 |  | -  fi
 | 
	
		
			
			| 7283 |  | -  sed -i 's/#authoritative;/authoritative;/g' /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7284 |  | -
 | 
	
		
			
			| 7285 |  | -  if ! grep -q "subnet $WIFI_SUBNET netmask 255.255.255.0" /etc/dhcp/dhcpd.conf; then
 | 
	
		
			
			| 7286 |  | -      echo "subnet $WIFI_SUBNET netmask 255.255.255.0 {" >> /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7287 |  | -      echo "    range $WIFI_IP_RANGE_START $WIFI_IP_RANGE_END;" >> /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7288 |  | -      echo "    option broadcast-address $WIFI_BROADCAST_ADDRESS;" >> /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7289 |  | -      echo "    option routers $ROUTER_IP_ADDRESS;" >> /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7290 |  | -      echo '    default-lease-time 600;' >> /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7291 |  | -      echo '    max-lease-time 7200;' >> /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7292 |  | -      echo '    option domain-name "local";' >> /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7293 |  | -      echo "    option domain-name-servers $WIFI_DNS_SERVERS;" >> /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7294 |  | -      echo '}' >> /etc/dhcp/dhcpd.conf
 | 
	
		
			
			| 7295 |  | -  fi
 | 
	
		
			
			| 7296 |  | -
 | 
	
		
			
			| 7297 |  | -  sed -i "s/INTERFACES=.*/INTERFACES='$WIFI_INTERFACE'/g" /etc/default/isc-dhcp-server
 | 
	
		
			
			| 7298 |  | -
 | 
	
		
			
			| 7299 |  | -  # Add details to the README file
 | 
	
		
			
			| 7300 |  | -  if ! grep -q "Wifi Hotspot" /home/$MY_USERNAME/README; then
 | 
	
		
			
			| 7301 |  | -      echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7302 |  | -      echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7303 |  | -      echo 'Wifi Hotspot' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7304 |  | -      echo '============' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7305 |  | -      echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7306 |  | -      if [ $WIFI_PASSWORD ]; then
 | 
	
		
			
			| 7307 |  | -          echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7308 |  | -      else
 | 
	
		
			
			| 7309 |  | -          echo 'No password' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7310 |  | -      fi
 | 
	
		
			
			| 7311 |  | -      chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
 | 
	
		
			
			| 7312 |  | -  fi
 | 
	
		
			
			| 7313 |  | -
 | 
	
		
			
			| 7314 |  | -  echo 'enable_wifi_hotspot' >> $COMPLETION_FILE
 | 
	
		
			
			| 7315 |  | -}
 | 
	
		
			
			| 7316 |  | -
 | 
	
		
			
			| 7317 |  | -function enable_wifi {
 | 
	
		
			
			| 7318 |  | -  if grep -Fxq "enable_wifi" $COMPLETION_FILE; then
 | 
	
		
			
			| 7319 |  | -      return
 | 
	
		
			
			| 7320 |  | -  fi
 | 
	
		
			
			| 7321 |  | -  if [[ $ENABLE_WIFI != "yes" ]]; then
 | 
	
		
			
			| 7322 |  | -      return
 | 
	
		
			
			| 7323 |  | -  fi
 | 
	
		
			
			| 7324 |  | -  if ! grep -Fxq "random_number_generator" $COMPLETION_FILE; then
 | 
	
		
			
			| 7325 |  | -      echo 'enable_wifi was called before the random number generator was initialised'
 | 
	
		
			
			| 7326 |  | -      exit 853
 | 
	
		
			
			| 7327 |  | -  fi
 | 
	
		
			
			| 7328 |  | -
 | 
	
		
			
			| 7329 |  | -  sed -i 's/#auto wlan0/auto wlan0/g' /etc/network/interfaces
 | 
	
		
			
			| 7330 |  | -  sed -i 's/#iface wlan0 inet dhcp/iface wlan0 inet dhcp/g' /etc/network/interfaces
 | 
	
		
			
			| 7331 |  | -  sed -i 's/#    wpa-ssid "essid"/    wpa-ssid "essid"/g' /etc/network/interfaces
 | 
	
		
			
			| 7332 |  | -
 | 
	
		
			
			| 7333 |  | -  get_wifi_essid
 | 
	
		
			
			| 7334 |  | -  get_wifi_password
 | 
	
		
			
			| 7335 |  | -
 | 
	
		
			
			| 7336 |  | -  # Create an ESSID if one doesn't exist
 | 
	
		
			
			| 7337 |  | -  if [ ! $WIFI_ESSID ]; then
 | 
	
		
			
			| 7338 |  | -      TEMP_WIFI_ESSID=$(openssl rand -base64 8)
 | 
	
		
			
			| 7339 |  | -      WIFI_ESSID="Freedom"${TEMP_WIFI_ESSID:0:3}
 | 
	
		
			
			| 7340 |  | -  fi
 | 
	
		
			
			| 7341 |  | -  sed -i "s/essid/$WIFI_ESSID/g" /etc/network/interfaces
 | 
	
		
			
			| 7342 |  | -  # Add a password
 | 
	
		
			
			| 7343 |  | -  if [[ $WIFI_FORCE_PASSWORD == "yes" ]]; then
 | 
	
		
			
			| 7344 |  | -      if [ ! $WIFI_PASSWORD ]; then
 | 
	
		
			
			| 7345 |  | -          TEMP_WIFI_PASSWORD=$(openssl rand -base64 8)
 | 
	
		
			
			| 7346 |  | -          WIFI_PASSWORD=${TEMP_WIFI_PASSWORD:0:8}
 | 
	
		
			
			| 7347 |  | -      fi
 | 
	
		
			
			| 7348 |  | -  fi
 | 
	
		
			
			| 7349 |  | -
 | 
	
		
			
			| 7350 |  | -  # Add a password
 | 
	
		
			
			| 7351 |  | -  if [ $WIFI_PASSWORD ]; then
 | 
	
		
			
			| 7352 |  | -      sed -i 's/#    wpa-psk  "password"/    wpa-psk  "wifipassword"/g' /etc/network/interfaces
 | 
	
		
			
			| 7353 |  | -      sed -i "s/wifipassword/$WIFI_PASSWORD/g" /etc/network/interfaces
 | 
	
		
			
			| 7354 |  | -  fi
 | 
	
		
			
			| 7355 |  | -
 | 
	
		
			
			| 7356 |  | -  # Add details to the README file
 | 
	
		
			
			| 7357 |  | -  if [[ ENABLE_WIFI != "yes" ]]; then
 | 
	
		
			
			| 7358 |  | -      if ! grep -q "Wifi Settings" /home/$MY_USERNAME/README; then
 | 
	
		
			
			| 7359 |  | -          echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7360 |  | -          echo '' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7361 |  | -          echo 'Wifi Settings' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7362 |  | -          echo '=============' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7363 |  | -          echo "ESSID: $WIFI_ESSID" >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7364 |  | -          if [ $WIFI_PASSWORD ]; then
 | 
	
		
			
			| 7365 |  | -              echo "Wifi password: $WIFI_PASSWORD" >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7366 |  | -          else
 | 
	
		
			
			| 7367 |  | -              echo 'No password' >> /home/$MY_USERNAME/README
 | 
	
		
			
			| 7368 |  | -          fi
 | 
	
		
			
			| 7369 |  | -          chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
 | 
	
		
			
			| 7370 |  | -      fi
 | 
	
		
			
			| 7371 |  | -  fi
 | 
	
		
			
			| 7372 |  | -
 | 
	
		
			
			| 7373 |  | -  service networking restart
 | 
	
		
			
			| 7374 |  | -  if [ ! "$?" = "0" ]; then
 | 
	
		
			
			| 7375 |  | -      echo 'Unable to restart networking'
 | 
	
		
			
			| 7376 |  | -      exit 855
 | 
	
		
			
			| 7377 |  | -  fi
 | 
	
		
			
			| 7378 |  | -
 | 
	
		
			
			| 7379 |  | -  echo 'enable_wifi' >> $COMPLETION_FILE
 | 
	
		
			
			| 7380 |  | -}
 | 
	
		
			
			| 7381 |  | -
 | 
	
		
			
			| 7382 | 7038 |  function install_final {
 | 
	
		
			
			| 7383 | 7039 |    if grep -Fxq "install_final" $COMPLETION_FILE; then
 | 
	
		
			
			| 7384 | 7040 |        return
 | 
	
	
		
			
			|  | @@ -7431,8 +7087,6 @@ search_for_attached_usb_drive
 | 
	
		
			
			| 7431 | 7087 |  regenerate_ssh_keys
 | 
	
		
			
			| 7432 | 7088 |  script_to_make_self_signed_certificates
 | 
	
		
			
			| 7433 | 7089 |  create_upgrade_script
 | 
	
		
			
			| 7434 |  | -enable_wifi_hotspot
 | 
	
		
			
			| 7435 |  | -enable_wifi
 | 
	
		
			
			| 7436 | 7090 |  route_outgoing_traffic_through_tor
 | 
	
		
			
			| 7437 | 7091 |  install_watchdog_script
 | 
	
		
			
			| 7438 | 7092 |  configure_email
 |