Loop on the about screen
This commit is contained in:
parent
73fe5d686b
commit
863eca60fb
|
@ -224,150 +224,153 @@ function show_tor_bridges {
|
||||||
function show_domains {
|
function show_domains {
|
||||||
read_config_param "DEFAULT_DOMAIN_NAME"
|
read_config_param "DEFAULT_DOMAIN_NAME"
|
||||||
|
|
||||||
W=()
|
while true
|
||||||
|
|
||||||
W+=("IPv4" "$(get_ipv4_address) / $(get_external_ipv4_address)")
|
|
||||||
ipv6_address="$(get_ipv6_address)"
|
|
||||||
if [ ${#ipv6_address} -gt 0 ]; then
|
|
||||||
W+=("IPv6" "${ipv6_address}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /etc/ssh/ssh_host_rsa_key.pub ]; then
|
|
||||||
W+=("ssh rsa sha256" "$(awk '{print $2}' /etc/ssh/ssh_host_rsa_key.pub | base64 -d | sha256sum -b | awk '{print $1}' | xxd -r -p | base64 | sed 's|=||g')")
|
|
||||||
fi
|
|
||||||
if [ -f /etc/ssh/ssh_host_ed25519_key.pub ]; then
|
|
||||||
W+=("ssh ed25519 sha256" "$(awk '{print $2}' /etc/ssh/ssh_host_ed25519_key.pub | base64 -d | sha256sum -b | awk '{print $1}' | xxd -r -p | base64 | sed 's|=||g')")
|
|
||||||
fi
|
|
||||||
|
|
||||||
if grep -q "ssh onion domain" "$COMPLETION_FILE"; then
|
|
||||||
domain_onion=$(grep 'ssh onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}')
|
|
||||||
W+=("ssh" "${DEFAULT_DOMAIN_NAME} / ${domain_onion}")
|
|
||||||
fi
|
|
||||||
if grep -q "email onion domain" "$COMPLETION_FILE"; then
|
|
||||||
domain_onion=$(grep 'email onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}')
|
|
||||||
W+=("Email" "${DEFAULT_DOMAIN_NAME} / ${domain_onion}")
|
|
||||||
fi
|
|
||||||
if grep -q "sks onion domain" "$COMPLETION_FILE"; then
|
|
||||||
read_config_param "KEYSERVER_DOMAIN_NAME"
|
|
||||||
domain_onion=$(grep 'sks onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}')
|
|
||||||
W+=("SKS" "${KEYSERVER_DOMAIN_NAME} / ${domain_onion}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
INTRODUCER_FILENAME=/home/tahoelafs/data/private/introducer.furl
|
|
||||||
if [ -f $INTRODUCER_FILENAME ]; then
|
|
||||||
W+=("Tahoe-LAFS" "$(cat $INTRODUCER_FILENAME)")
|
|
||||||
fi
|
|
||||||
|
|
||||||
show_tor_bridges
|
|
||||||
|
|
||||||
# shellcheck disable=SC2068
|
|
||||||
for app_name in ${APPS_INSTALLED_NAMES[@]}
|
|
||||||
do
|
do
|
||||||
if ! grep -q "SHOW_ON_ABOUT=1" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
|
W=()
|
||||||
continue
|
|
||||||
|
W+=("IPv4" "$(get_ipv4_address) / $(get_external_ipv4_address)")
|
||||||
|
ipv6_address="$(get_ipv6_address)"
|
||||||
|
if [ ${#ipv6_address} -gt 0 ]; then
|
||||||
|
W+=("IPv6" "${ipv6_address}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# handle the foibles of capitalisation
|
if [ -f /etc/ssh/ssh_host_rsa_key.pub ]; then
|
||||||
if ! grep -q "${app_name} domain" "$COMPLETION_FILE"; then
|
W+=("ssh rsa sha256" "$(awk '{print $2}' /etc/ssh/ssh_host_rsa_key.pub | base64 -d | sha256sum -b | awk '{print $1}' | xxd -r -p | base64 | sed 's|=||g')")
|
||||||
app_name_upper=$(echo "${app_name}" | awk '{print toupper($0)}')
|
fi
|
||||||
if grep -q "${app_name_upper} domain" "$COMPLETION_FILE"; then
|
if [ -f /etc/ssh/ssh_host_ed25519_key.pub ]; then
|
||||||
app_name=${app_name_upper}
|
W+=("ssh ed25519 sha256" "$(awk '{print $2}' /etc/ssh/ssh_host_ed25519_key.pub | base64 -d | sha256sum -b | awk '{print $1}' | xxd -r -p | base64 | sed 's|=||g')")
|
||||||
else
|
fi
|
||||||
app_name_first_upper="$(tr '[:lower:]' '[:upper:]' <<< "${app_name:0:1}")${app_name:1}"
|
|
||||||
if grep -q "${app_name_first_upper} domain" "$COMPLETION_FILE"; then
|
if grep -q "ssh onion domain" "$COMPLETION_FILE"; then
|
||||||
app_name=${app_name_first_upper}
|
domain_onion=$(grep 'ssh onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}')
|
||||||
|
W+=("ssh" "${DEFAULT_DOMAIN_NAME} / ${domain_onion}")
|
||||||
|
fi
|
||||||
|
if grep -q "email onion domain" "$COMPLETION_FILE"; then
|
||||||
|
domain_onion=$(grep 'email onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}')
|
||||||
|
W+=("Email" "${DEFAULT_DOMAIN_NAME} / ${domain_onion}")
|
||||||
|
fi
|
||||||
|
if grep -q "sks onion domain" "$COMPLETION_FILE"; then
|
||||||
|
read_config_param "KEYSERVER_DOMAIN_NAME"
|
||||||
|
domain_onion=$(grep 'sks onion domain' "${COMPLETION_FILE}" | awk -F ':' '{print $2}')
|
||||||
|
W+=("SKS" "${KEYSERVER_DOMAIN_NAME} / ${domain_onion}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
INTRODUCER_FILENAME=/home/tahoelafs/data/private/introducer.furl
|
||||||
|
if [ -f $INTRODUCER_FILENAME ]; then
|
||||||
|
W+=("Tahoe-LAFS" "$(cat $INTRODUCER_FILENAME)")
|
||||||
|
fi
|
||||||
|
|
||||||
|
show_tor_bridges
|
||||||
|
|
||||||
|
# shellcheck disable=SC2068
|
||||||
|
for app_name in ${APPS_INSTALLED_NAMES[@]}
|
||||||
|
do
|
||||||
|
if ! grep -q "SHOW_ON_ABOUT=1" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# handle the foibles of capitalisation
|
||||||
|
if ! grep -q "${app_name} domain" "$COMPLETION_FILE"; then
|
||||||
|
app_name_upper=$(echo "${app_name}" | awk '{print toupper($0)}')
|
||||||
|
if grep -q "${app_name_upper} domain" "$COMPLETION_FILE"; then
|
||||||
|
app_name=${app_name_upper}
|
||||||
|
else
|
||||||
|
app_name_first_upper="$(tr '[:lower:]' '[:upper:]' <<< "${app_name:0:1}")${app_name:1}"
|
||||||
|
if grep -q "${app_name_first_upper} domain" "$COMPLETION_FILE"; then
|
||||||
|
app_name=${app_name_first_upper}
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ${#app_name} -gt 0 ]; then
|
if [ ${#app_name} -gt 0 ]; then
|
||||||
icann_address=$(get_app_icann_address "$app_name")
|
icann_address=$(get_app_icann_address "$app_name")
|
||||||
if grep -q "SHOW_ICANN_ADDRESS_ON_ABOUT=0" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
|
if grep -q "SHOW_ICANN_ADDRESS_ON_ABOUT=0" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
|
||||||
icann_address='-'
|
|
||||||
fi
|
|
||||||
if [[ "$ONION_ONLY" != 'no' ]]; then
|
|
||||||
if [[ "${icann_address}" != "${LOCAL_NAME}.local" ]]; then
|
|
||||||
icann_address='-'
|
icann_address='-'
|
||||||
fi
|
fi
|
||||||
fi
|
if [[ "$ONION_ONLY" != 'no' ]]; then
|
||||||
onion_address=$(get_app_onion_address "$app_name")
|
if [[ "${icann_address}" != "${LOCAL_NAME}.local" ]]; then
|
||||||
if [ ${#onion_address} -eq 0 ]; then
|
icann_address='-'
|
||||||
onion_address="-"
|
fi
|
||||||
fi
|
fi
|
||||||
|
onion_address=$(get_app_onion_address "$app_name")
|
||||||
if [[ "${icann_address}" != '-' ]]; then
|
if [ ${#onion_address} -eq 0 ]; then
|
||||||
if [[ "${onion_address}" != '-' ]]; then
|
onion_address="-"
|
||||||
W+=("${app_name}" "${icann_address} / ${onion_address}")
|
|
||||||
else
|
|
||||||
W+=("${app_name}" "${icann_address}")
|
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
W+=("${app_name}" "${onion_address}")
|
|
||||||
fi
|
|
||||||
|
|
||||||
if grep -q "mobile${app_name} onion domain" "$COMPLETION_FILE"; then
|
|
||||||
onion_address=$(get_app_onion_address "${app_name}" "mobile")
|
|
||||||
if [[ "${icann_address}" != '-' ]]; then
|
if [[ "${icann_address}" != '-' ]]; then
|
||||||
W+=("${app_name} (mobile)" "${icann_address} / ${onion_address}")
|
if [[ "${onion_address}" != '-' ]]; then
|
||||||
|
W+=("${app_name}" "${icann_address} / ${onion_address}")
|
||||||
|
else
|
||||||
|
W+=("${app_name}" "${icann_address}")
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
W+=("${app_name} (mobile)" "${onion_address}")
|
W+=("${app_name}" "${onion_address}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if grep -q "mobile${app_name} onion domain" "$COMPLETION_FILE"; then
|
||||||
|
onion_address=$(get_app_onion_address "${app_name}" "mobile")
|
||||||
|
if [[ "${icann_address}" != '-' ]]; then
|
||||||
|
W+=("${app_name} (mobile)" "${icann_address} / ${onion_address}")
|
||||||
|
else
|
||||||
|
W+=("${app_name} (mobile)" "${onion_address}")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
done
|
||||||
done
|
|
||||||
|
|
||||||
if grep -q "rss reader domain" "$COMPLETION_FILE"; then
|
if grep -q "rss reader domain" "$COMPLETION_FILE"; then
|
||||||
if [ -d /var/lib/tor/hidden_service_ttrss ]; then
|
if [ -d /var/lib/tor/hidden_service_ttrss ]; then
|
||||||
domain_onion=$(cat /var/lib/tor/hidden_service_ttrss/hostname)
|
domain_onion=$(cat /var/lib/tor/hidden_service_ttrss/hostname)
|
||||||
W+=("RSS Reader" "${domain_onion}")
|
W+=("RSS Reader" "${domain_onion}")
|
||||||
|
fi
|
||||||
|
if [ -d /var/lib/tor/hidden_service_mobilerss ]; then
|
||||||
|
domain_onion=$(cat /var/lib/tor/hidden_service_mobilerss/hostname)
|
||||||
|
W+=("RSS mobile" "${domain_onion}")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -d /var/lib/tor/hidden_service_mobilerss ]; then
|
|
||||||
domain_onion=$(cat /var/lib/tor/hidden_service_mobilerss/hostname)
|
|
||||||
W+=("RSS mobile" "${domain_onion}")
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
width=$(tput cols)
|
width=$(tput cols)
|
||||||
height=$(tput lines)
|
height=$(tput lines)
|
||||||
|
|
||||||
# shellcheck disable=SC2068
|
# shellcheck disable=SC2068
|
||||||
selected=$(dialog --backtitle $"Freedombone Control Panel" --title $"Domains" --menu $"Use Shift+cursors to select and copy onion addresses" $((height-4)) $((width-4)) $((height-4)) "${W[@]}" 3>&2 2>&1 1>&3)
|
selected=$(dialog --backtitle $"Freedombone Control Panel" --title $"Domains" --menu $"Use Shift+cursors to select and copy onion addresses" $((height-4)) $((width-4)) $((height-4)) "${W[@]}" 3>&2 2>&1 1>&3)
|
||||||
if [ ! "$selected" ]; then
|
if [ ! "$selected" ]; then
|
||||||
return
|
|
||||||
fi
|
|
||||||
# obtain the addresses from the key by itterating through
|
|
||||||
# the array. This is quite crude and maybe there's a better way
|
|
||||||
key_found=
|
|
||||||
selected_addresses=
|
|
||||||
for key in "${W[@]}";
|
|
||||||
do
|
|
||||||
if [ $key_found ]; then
|
|
||||||
selected_addresses="$key"
|
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
if [[ "$key" == "$selected" ]]; then
|
# obtain the addresses from the key by itterating through
|
||||||
key_found=1
|
# the array. This is quite crude and maybe there's a better way
|
||||||
|
key_found=
|
||||||
|
selected_addresses=
|
||||||
|
for key in "${W[@]}";
|
||||||
|
do
|
||||||
|
if [ $key_found ]; then
|
||||||
|
selected_addresses="$key"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if [[ "$key" == "$selected" ]]; then
|
||||||
|
key_found=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Was the key matched?
|
||||||
|
if [ ! "$selected_addresses" ]; then
|
||||||
|
break
|
||||||
fi
|
fi
|
||||||
|
# addresses were found - is this an onion?
|
||||||
|
if [[ "$selected_addresses" != *".onion"* ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
# There are two forms of addresses: "x / y.onion" and "x.onion"
|
||||||
|
if [[ "$selected_addresses" == *'/'* ]]; then
|
||||||
|
onion_addr=$(echo "$selected_addresses" | awk -F '/' '{print $2}' | awk -F ' ' '{print $1}')
|
||||||
|
else
|
||||||
|
onion_addr="$selected_addresses"
|
||||||
|
fi
|
||||||
|
# show the onion address as a QR code
|
||||||
|
clear
|
||||||
|
echo "$onion_addr"
|
||||||
|
echo -n "$onion_addr" | qrencode -t UTF8
|
||||||
|
any_key
|
||||||
done
|
done
|
||||||
# Was the key matched?
|
|
||||||
if [ ! "$selected_addresses" ]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
# addresses were found - is this an onion?
|
|
||||||
if [[ "$selected_addresses" != *".onion"* ]]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
# There are two forms of addresses: "x / y.onion" and "x.onion"
|
|
||||||
if [[ "$selected_addresses" == *'/'* ]]; then
|
|
||||||
onion_addr=$(echo "$selected_addresses" | awk -F '/' '{print $2}' | awk -F ' ' '{print $1}')
|
|
||||||
else
|
|
||||||
onion_addr="$selected_addresses"
|
|
||||||
fi
|
|
||||||
# show the onion address as a QR code
|
|
||||||
clear
|
|
||||||
echo "$onion_addr"
|
|
||||||
echo -n "$onion_addr" | qrencode -t UTF8
|
|
||||||
any_key
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function show_users {
|
function show_users {
|
||||||
|
|
Loading…
Reference in New Issue