1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/hotspot_ynh.git synced 2024-09-03 19:25:53 +02:00
hotspot_ynh/scripts/install

79 lines
2.8 KiB
Bash

#!/bin/bash
# Retrieve arguments
wifi_ssid=$1
wifi_passphrase=$2
wifi_device=$3
ip6_net=$4
ip6_dns0=$5
ip6_dns1=$6
ip4_dns0=$7
ip4_dns1=$8
# Check arguments
# TODO
# Install packages
# TODO: Replace isc-dhcp-server by dnsmasq (currently negotiating with the YunoHost team to
# also replace bind9 by dnsmasq)
sudo apt-get --assume-yes --force-yes install hostapd radvd isc-dhcp-server iptables
# Install extra packages
sudo apt-get --assume-yes --force-yes install sipcalc
# Compute extra arguments
ip6_expanded_net=$(sipcalc "${ip6_net}" | grep Expanded | awk '{ print $NF; }')
ip6_net=$(sipcalc "${ip6_net}" | grep Compressed | awk '{ print $NF; }')
ip6_addr=$(echo "$(echo "${ip6_expanded_net}" | cut -d: -f1-7):1")
ip6_addr=$(sipcalc "${ip6_addr}" | grep Compressed | awk '{ print $NF; }')
ip4_nat_prefix=10.0.242
# Save arguments for future upgrades
sudo yunohost app setting hotspot wifi_ssid -v "${wifi_ssid}"
sudo yunohost app setting hotspot wifi_passphrase -v "${wifi_passphrase}"
sudo yunohost app setting hotspot wifi_device -v "${wifi_device}"
sudo yunohost app setting hotspot ip6_addr -v "${ip6_addr}"
sudo yunohost app setting hotspot ip6_net -v "${ip6_net}"
sudo yunohost app setting hotspot ip6_dns0 -v "${ip6_dns0}"
sudo yunohost app setting hotspot ip6_dns1 -v "${ip6_dns1}"
sudo yunohost app setting hotspot ip4_dns0 -v "${ip4_dns0}"
sudo yunohost app setting hotspot ip4_dns1 -v "${ip4_dns1}"
sudo yunohost app setting hotspot ip4_nat_prefix -v "${ip4_nat_prefix}"
# Copy confs
sudo install -b -o root -g root -m 0644 ../conf/hostapd.conf.tpl /etc/hostapd/
sudo install -b -o root -g root -m 0644 ../conf/radvd.conf.tpl /etc/
sudo install -b -o root -g root -m 0644 ../conf/dhcpd.conf.tpl /etc/dhcp/
# Copy init script
sudo install -b -o root -g root -m 0755 ../conf/init_ynh-hotspot /etc/init.d/ynh-hotspot
## hostapd
sudo sed 's|^DAEMON_CONF=$|&/etc/hostapd/hostapd.conf|' -i /etc/init.d/hostapd
# Set default inits
# The boot order of these services are important, so they are disabled by default
# and the ynh-hotspot service handles them.
# All services are registred by yunohost in order to prevent conflicts after the uninstall.
sudo yunohost service add isc-dhcp-server
sudo yunohost service stop isc-dhcp-server
sudo yunohost service disable isc-dhcp-server
sudo yunohost service add radvd
sudo yunohost service stop radvd
sudo yunohost service disable radvd
sudo yunohost service add hostapd
sudo yunohost service stop hostapd
sudo yunohost service disable hostapd
# Remove IPv6 address set if there is a VPN installed
sudo ip -6 address show dev tun0 2> /dev/null | grep -q "${ip6_addr}/"
if [ "$?" -eq 0 ]; then
sudo ip address delete "${ip6_addr}/128" dev tun0 &> /dev/null
fi
# Gooo
sudo yunohost service add ynh-hotspot
sudo yunohost service enable ynh-hotspot
sudo yunohost service start ynh-hotspot
exit 0