| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #!/bin/bash
- #
- # store config settings
- #
- CONF="/etc/speaker.conf"
- NET_CONF="/etc/netplan/01-netcfg.yaml"
- [ ! -f "/etc/speaker.conf" ] && exit 1
- declare -A mask_table=(
- ["255.255.255.255"]="32"
- ["255.255.255.254"]="31"
- ["255.255.255.252"]="30"
- ["255.255.255.248"]="29"
- ["255.255.255.240"]="28"
- ["255.255.255.224"]="27"
- ["255.255.255.192"]="26"
- ["255.255.255.128"]="25"
- ["255.255.255.0"]="24"
- ["255.255.254.0"]="23"
- ["255.255.252.0"]="22"
- ["255.255.248.0"]="21"
- ["255.255.240.0"]="20"
- ["255.255.224.0"]="19"
- ["255.255.192.0"]="18"
- ["255.255.128.0"]="17"
- ["255.255.0.0"]="16"
- ["255.254.0.0"]="15"
- ["255.252.0.0"]="14"
- ["255.248.0.0"]="13"
- ["255.240.0.0"]="12"
- ["255.224.0.0"]="11"
- ["255.192.0.0"]="10"
- ["255.128.0.0"]="9"
- ["255.0.0.0"]="8"
- ["254.0.0.0"]="7"
- ["252.0.0.0"]="6"
- ["248.0.0.0"]="5"
- ["240.0.0.0"]="4"
- ["224.0.0.0"]="3"
- ["192.0.0.0"]="2"
- ["128.0.0.0"]="1"
- ["0.0.0.0"]="0"
- )
- net_type=`sysconf ${CONF} get system ip_assign`
- if [ "${net_type}" = "dhcp" ]; then
- cat << END > ${NET_CONF}
- network:
- version: 2
- ethernets:
- eth1:
- dhcp4: yes
- addresses: []
- optional: yes
- dhcp-identifier: mac
- dhcp4-overrides:
- route-metric: 200
- END
- elif [ "${net_type}" = "static" ]; then
- ip=`sysconf ${CONF} get system ipaddr`
- mask=`sysconf ${CONF} get system netmask`
- gateway=`sysconf ${CONF} get system gateway`
- dns=`sysconf ${CONF} get system dns1`
- dns2=`sysconf ${CONF} get system dns2`
- if [[ -n ${mask_table[$mask]} ]]; then
- masklen=${mask_table[$mask]}
- else
- masklen=24
- fi
- if [ -n "${dns2}" ];then
- dns="${dns},${dns2}"
- fi
- cat << END > ${NET_CONF}
- network:
- version: 2
- ethernets:
- eth1:
- dhcp4: no
- addresses: [${ip}/${masklen}]
- gateway4: ${gateway}
- nameservers:
- addresses: [${dns}]
- optional: false
- END
- fi
|