Tidying interactive config
This commit is contained in:
parent
6cc14f3f53
commit
8cc9916d9c
|
@ -251,52 +251,6 @@ function choose_default_domain_name {
|
||||||
save_configuration_values
|
save_configuration_values
|
||||||
}
|
}
|
||||||
|
|
||||||
function choose_static_ip {
|
|
||||||
if [[ $MINIMAL_INSTALL == "no" && $ONION_ONLY == "no" ]]; then
|
|
||||||
SET_STATIC_IP="no"
|
|
||||||
dialog --title $"Static local IP address" \
|
|
||||||
--backtitle $"Freedombone Configuration" \
|
|
||||||
--defaultno \
|
|
||||||
--yesno $"\nDo you want to set a static local IP address for this system?\n\nFor example, 192.168.1.10" 10 60
|
|
||||||
sel=$?
|
|
||||||
case $sel in
|
|
||||||
0) SET_STATIC_IP="yes";;
|
|
||||||
255) exit 1;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [[ $SET_STATIC_IP == "yes" ]]; then
|
|
||||||
if [ ! $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
|
|
||||||
LOCAL_NETWORK_STATIC_IP_ADDRESS=$(grep 'LOCAL_NETWORK_STATIC_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
|
|
||||||
if [ ! $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
|
|
||||||
LOCAL_NETWORK_STATIC_IP_ADDRESS='192.168..'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ ! $ROUTER_IP_ADDRESS ]; then
|
|
||||||
ROUTER_IP_ADDRESS=$(grep 'ROUTER_IP_ADDRESS' temp.cfg | awk -F '=' '{print $2}')
|
|
||||||
if [ ! $ROUTER_IP_ADDRESS ]; then
|
|
||||||
ROUTER_IP_ADDRESS='192.168..'
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
data=$(tempfile 2>/dev/null)
|
|
||||||
trap "rm -f $data" 0 1 2 5 15
|
|
||||||
dialog --backtitle $"Freedombone Configuration" \
|
|
||||||
--title $"Local Network Configuration" \
|
|
||||||
--form $"\nPlease enter the IP addresses:" 11 55 3 \
|
|
||||||
$"This system:" 1 1 "$LOCAL_NETWORK_STATIC_IP_ADDRESS" 1 16 16 15 \
|
|
||||||
$"Internet router:" 2 1 "$ROUTER_IP_ADDRESS" 2 16 16 15 \
|
|
||||||
2> $data
|
|
||||||
sel=$?
|
|
||||||
case $sel in
|
|
||||||
1) exit 1;;
|
|
||||||
255) exit 1;;
|
|
||||||
esac
|
|
||||||
LOCAL_NETWORK_STATIC_IP_ADDRESS=$(cat $data | sed -n 1p)
|
|
||||||
ROUTER_IP_ADDRESS=$(cat $data | sed -n 2p)
|
|
||||||
save_configuration_values
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function choose_dynamic_dns {
|
function choose_dynamic_dns {
|
||||||
if [[ $SYSTEM_TYPE != "mesh"* && $ONION_ONLY == "no" ]]; then
|
if [[ $SYSTEM_TYPE != "mesh"* && $ONION_ONLY == "no" ]]; then
|
||||||
|
|
||||||
|
@ -659,31 +613,6 @@ function choose_social_key_management {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function choose_beaglebone_options {
|
|
||||||
if [[ $MINIMAL_INSTALL == "no" ]]; then
|
|
||||||
if [[ $(grep "INSTALLING_ON_BBB" temp.cfg | awk -F '=' '{print $2}') == "yes" ]]; then
|
|
||||||
dialog --title $"Install Target" \
|
|
||||||
--backtitle $"Freedombone Configuration" \
|
|
||||||
--yesno $"\nAre you installing onto a Beaglebone Black?" 7 60
|
|
||||||
else
|
|
||||||
dialog --title $"Install Target" \
|
|
||||||
--backtitle $"Freedombone Configuration" \
|
|
||||||
--defaultno \
|
|
||||||
--yesno $"\nAre you installing onto a Beaglebone Black?" 7 60
|
|
||||||
fi
|
|
||||||
sel=$?
|
|
||||||
case $sel in
|
|
||||||
0) INSTALLING_ON_BBB="yes";;
|
|
||||||
1) INSTALLING_ON_BBB="no";;
|
|
||||||
255) exit 1;;
|
|
||||||
esac
|
|
||||||
if [[ $INSTALLING_ON_BBB == "yes" ]]; then
|
|
||||||
USB_DRIVE=/dev/sda1
|
|
||||||
fi
|
|
||||||
save_configuration_values
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function choose_username {
|
function choose_username {
|
||||||
if [ -d /home/$GENERIC_IMAGE_USERNAME ]; then
|
if [ -d /home/$GENERIC_IMAGE_USERNAME ]; then
|
||||||
if [ ! -f $IMAGE_PASSWORD_FILE ]; then
|
if [ ! -f $IMAGE_PASSWORD_FILE ]; then
|
||||||
|
@ -875,83 +804,6 @@ do
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
# test a domain name to see if it's valid
|
|
||||||
function validate_domain_name {
|
|
||||||
# count the number of dots in the domain name
|
|
||||||
dots=${TEST_DOMAIN_NAME//[^.]}
|
|
||||||
no_of_dots=${#dots}
|
|
||||||
if (( no_of_dots > 3 )); then
|
|
||||||
TEST_DOMAIN_NAME="The domain $TEST_DOMAIN_NAME has too many subdomains. It should be of the type w.x.y.z, x.y.z or y.z"
|
|
||||||
fi
|
|
||||||
if (( no_of_dots == 0 )); then
|
|
||||||
TEST_DOMAIN_NAME="The domain $TEST_DOMAIN_NAME has no top level domain. It should be of the type w.x.y.z, x.y.z or y.z"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function interactive_gpg_from_remote {
|
|
||||||
REMOTE_SERVERS_LIST=/home/$MY_USERNAME/keyshareservers.txt
|
|
||||||
|
|
||||||
# get a list of remote servers
|
|
||||||
${PROJECT_NAME}-remote -u $MY_USERNAME -l $REMOTE_SERVERS_LIST -t "Remote server"
|
|
||||||
|
|
||||||
if [ ! -f $REMOTE_SERVERS_LIST ]; then
|
|
||||||
dialog --title $"Encryption keys" --msgbox $'Error obtaining server list' 6 70
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check the number of entries in the file
|
|
||||||
no_of_servers=$(cat $REMOTE_SERVERS_LIST | wc -l)
|
|
||||||
if (( no_of_servers < 3 )); then
|
|
||||||
dialog --title $"Encryption keys" \
|
|
||||||
--msgbox $'There must be at least three servers to recover the key' 6 70
|
|
||||||
return 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# try to recover the key from the servers
|
|
||||||
apt-get -yq install libgfshare-bin gnupg
|
|
||||||
${PROJECT_NAME}-recoverkey -u $MY_USERNAME -l $REMOTE_SERVERS_LIST
|
|
||||||
if [ ! "$?" = "0" ]; then
|
|
||||||
dialog --title $"Encryption keys" --msgbox $'Your key could not be recovered' 6 70
|
|
||||||
return 3
|
|
||||||
fi
|
|
||||||
|
|
||||||
dialog --title $"Encryption keys" --msgbox $'Your key has been recovered' 6 70
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
function interactive_gpg {
|
|
||||||
GPG_CONFIGURED="no"
|
|
||||||
while [[ $GPG_CONFIGURED != "yes" ]]
|
|
||||||
do
|
|
||||||
GPG_CONFIGURED="yes"
|
|
||||||
data=$(tempfile 2>/dev/null)
|
|
||||||
trap "rm -f $data" 0 1 2 5 15
|
|
||||||
dialog --backtitle $"Freedombone Configuration" \
|
|
||||||
--radiolist $"GPG/PGP keys for your system:" 13 70 3 \
|
|
||||||
1 $"Generate new keys (new user)" on \
|
|
||||||
2 $"Import keys from USB drive/s" off \
|
|
||||||
3 $"Retrieve keys from friends servers" off 2> $data
|
|
||||||
sel=$?
|
|
||||||
case $sel in
|
|
||||||
1) exit 1;;
|
|
||||||
255) exit 2;;
|
|
||||||
esac
|
|
||||||
case $(cat $data) in
|
|
||||||
1) if [ -d /home/${MY_USERNAME}/.gnupg ]; then
|
|
||||||
rm -rf /home/${MY_USERNAME}/.gnupg
|
|
||||||
fi
|
|
||||||
break;;
|
|
||||||
2) interactive_gpg_from_usb
|
|
||||||
break;;
|
|
||||||
3) interactive_gpg_from_remote
|
|
||||||
if [ ! "$?" = "0" ]; then
|
|
||||||
GPG_CONFIGURED="no"
|
|
||||||
fi;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
function set_main_repo {
|
function set_main_repo {
|
||||||
data=$(tempfile 2>/dev/null)
|
data=$(tempfile 2>/dev/null)
|
||||||
trap "rm -f $data" 0 1 2 5 15
|
trap "rm -f $data" 0 1 2 5 15
|
||||||
|
@ -1207,14 +1059,12 @@ function interactive_config {
|
||||||
set_main_repo
|
set_main_repo
|
||||||
choose_username
|
choose_username
|
||||||
choose_full_name
|
choose_full_name
|
||||||
choose_beaglebone_options
|
|
||||||
choose_social_key_management
|
choose_social_key_management
|
||||||
choose_rng
|
choose_rng
|
||||||
choose_debian_repo
|
choose_debian_repo
|
||||||
choose_dns
|
choose_dns
|
||||||
${PROJECT_NAME}-wifi --networksinteractive $WIFI_NETWORKS_FILE
|
${PROJECT_NAME}-wifi --networksinteractive $WIFI_NETWORKS_FILE
|
||||||
choose_dynamic_dns
|
choose_dynamic_dns
|
||||||
choose_static_ip
|
|
||||||
choose_default_domain_name
|
choose_default_domain_name
|
||||||
choose_email_address
|
choose_email_address
|
||||||
|
|
||||||
|
|
|
@ -163,4 +163,68 @@ function interactive_gpg_from_usb {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function interactive_gpg_from_remote {
|
||||||
|
REMOTE_SERVERS_LIST=/home/$MY_USERNAME/keyshareservers.txt
|
||||||
|
|
||||||
|
# get a list of remote servers
|
||||||
|
${PROJECT_NAME}-remote -u $MY_USERNAME -l $REMOTE_SERVERS_LIST -t "Remote server"
|
||||||
|
|
||||||
|
if [ ! -f $REMOTE_SERVERS_LIST ]; then
|
||||||
|
dialog --title $"Encryption keys" --msgbox $'Error obtaining server list' 6 70
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check the number of entries in the file
|
||||||
|
no_of_servers=$(cat $REMOTE_SERVERS_LIST | wc -l)
|
||||||
|
if (( no_of_servers < 3 )); then
|
||||||
|
dialog --title $"Encryption keys" \
|
||||||
|
--msgbox $'There must be at least three servers to recover the key' 6 70
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# try to recover the key from the servers
|
||||||
|
apt-get -yq install libgfshare-bin gnupg
|
||||||
|
${PROJECT_NAME}-recoverkey -u $MY_USERNAME -l $REMOTE_SERVERS_LIST
|
||||||
|
if [ ! "$?" = "0" ]; then
|
||||||
|
dialog --title $"Encryption keys" --msgbox $'Your key could not be recovered' 6 70
|
||||||
|
return 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
dialog --title $"Encryption keys" --msgbox $'Your key has been recovered' 6 70
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function interactive_gpg {
|
||||||
|
GPG_CONFIGURED="no"
|
||||||
|
while [[ $GPG_CONFIGURED != "yes" ]]
|
||||||
|
do
|
||||||
|
GPG_CONFIGURED="yes"
|
||||||
|
data=$(tempfile 2>/dev/null)
|
||||||
|
trap "rm -f $data" 0 1 2 5 15
|
||||||
|
dialog --backtitle $"Freedombone Configuration" \
|
||||||
|
--radiolist $"GPG/PGP keys for your system:" 13 70 3 \
|
||||||
|
1 $"Generate new keys (new user)" on \
|
||||||
|
2 $"Import keys from USB drive/s" off \
|
||||||
|
3 $"Retrieve keys from friends servers" off 2> $data
|
||||||
|
sel=$?
|
||||||
|
case $sel in
|
||||||
|
1) exit 1;;
|
||||||
|
255) exit 2;;
|
||||||
|
esac
|
||||||
|
case $(cat $data) in
|
||||||
|
1) if [ -d /home/${MY_USERNAME}/.gnupg ]; then
|
||||||
|
rm -rf /home/${MY_USERNAME}/.gnupg
|
||||||
|
fi
|
||||||
|
break;;
|
||||||
|
2) interactive_gpg_from_usb
|
||||||
|
break;;
|
||||||
|
3) interactive_gpg_from_remote
|
||||||
|
if [ ! "$?" = "0" ]; then
|
||||||
|
GPG_CONFIGURED="no"
|
||||||
|
fi;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
# NOTE: deliberately there is no "exit 0"
|
# NOTE: deliberately there is no "exit 0"
|
||||||
|
|
Loading…
Reference in New Issue