|  | @@ -203,9 +203,114 @@ function pad_string {
 | 
	
		
			
			| 203 | 203 |      echo -n -e "$1" | sed -e :a -e 's/^.\{1,25\}$/& /;ta'
 | 
	
		
			
			| 204 | 204 |  }
 | 
	
		
			
			| 205 | 205 |  
 | 
	
		
			
			|  | 206 | +function show_tor_bridges {
 | 
	
		
			
			|  | 207 | +    if ! grep -q "#BridgeRelay" /etc/tor/torrc; then
 | 
	
		
			
			|  | 208 | +        if grep -q "BridgeRelay 1" /etc/tor/torrc; then
 | 
	
		
			
			|  | 209 | +            read_config_param 'TOR_BRIDGE_PORT'
 | 
	
		
			
			|  | 210 | +            read_config_param 'TOR_BRIDGE_NICKNAME'
 | 
	
		
			
			|  | 211 | +            if [ ${#TOR_BRIDGE_NICKNAME} -gt 0 ]; then
 | 
	
		
			
			|  | 212 | +                W+=($"Your Tor Bridge" "$(get_ipv4_address):${TOR_BRIDGE_PORT} ${TOR_BRIDGE_NICKNAME}")
 | 
	
		
			
			|  | 213 | +            fi
 | 
	
		
			
			|  | 214 | +        fi
 | 
	
		
			
			|  | 215 | +    fi
 | 
	
		
			
			|  | 216 | +    bridges_list=$(grep "Bridge " /etc/tor/torrc | grep -v '##')
 | 
	
		
			
			|  | 217 | +    if [ ${#bridges_list} -gt 0 ]; then
 | 
	
		
			
			|  | 218 | +        for i in "${bridges_list[@]}"
 | 
	
		
			
			|  | 219 | +        do
 | 
	
		
			
			|  | 220 | +            bridgestr=$(i//Bridge /)
 | 
	
		
			
			|  | 221 | +            W+=($"Tor Bridge" "$bridgestr")
 | 
	
		
			
			|  | 222 | +        done
 | 
	
		
			
			|  | 223 | +    fi
 | 
	
		
			
			|  | 224 | +}
 | 
	
		
			
			|  | 225 | +
 | 
	
		
			
			| 206 | 226 |  function show_domains {
 | 
	
		
			
			| 207 | 227 |      read_config_param "DEFAULT_DOMAIN_NAME"
 | 
	
		
			
			| 208 | 228 |  
 | 
	
		
			
			|  | 229 | +    W=()
 | 
	
		
			
			|  | 230 | +
 | 
	
		
			
			|  | 231 | +    if grep -q "ssh onion domain" "$COMPLETION_FILE"; then
 | 
	
		
			
			|  | 232 | +        domain_onion=$(grep 'ssh onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}')
 | 
	
		
			
			|  | 233 | +        W+=("ssh" "${DEFAULT_DOMAIN_NAME} / ${domain_onion}")
 | 
	
		
			
			|  | 234 | +    fi
 | 
	
		
			
			|  | 235 | +    if grep -q "email onion domain" "$COMPLETION_FILE"; then
 | 
	
		
			
			|  | 236 | +        domain_onion=$(grep 'email onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}')
 | 
	
		
			
			|  | 237 | +        W+=("Email" "${DEFAULT_DOMAIN_NAME} / ${domain_onion}")
 | 
	
		
			
			|  | 238 | +    fi
 | 
	
		
			
			|  | 239 | +    if grep -q "sks onion domain" "$COMPLETION_FILE"; then
 | 
	
		
			
			|  | 240 | +        read_config_param "KEYSERVER_DOMAIN_NAME"
 | 
	
		
			
			|  | 241 | +        domain_onion=$(grep 'sks onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}')
 | 
	
		
			
			|  | 242 | +        W+=("SKS" "${KEYSERVER_DOMAIN_NAME} / ${domain_onion}")
 | 
	
		
			
			|  | 243 | +    fi
 | 
	
		
			
			|  | 244 | +
 | 
	
		
			
			|  | 245 | +    INTRODUCER_FILENAME=/home/tahoelafs/data/private/introducer.furl
 | 
	
		
			
			|  | 246 | +    if [ -f $INTRODUCER_FILENAME ]; then
 | 
	
		
			
			|  | 247 | +        W+=("Tahoe-LAFS" "$(cat $INTRODUCER_FILENAME)")
 | 
	
		
			
			|  | 248 | +    fi
 | 
	
		
			
			|  | 249 | +
 | 
	
		
			
			|  | 250 | +    show_tor_bridges
 | 
	
		
			
			|  | 251 | +
 | 
	
		
			
			|  | 252 | +    # shellcheck disable=SC2068
 | 
	
		
			
			|  | 253 | +    for app_name in ${APPS_INSTALLED_NAMES[@]}
 | 
	
		
			
			|  | 254 | +    do
 | 
	
		
			
			|  | 255 | +        if ! grep -q "SHOW_ON_ABOUT=1" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
 | 
	
		
			
			|  | 256 | +            continue
 | 
	
		
			
			|  | 257 | +        fi
 | 
	
		
			
			|  | 258 | +
 | 
	
		
			
			|  | 259 | +        # handle the foibles of capitalisation
 | 
	
		
			
			|  | 260 | +        if ! grep -q "${app_name} domain" "$COMPLETION_FILE"; then
 | 
	
		
			
			|  | 261 | +            app_name_upper=$(echo "${app_name}" | awk '{print toupper($0)}')
 | 
	
		
			
			|  | 262 | +            if grep -q "${app_name_upper} domain" "$COMPLETION_FILE"; then
 | 
	
		
			
			|  | 263 | +                app_name=${app_name_upper}
 | 
	
		
			
			|  | 264 | +            else
 | 
	
		
			
			|  | 265 | +                app_name_first_upper="$(tr '[:lower:]' '[:upper:]' <<< "${app_name:0:1}")${app_name:1}"
 | 
	
		
			
			|  | 266 | +                if grep -q "${app_name_first_upper} domain" "$COMPLETION_FILE"; then
 | 
	
		
			
			|  | 267 | +                    app_name=${app_name_first_upper}
 | 
	
		
			
			|  | 268 | +                fi
 | 
	
		
			
			|  | 269 | +            fi
 | 
	
		
			
			|  | 270 | +        fi
 | 
	
		
			
			|  | 271 | +
 | 
	
		
			
			|  | 272 | +        if [ ${#app_name} -gt 0 ]; then
 | 
	
		
			
			|  | 273 | +            icann_address=$(get_app_icann_address "$app_name")
 | 
	
		
			
			|  | 274 | +            if grep -q "SHOW_ICANN_ADDRESS_ON_ABOUT=0" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
 | 
	
		
			
			|  | 275 | +                icann_address='-'
 | 
	
		
			
			|  | 276 | +            fi
 | 
	
		
			
			|  | 277 | +            if [[ "$ONION_ONLY" != 'no' ]]; then
 | 
	
		
			
			|  | 278 | +                if [[ "${icann_address}" != "${LOCAL_NAME}.local" ]]; then
 | 
	
		
			
			|  | 279 | +                    icann_address='-'
 | 
	
		
			
			|  | 280 | +                fi
 | 
	
		
			
			|  | 281 | +            fi
 | 
	
		
			
			|  | 282 | +            onion_address=$(get_app_onion_address "$app_name")
 | 
	
		
			
			|  | 283 | +            if [ ${#onion_address} -eq 0 ]; then
 | 
	
		
			
			|  | 284 | +                onion_address="-"
 | 
	
		
			
			|  | 285 | +            fi
 | 
	
		
			
			|  | 286 | +
 | 
	
		
			
			|  | 287 | +            W+=("${app_name}" "${icann_address} / ${onion_address}")
 | 
	
		
			
			|  | 288 | +
 | 
	
		
			
			|  | 289 | +            if grep -q "mobile${app_name} onion domain" "$COMPLETION_FILE"; then
 | 
	
		
			
			|  | 290 | +                onion_address=$(get_app_onion_address "${app_name}" "mobile")
 | 
	
		
			
			|  | 291 | +                W+=("${app_name} (mobile)" "${icann_address} / ${onion_address}")
 | 
	
		
			
			|  | 292 | +            fi
 | 
	
		
			
			|  | 293 | +        fi
 | 
	
		
			
			|  | 294 | +    done
 | 
	
		
			
			|  | 295 | +
 | 
	
		
			
			|  | 296 | +    if grep -q "rss reader domain" "$COMPLETION_FILE"; then
 | 
	
		
			
			|  | 297 | +        if [ -d /var/lib/tor/hidden_service_ttrss ]; then
 | 
	
		
			
			|  | 298 | +            domain_onion=$(cat /var/lib/tor/hidden_service_ttrss/hostname)
 | 
	
		
			
			|  | 299 | +            W+=("RSS Reader" "${domain_onion}")
 | 
	
		
			
			|  | 300 | +        fi
 | 
	
		
			
			|  | 301 | +        if [ -d /var/lib/tor/hidden_service_mobilerss ]; then
 | 
	
		
			
			|  | 302 | +            domain_onion=$(cat /var/lib/tor/hidden_service_mobilerss/hostname)
 | 
	
		
			
			|  | 303 | +            W+=("RSS mobile" "${domain_onion}")
 | 
	
		
			
			|  | 304 | +        fi
 | 
	
		
			
			|  | 305 | +    fi
 | 
	
		
			
			|  | 306 | +
 | 
	
		
			
			|  | 307 | +    # shellcheck disable=SC2068
 | 
	
		
			
			|  | 308 | +    dialog --backtitle $"Freedombone Control Panel" --title $"Domains" --menu $"You can use shift+cursors to select text" 28 78 28 ${W[@]} 3>&2 2>&1 1>&3
 | 
	
		
			
			|  | 309 | +}
 | 
	
		
			
			|  | 310 | +
 | 
	
		
			
			|  | 311 | +function show_domains_old {
 | 
	
		
			
			|  | 312 | +    read_config_param "DEFAULT_DOMAIN_NAME"
 | 
	
		
			
			|  | 313 | +
 | 
	
		
			
			| 209 | 314 |      echo 'Domains'
 | 
	
		
			
			| 210 | 315 |      echo '======='
 | 
	
		
			
			| 211 | 316 |      echo ''
 | 
	
	
		
			
			|  | @@ -345,34 +450,6 @@ function show_ip_addresses {
 | 
	
		
			
			| 345 | 450 |      echo ''
 | 
	
		
			
			| 346 | 451 |  }
 | 
	
		
			
			| 347 | 452 |  
 | 
	
		
			
			| 348 |  | -function show_tor_bridges {
 | 
	
		
			
			| 349 |  | -    bridges_list=$(grep "Bridge " /etc/tor/torrc | grep -v '##')
 | 
	
		
			
			| 350 |  | -    if [ ${#bridges_list} -gt 0 ]; then
 | 
	
		
			
			| 351 |  | -        echo $'Tor Bridges'
 | 
	
		
			
			| 352 |  | -        echo '==========='
 | 
	
		
			
			| 353 |  | -        echo ''
 | 
	
		
			
			| 354 |  | -        echo "${bridges_list}"
 | 
	
		
			
			| 355 |  | -        echo ''
 | 
	
		
			
			| 356 |  | -        echo ''
 | 
	
		
			
			| 357 |  | -    fi
 | 
	
		
			
			| 358 |  | -    if ! grep -q "#BridgeRelay" /etc/tor/torrc; then
 | 
	
		
			
			| 359 |  | -        if grep -q "BridgeRelay 1" /etc/tor/torrc; then
 | 
	
		
			
			| 360 |  | -            read_config_param 'TOR_BRIDGE_PORT'
 | 
	
		
			
			| 361 |  | -            read_config_param 'TOR_BRIDGE_NICKNAME'
 | 
	
		
			
			| 362 |  | -            if [ ${#TOR_BRIDGE_NICKNAME} -gt 0 ]; then
 | 
	
		
			
			| 363 |  | -                echo "Tor bridge on this system"
 | 
	
		
			
			| 364 |  | -                echo '========================='
 | 
	
		
			
			| 365 |  | -                echo ''
 | 
	
		
			
			| 366 |  | -                echo "IP Address: $(get_ipv4_address)"
 | 
	
		
			
			| 367 |  | -                echo "Port:       ${TOR_BRIDGE_PORT}"
 | 
	
		
			
			| 368 |  | -                echo "Nickname:   ${TOR_BRIDGE_NICKNAME}"
 | 
	
		
			
			| 369 |  | -                echo ''
 | 
	
		
			
			| 370 |  | -                echo ''
 | 
	
		
			
			| 371 |  | -            fi
 | 
	
		
			
			| 372 |  | -        fi
 | 
	
		
			
			| 373 |  | -    fi
 | 
	
		
			
			| 374 |  | -}
 | 
	
		
			
			| 375 |  | -
 | 
	
		
			
			| 376 | 453 |  function show_ssh_public_key {
 | 
	
		
			
			| 377 | 454 |      echo $'SSH Public Keys'
 | 
	
		
			
			| 378 | 455 |      echo '==============='
 | 
	
	
		
			
			|  | @@ -382,33 +459,18 @@ function show_ssh_public_key {
 | 
	
		
			
			| 382 | 459 |      echo ''
 | 
	
		
			
			| 383 | 460 |  }
 | 
	
		
			
			| 384 | 461 |  
 | 
	
		
			
			| 385 |  | -function show_tahoelafs_introducer {
 | 
	
		
			
			| 386 |  | -    INTRODUCER_FILENAME=/home/tahoelafs/data/private/introducer.furl
 | 
	
		
			
			| 387 |  | -    if [ ! -f $INTRODUCER_FILENAME ]; then
 | 
	
		
			
			| 388 |  | -        return
 | 
	
		
			
			| 389 |  | -    fi
 | 
	
		
			
			| 390 |  | -    echo $'Tahoe-LAFS introducer'
 | 
	
		
			
			| 391 |  | -    echo '====================='
 | 
	
		
			
			| 392 |  | -    echo ''
 | 
	
		
			
			| 393 |  | -    cat $INTRODUCER_FILENAME
 | 
	
		
			
			| 394 |  | -    echo ''
 | 
	
		
			
			| 395 |  | -    echo ''
 | 
	
		
			
			| 396 |  | -}
 | 
	
		
			
			| 397 |  | -
 | 
	
		
			
			| 398 | 462 |  function show_about {
 | 
	
		
			
			| 399 | 463 |      detect_apps
 | 
	
		
			
			| 400 | 464 |      get_apps_installed_names
 | 
	
		
			
			| 401 | 465 |  
 | 
	
		
			
			| 402 |  | -    clear
 | 
	
		
			
			| 403 |  | -    echo "==== ${PROJECT_NAME} version ${VERSION} ($DEBIAN_VERSION) ===="
 | 
	
		
			
			| 404 |  | -    echo ''
 | 
	
		
			
			| 405 |  | -    show_ip_addresses
 | 
	
		
			
			| 406 |  | -    show_tor_bridges
 | 
	
		
			
			| 407 |  | -    show_ssh_public_key
 | 
	
		
			
			|  | 466 | +    #clear
 | 
	
		
			
			|  | 467 | +    #echo "==== ${PROJECT_NAME} version ${VERSION} ($DEBIAN_VERSION) ===="
 | 
	
		
			
			|  | 468 | +    #echo ''
 | 
	
		
			
			|  | 469 | +    #show_ip_addresses
 | 
	
		
			
			|  | 470 | +    #show_ssh_public_key
 | 
	
		
			
			| 408 | 471 |      show_domains
 | 
	
		
			
			| 409 |  | -    show_tahoelafs
 | 
	
		
			
			| 410 |  | -    show_users
 | 
	
		
			
			| 411 |  | -    any_key
 | 
	
		
			
			|  | 472 | +    #show_users
 | 
	
		
			
			|  | 473 | +    #any_key
 | 
	
		
			
			| 412 | 474 |  }
 | 
	
		
			
			| 413 | 475 |  
 | 
	
		
			
			| 414 | 476 |  function select_user {
 |