summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Hubbs <williamh@gentoo.org>2013-07-06 18:48:53 -0500
committerWilliam Hubbs <williamh@gentoo.org>2013-07-06 18:48:53 -0500
commit00e84b95829d83398c4383ef897fc89e3aefe1a4 (patch)
tree9aaf6cab051f74646b2b64326b9f935bb2fe4166
parentfixinittab: Do not overwrite an existing backup (diff)
downloadlivecd-tools-00e84b95829d83398c4383ef897fc89e3aefe1a4.tar.gz
livecd-tools-00e84b95829d83398c4383ef897fc89e3aefe1a4.tar.bz2
livecd-tools-00e84b95829d83398c4383ef897fc89e3aefe1a4.zip
Move functions from livecd-functions.sh to net-setup
livecd_config_wireless, livecd_write_wireless_conf, livecd_config_ip, livecd_write_net_conf, show_ifmenu and show_ifconfirm are only used in net-setup, so this moves them into that script.
-rwxr-xr-xlivecd-functions.sh185
-rwxr-xr-xnet-setup195
2 files changed, 190 insertions, 190 deletions
diff --git a/livecd-functions.sh b/livecd-functions.sh
index cff4d08..1204835 100755
--- a/livecd-functions.sh
+++ b/livecd-functions.sh
@@ -141,149 +141,6 @@ get_video_cards() {
fi
}
-livecd_config_wireless() {
- cd /tmp/setup.opts
- dialog --visit-items --title "SSID" --inputbox "Please enter your SSID, or leave blank for selecting the nearest open network" 20 50 2> ${iface}.SSID
- SSID=$(tail -n 1 ${iface}.SSID)
- if [ -n "${SSID}" ]
- then
- dialog --visit-items --title "WEP (Part 1)" --menu "Does your network use encryption?" 20 60 7 1 "Yes" 2 "No" 2> ${iface}.WEP
- WEP=$(tail -n 1 ${iface}.WEP)
- case ${WEP} in
- 1)
- dialog --visit-items --title "WEP (Part 2)" --menu "Are you entering your WEP key in HEX or ASCII?" 20 60 7 1 "HEX" 2 "ASCII" 2> ${iface}.WEPTYPE
- WEP_TYPE=$(tail -n 1 ${iface}.WEPTYPE)
- case ${WEP_TYPE} in
- 1)
- dialog --visit-items --title "WEP (Part 3)" --inputbox "Please enter your WEP key in the form of XXXX-XXXX-XX for 64-bit or XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX for 128-bit" 20 50 2> ${iface}.WEPKEY
- WEP_KEY=$(tail -n 1 ${iface}.WEPKEY)
- if [ -n "${WEP_KEY}" ]
- then
- iwconfig ${iface} essid "${SSID}"
- iwconfig ${iface} key "${WEP_KEY}"
- fi
- ;;
- 2)
- dialog --visit-items --title "WEP (Part 3)" --inputbox "Please enter your WEP key in ASCII form. This should be 5 or 13 characters for either 64-bit or 128-bit encryption, repectively" 20 50 2> ${iface}.WEPKEY
- WEP_KEY=$(tail -n 1 ${iface}.WEPKEY)
- if [ -n "${WEP_KEY}" ]
- then
- iwconfig ${iface} essid "${SSID}"
- iwconfig ${iface} key "s:${WEP_KEY}"
- fi
- ;;
- esac
- ;;
- 2)
- iwconfig ${iface} essid "${SSID}"
- iwconfig ${iface} key off
- ;;
- esac
- fi
-}
-
-livecd_write_wireless_conf() {
- cd /tmp/setup.opts
- SSID=$(tail -n 1 ${iface}.SSID)
- if [ -n "${SSID}" ]
- then
- echo "" >> /etc/conf.d/net
- echo "# This wireless configuration file was built by net-setup" > /etc/conf.d/net
- WEP=$(tail -n 1 ${iface}.WEPTYPE)
- case ${WEP} in
- 1)
- WEP_TYPE=$(tail -n 1 ${iface}.WEPTYPE)
- if [ -n "${WEP_TYPE}" ]
- then
- WEP_KEY=$(tail -n 1 ${iface}.WEPKEY)
- if [ -n "${WEP_KEY}" ]
- then
- SSID_TRANS=$(echo ${SSID//[![:word:]]/_})
- case ${WEP_TYPE} in
- 1)
- echo "key_${SSID_TRANS}=\"${WEP_KEY} enc open\"" >> /etc/conf.d/net
- ;;
- 2)
- echo "key_${SSID_TRANS}=\"s:${WEP_KEY} enc open\"" >> /etc/conf.d/net
- ;;
- esac
- fi
- fi
- ;;
- 2)
- :
- ;;
- esac
- echo "preferred_aps=( \"${SSID}\" )" >> /etc/conf.d/net
- echo "associate_order=\"forcepreferredonly\"" >> /etc/conf.d/net
- fi
-}
-
-livecd_config_ip() {
- cd /tmp/setup.opts
- dialog --visit-items --title "TCP/IP setup" --menu "You can use DHCP to automatically configure a network interface or you can specify an IP and related settings manually. Choose one option:" 20 60 7 1 "Use DHCP to auto-detect my network settings" 2 "Specify an IP address manually" 2> ${iface}.DHCP
- DHCP=$(tail -n 1 ${iface}.DHCP)
- case ${DHCP} in
- 1)
- /sbin/dhcpcd -n -t 10 -h $(hostname) ${iface} &
- ;;
- 2)
- dialog --visit-items --title "IP address" --inputbox "Please enter an IP address for ${iface}:" 20 50 "192.168.1.1" 2> ${iface}.IP
- IP=$(tail -n 1 ${iface}.IP)
- BC_TEMP=$(echo $IP|cut -d . -f 1).$(echo $IP|cut -d . -f 2).$(echo $IP|cut -d . -f 3).255
- dialog --visit-items --title "Broadcast address" --inputbox "Please enter a Broadcast address for ${iface}:" 20 50 "${BC_TEMP}" 2> ${iface}.BC
- BROADCAST=$(tail -n 1 ${iface}.BC)
- dialog --visit-items --title "Network mask" --inputbox "Please enter a Network Mask for ${iface}:" 20 50 "255.255.255.0" 2> ${iface}.NM
- NETMASK=$(tail -n 1 ${iface}.NM)
- dialog --visit-items --title "Gateway" --inputbox "Please enter a Gateway for ${iface} (hit enter for none:)" 20 50 2> ${iface}.GW
- GATEWAY=$(tail -n 1 ${iface}.GW)
- dialog --visit-items --title "DNS server" --inputbox "Please enter a name server to use (hit enter for none:)" 20 50 2> ${iface}.DNS
- DNS=$(tail -n 1 ${iface}.DNS)
- ifconfig ${iface} ${IP} broadcast ${BROADCAST} netmask ${NETMASK}
- if [ -n "${GATEWAY}" ]
- then
- route add default gw ${GATEWAY} dev ${iface} netmask 0.0.0.0 metric 1
- fi
- if [ -n "${DNS}" ]
- then
- dialog --visit-items --title "DNS Search Suffix" --inputbox "Please enter any domains which you would like to search on DNS queries (hit enter for none:)" 20 50 2> ${iface}.SUFFIX
- SUFFIX=$(tail -n 1 ${iface}.SUFFIX)
- echo "nameserver ${DNS}" > /etc/resolv.conf
- if [ -n "${SUFFIX}" ]
- then
- echo "search ${SUFFIX}" >> /etc/resolv.conf
- fi
- fi
- ;;
- esac
-}
-
-livecd_write_net_conf() {
- cd /tmp/setup.opts
- echo "" > /etc/conf.d/net
- echo "# This network configuration was written by net-setup" > /etc/conf.d/net
- DHCP=$(tail -n 1 ${iface}.DHCP)
- case ${DHCP} in
- 1)
- echo "config_${iface}=\"dhcp\"" >> /etc/conf.d/net
- ;;
- 2)
- IP=$(tail -n 1 ${iface}.IP)
- BROADCAST=$(tail -n 1 ${iface}.BC)
- NETMASK=$(tail -n 1 ${iface}.NM)
- GATEWAY=$(tail -n 1 ${iface}.GW)
- if [ -n "${IP}" -a -n "${BROADCAST}" -a -n "${NETMASK}" ]
- then
- echo "config_${iface}=( \"${IP} broadcast ${BROADCAST} netmask ${NETMASK}\" )" >> /etc/conf.d/net
- if [ -n "${GATEWAY}" ]
- then
- echo "routes_${iface}=( \"default via ${GATEWAY}\" )" >> /etc/conf.d/net
- fi
- fi
- ;;
- esac
-}
-
get_ifmac() {
local iface=$1
@@ -378,48 +235,6 @@ get_ifdesc() {
echo "Unknown"
}
-show_ifmenu() {
- local old_ifs="${IFS}"
- local opts
- IFS="
-"
- for ifname in $(ifconfig -a | grep "^[^ ]"); do
- ifname="${ifname%% *}"
- [[ ${ifname} == "lo" ]] && continue
- opts="${opts} ${ifname} '$(get_ifdesc ${ifname})'"
- done
- IFS="${old_ifs}"
-
- if ! eval dialog --visit-items --menu "Please select the interface that you wish to configure from the list below:" 0 0 0 $opts 2>iface
- then
- exit
- fi
-
- iface=$(< iface)
-}
-
-show_ifconfirm() {
- local iface=$1
- local if_mac=$(get_ifmac ${iface})
- local if_driver=$(get_ifdriver ${iface})
- local if_bus=$(get_ifbus ${iface})
- local if_product=$(get_ifproduct ${iface})
-
- local text="Details for network interface ${iface} are shown below.\n\nInterface name: ${iface}\n"
- [[ -n ${if_product} ]] && text="${text}Device: ${if_product}\n"
- [[ -n ${if_mac} ]] && text="${text}MAC address: ${if_mac}\n"
- [[ -n ${if_driver} ]] && text="${text}Driver: ${if_driver}\n"
- [[ -n ${if_bus} ]] && text="${text}Bus type: ${if_bus}\n"
- text="${text}\nIs this the interface that you wish to configure?"
-
- if ! dialog --visit-items --title "Interface details" --yesno "${text}" 15 70
- then
- result="no"
- else
- result="yes"
- fi
-}
-
livecd_console_settings() {
# scan for a valid baud rate
case "$1" in
diff --git a/net-setup b/net-setup
index e81db2e..cde3ba6 100755
--- a/net-setup
+++ b/net-setup
@@ -1,5 +1,190 @@
#!/bin/bash
+show_ifmenu() {
+ local old_ifs="${IFS}"
+ local opts
+ IFS="
+"
+ for ifname in $(ifconfig -a | grep "^[^ ]"); do
+ ifname="${ifname%% *}"
+ [[ ${ifname} == "lo" ]] && continue
+ opts="${opts} ${ifname} '$(get_ifdesc ${ifname})'"
+ done
+ IFS="${old_ifs}"
+
+ if ! eval dialog --visit-items --menu "Please select the interface that you wish to configure from the list below:" 0 0 0 $opts 2>iface
+ then
+ exit
+ fi
+
+ iface=$(< iface)
+}
+
+show_ifconfirm() {
+ local iface=$1
+ local if_mac=$(get_ifmac ${iface})
+ local if_driver=$(get_ifdriver ${iface})
+ local if_bus=$(get_ifbus ${iface})
+ local if_product=$(get_ifproduct ${iface})
+
+ local text="Details for network interface ${iface} are shown below.\n\nInterface name: ${iface}\n"
+ [[ -n ${if_product} ]] && text="${text}Device: ${if_product}\n"
+ [[ -n ${if_mac} ]] && text="${text}MAC address: ${if_mac}\n"
+ [[ -n ${if_driver} ]] && text="${text}Driver: ${if_driver}\n"
+ [[ -n ${if_bus} ]] && text="${text}Bus type: ${if_bus}\n"
+ text="${text}\nIs this the interface that you wish to configure?"
+
+ if ! dialog --visit-items --title "Interface details" --yesno "${text}" 15 70
+ then
+ result="no"
+ else
+ result="yes"
+ fi
+}
+
+config_wireless() {
+ cd /tmp/setup.opts
+ dialog --visit-items --title "SSID" --inputbox "Please enter your SSID, or leave blank for selecting the nearest open network" 20 50 2> ${iface}.SSID
+ SSID=$(tail -n 1 ${iface}.SSID)
+ if [ -n "${SSID}" ]
+ then
+ dialog --visit-items --title "WEP (Part 1)" --menu "Does your network use encryption?" 20 60 7 1 "Yes" 2 "No" 2> ${iface}.WEP
+ WEP=$(tail -n 1 ${iface}.WEP)
+ case ${WEP} in
+ 1)
+ dialog --visit-items --title "WEP (Part 2)" --menu "Are you entering your WEP key in HEX or ASCII?" 20 60 7 1 "HEX" 2 "ASCII" 2> ${iface}.WEPTYPE
+ WEP_TYPE=$(tail -n 1 ${iface}.WEPTYPE)
+ case ${WEP_TYPE} in
+ 1)
+ dialog --visit-items --title "WEP (Part 3)" --inputbox "Please enter your WEP key in the form of XXXX-XXXX-XX for 64-bit or XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX for 128-bit" 20 50 2> ${iface}.WEPKEY
+ WEP_KEY=$(tail -n 1 ${iface}.WEPKEY)
+ if [ -n "${WEP_KEY}" ]
+ then
+ iwconfig ${iface} essid "${SSID}"
+ iwconfig ${iface} key "${WEP_KEY}"
+ fi
+ ;;
+ 2)
+ dialog --visit-items --title "WEP (Part 3)" --inputbox "Please enter your WEP key in ASCII form. This should be 5 or 13 characters for either 64-bit or 128-bit encryption, repectively" 20 50 2> ${iface}.WEPKEY
+ WEP_KEY=$(tail -n 1 ${iface}.WEPKEY)
+ if [ -n "${WEP_KEY}" ]
+ then
+ iwconfig ${iface} essid "${SSID}"
+ iwconfig ${iface} key "s:${WEP_KEY}"
+ fi
+ ;;
+ esac
+ ;;
+ 2)
+ iwconfig ${iface} essid "${SSID}"
+ iwconfig ${iface} key off
+ ;;
+ esac
+ fi
+}
+
+config_ip() {
+ cd /tmp/setup.opts
+ dialog --visit-items --title "TCP/IP setup" --menu "You can use DHCP to automatically configure a network interface or you can specify an IP and related settings manually. Choose one option:" 20 60 7 1 "Use DHCP to auto-detect my network settings" 2 "Specify an IP address manually" 2> ${iface}.DHCP
+ DHCP=$(tail -n 1 ${iface}.DHCP)
+ case ${DHCP} in
+ 1)
+ /sbin/dhcpcd -n -t 10 -h $(hostname) ${iface} &
+ ;;
+ 2)
+ dialog --visit-items --title "IP address" --inputbox "Please enter an IP address for ${iface}:" 20 50 "192.168.1.1" 2> ${iface}.IP
+ IP=$(tail -n 1 ${iface}.IP)
+ BC_TEMP=$(echo $IP|cut -d . -f 1).$(echo $IP|cut -d . -f 2).$(echo $IP|cut -d . -f 3).255
+ dialog --visit-items --title "Broadcast address" --inputbox "Please enter a Broadcast address for ${iface}:" 20 50 "${BC_TEMP}" 2> ${iface}.BC
+ BROADCAST=$(tail -n 1 ${iface}.BC)
+ dialog --visit-items --title "Network mask" --inputbox "Please enter a Network Mask for ${iface}:" 20 50 "255.255.255.0" 2> ${iface}.NM
+ NETMASK=$(tail -n 1 ${iface}.NM)
+ dialog --visit-items --title "Gateway" --inputbox "Please enter a Gateway for ${iface} (hit enter for none:)" 20 50 2> ${iface}.GW
+ GATEWAY=$(tail -n 1 ${iface}.GW)
+ dialog --visit-items --title "DNS server" --inputbox "Please enter a name server to use (hit enter for none:)" 20 50 2> ${iface}.DNS
+ DNS=$(tail -n 1 ${iface}.DNS)
+ ifconfig ${iface} ${IP} broadcast ${BROADCAST} netmask ${NETMASK}
+ if [ -n "${GATEWAY}" ]
+ then
+ route add default gw ${GATEWAY} dev ${iface} netmask 0.0.0.0 metric 1
+ fi
+ if [ -n "${DNS}" ]
+ then
+ dialog --visit-items --title "DNS Search Suffix" --inputbox "Please enter any domains which you would like to search on DNS queries (hit enter for none:)" 20 50 2> ${iface}.SUFFIX
+ SUFFIX=$(tail -n 1 ${iface}.SUFFIX)
+ echo "nameserver ${DNS}" > /etc/resolv.conf
+ if [ -n "${SUFFIX}" ]
+ then
+ echo "search ${SUFFIX}" >> /etc/resolv.conf
+ fi
+ fi
+ ;;
+ esac
+}
+
+write_wireless_conf() {
+ cd /tmp/setup.opts
+ SSID=$(tail -n 1 ${iface}.SSID)
+ if [ -n "${SSID}" ]
+ then
+ echo "" >> /etc/conf.d/net
+ echo "# This wireless configuration file was built by net-setup" > /etc/conf.d/net
+ WEP=$(tail -n 1 ${iface}.WEPTYPE)
+ case ${WEP} in
+ 1)
+ WEP_TYPE=$(tail -n 1 ${iface}.WEPTYPE)
+ if [ -n "${WEP_TYPE}" ]
+ then
+ WEP_KEY=$(tail -n 1 ${iface}.WEPKEY)
+ if [ -n "${WEP_KEY}" ]
+ then
+ SSID_TRANS=$(echo ${SSID//[![:word:]]/_})
+ case ${WEP_TYPE} in
+ 1)
+ echo "key_${SSID_TRANS}=\"${WEP_KEY} enc open\"" >> /etc/conf.d/net
+ ;;
+ 2)
+ echo "key_${SSID_TRANS}=\"s:${WEP_KEY} enc open\"" >> /etc/conf.d/net
+ ;;
+ esac
+ fi
+ fi
+ ;;
+ 2)
+ :
+ ;;
+ esac
+ echo "preferred_aps=( \"${SSID}\" )" >> /etc/conf.d/net
+ echo "associate_order=\"forcepreferredonly\"" >> /etc/conf.d/net
+ fi
+}
+
+write_net_conf() {
+ cd /tmp/setup.opts
+ echo "" > /etc/conf.d/net
+ echo "# This network configuration was written by net-setup" > /etc/conf.d/net
+ DHCP=$(tail -n 1 ${iface}.DHCP)
+ case ${DHCP} in
+ 1)
+ echo "config_${iface}=\"dhcp\"" >> /etc/conf.d/net
+ ;;
+ 2)
+ IP=$(tail -n 1 ${iface}.IP)
+ BROADCAST=$(tail -n 1 ${iface}.BC)
+ NETMASK=$(tail -n 1 ${iface}.NM)
+ GATEWAY=$(tail -n 1 ${iface}.GW)
+ if [ -n "${IP}" -a -n "${BROADCAST}" -a -n "${NETMASK}" ]
+ then
+ echo "config_${iface}=( \"${IP} broadcast ${BROADCAST} netmask ${NETMASK}\" )" >> /etc/conf.d/net
+ if [ -n "${GATEWAY}" ]
+ then
+ echo "routes_${iface}=( \"default via ${GATEWAY}\" )" >> /etc/conf.d/net
+ fi
+ fi
+ ;;
+ esac
+}
+
if [ -f /sbin/livecd-functions.sh ]
then
source /sbin/livecd-functions.sh
@@ -43,15 +228,15 @@ dialog --visit-items --title "Network setup" --menu "This script is designed to
WIRED_WIRELESS=$(tail -n 1 ${iface}.WIRED_WIRELESS)
case ${WIRED_WIRELESS} in
1)
- livecd_config_wireless
- livecd_config_ip
- livecd_write_wireless_conf
+ config_wireless
+ config_ip
+ write_wireless_conf
;;
2)
- livecd_config_ip
+ config_ip
;;
esac
-livecd_write_net_conf
+write_net_conf
echo "Type \"ifconfig\" to make sure the interface was configured correctly."