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 {
|
||||
read_config_param "DEFAULT_DOMAIN_NAME"
|
||||
|
||||
W=()
|
||||
|
||||
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[@]}
|
||||
while true
|
||||
do
|
||||
if ! grep -q "SHOW_ON_ABOUT=1" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
|
||||
continue
|
||||
W=()
|
||||
|
||||
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
|
||||
|
||||
# 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}
|
||||
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
|
||||
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
|
||||
|
||||
if [ ${#app_name} -gt 0 ]; then
|
||||
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
|
||||
icann_address='-'
|
||||
fi
|
||||
if [[ "$ONION_ONLY" != 'no' ]]; then
|
||||
if [[ "${icann_address}" != "${LOCAL_NAME}.local" ]]; then
|
||||
if [ ${#app_name} -gt 0 ]; then
|
||||
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
|
||||
icann_address='-'
|
||||
fi
|
||||
fi
|
||||
onion_address=$(get_app_onion_address "$app_name")
|
||||
if [ ${#onion_address} -eq 0 ]; then
|
||||
onion_address="-"
|
||||
fi
|
||||
|
||||
if [[ "${icann_address}" != '-' ]]; then
|
||||
if [[ "${onion_address}" != '-' ]]; then
|
||||
W+=("${app_name}" "${icann_address} / ${onion_address}")
|
||||
else
|
||||
W+=("${app_name}" "${icann_address}")
|
||||
if [[ "$ONION_ONLY" != 'no' ]]; then
|
||||
if [[ "${icann_address}" != "${LOCAL_NAME}.local" ]]; then
|
||||
icann_address='-'
|
||||
fi
|
||||
fi
|
||||
onion_address=$(get_app_onion_address "$app_name")
|
||||
if [ ${#onion_address} -eq 0 ]; then
|
||||
onion_address="-"
|
||||
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
|
||||
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
|
||||
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
|
||||
done
|
||||
done
|
||||
|
||||
if grep -q "rss reader domain" "$COMPLETION_FILE"; then
|
||||
if [ -d /var/lib/tor/hidden_service_ttrss ]; then
|
||||
domain_onion=$(cat /var/lib/tor/hidden_service_ttrss/hostname)
|
||||
W+=("RSS Reader" "${domain_onion}")
|
||||
if grep -q "rss reader domain" "$COMPLETION_FILE"; then
|
||||
if [ -d /var/lib/tor/hidden_service_ttrss ]; then
|
||||
domain_onion=$(cat /var/lib/tor/hidden_service_ttrss/hostname)
|
||||
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
|
||||
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)
|
||||
height=$(tput lines)
|
||||
width=$(tput cols)
|
||||
height=$(tput lines)
|
||||
|
||||
# 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)
|
||||
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"
|
||||
# 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)
|
||||
if [ ! "$selected" ]; then
|
||||
break
|
||||
fi
|
||||
if [[ "$key" == "$selected" ]]; then
|
||||
key_found=1
|
||||
# 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
|
||||
fi
|
||||
if [[ "$key" == "$selected" ]]; then
|
||||
key_found=1
|
||||
fi
|
||||
done
|
||||
# Was the key matched?
|
||||
if [ ! "$selected_addresses" ]; then
|
||||
break
|
||||
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
|
||||
# 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 {
|
||||
|
|
Loading…
Reference in New Issue