mirror of
https://github.com/RaspAP/raspap-webgui.git
synced 2024-11-22 07:30:23 +00:00
Add feature install option to common.sh
Add installers/install_feature_clients.sh
This commit is contained in:
parent
f77fb660bf
commit
f15533d256
2 changed files with 85 additions and 18 deletions
|
@ -51,11 +51,38 @@ function _install_raspap() {
|
|||
_configure_networking
|
||||
_prompt_install_adblock
|
||||
_prompt_install_openvpn
|
||||
_install_client_config
|
||||
_install_features
|
||||
_patch_system_files
|
||||
_install_complete
|
||||
}
|
||||
|
||||
# search for optional installation files names install_feature_*.sh
|
||||
function _install_features() {
|
||||
for feature in $(ls $webroot_dir/installers/install_feature_*.sh) ; do
|
||||
source $feature
|
||||
f=$(basename $feature)
|
||||
func="_${f%.*}"
|
||||
if declare -f -F $func > /dev/null; then
|
||||
_install_log "Installing $func"
|
||||
$func || _install_status 1 "Not able to install feature ($func)"
|
||||
else
|
||||
_install_status 1 "Install file $f is missing install function $func"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function _install_features() {
|
||||
path="$webroot_dir/installers"
|
||||
foreach feature in $(ls "$path/install_feature*.sh"); do
|
||||
source $feature
|
||||
f=$(basename $feature)
|
||||
func="_${$f%.*}"
|
||||
if declare -f -F $1 > /dev/null; then
|
||||
echo "Call $func"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Prompts user to set installation options
|
||||
function _config_installation() {
|
||||
if [ "$upgrade" == 1 ]; then
|
||||
|
@ -147,7 +174,7 @@ function _install_dependencies() {
|
|||
echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections
|
||||
echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections
|
||||
sudo apt-get install $apt_option lighttpd git hostapd dnsmasq iptables-persistent $php_package $dhcpcd_package vnstat qrencode || _install_status 1 "Unable to install dependencies"
|
||||
sudo apt-get install wvdial socat bc || _install_status 1 "Unable to install dependencies"
|
||||
# sudo apt-get install wvdial socat bc || _install_status 1 "Unable to install dependencies"
|
||||
_install_status 0
|
||||
}
|
||||
|
||||
|
@ -472,22 +499,22 @@ function _enable_raspap_daemon() {
|
|||
sudo systemctl enable raspapd.service || _install_status 1 "Failed to enable raspap.service"
|
||||
}
|
||||
|
||||
function _install_client_config() {
|
||||
_install_log "Install mobile client scripts and settings"
|
||||
# Move scripts
|
||||
sudo cp "$webroot_dir/config/client_config/"*.sh "$raspap_client_scripts/" || _install_status 1 "Unable to move client scripts"
|
||||
sudo chmod a+rx "$raspap_client_scripts/"*.sh || _install_status 1 "Unable to chmod client scripts"
|
||||
sudo cp "$webroot_dir/config/client_config/mcc-mnc-table.csv" "$raspap_client_scripts/" || _install_status 1 "Unable to move client data"
|
||||
# wvdial settings
|
||||
sudo cp "$webroot_dir/config/client_config/wvdial.conf" "/etc/" || _install_status 1 "Unable to install client configuration"
|
||||
sudo cp "$webroot_dir/config/client_config/interfaces" "/etc/network/interfaces" || _install_status 1 "Unable to install interface settings"
|
||||
# udev rules/services to auto start mobile data services
|
||||
sudo cp "$webroot_dir/config/client_config/70-mobile-data-sticks.rules" "/etc/udev/rules.d/" || _install_status 1 "Unable to install client udev rules"
|
||||
sudo cp "$webroot_dir/config/client_config/80-raspap-net-devices.rules" "/etc/udev/rules.d/" || _install_status 1 "Unable to install client udev rules"
|
||||
sudo cp "$webroot_dir/config/client_config/"*.service "/etc/systemd/system/" || _install_status 1 "Unable to install client startup services"
|
||||
# client configuration and udev rule templates
|
||||
sudo cp "$webroot_dir/config/client_udev_prototypes.json" "/etc/raspap/networking/" || _install_status 1 "Unable to install client configuration"
|
||||
}
|
||||
#function _install_client_config() {
|
||||
# _install_log "Install mobile client scripts and settings"
|
||||
# # Move scripts
|
||||
# sudo cp "$webroot_dir/config/client_config/"*.sh "$raspap_client_scripts/" || _install_status 1 "Unable to move client scripts"
|
||||
# sudo chmod a+rx "$raspap_client_scripts/"*.sh || _install_status 1 "Unable to chmod client scripts"
|
||||
# sudo cp "$webroot_dir/config/client_config/mcc-mnc-table.csv" "$raspap_client_scripts/" || _install_status 1 "Unable to move client data"
|
||||
# # wvdial settings
|
||||
# sudo cp "$webroot_dir/config/client_config/wvdial.conf" "/etc/" || _install_status 1 "Unable to install client configuration"
|
||||
# sudo cp "$webroot_dir/config/client_config/interfaces" "/etc/network/interfaces" || _install_status 1 "Unable to install interface settings"
|
||||
# # udev rules/services to auto start mobile data services
|
||||
# sudo cp "$webroot_dir/config/client_config/70-mobile-data-sticks.rules" "/etc/udev/rules.d/" || _install_status 1 "Unable to install client udev rules"
|
||||
# sudo cp "$webroot_dir/config/client_config/80-raspap-net-devices.rules" "/etc/udev/rules.d/" || _install_status 1 "Unable to install client udev rules"
|
||||
# sudo cp "$webroot_dir/config/client_config/"*.service "/etc/systemd/system/" || _install_status 1 "Unable to install client startup services"
|
||||
# # client configuration and udev rule templates
|
||||
# sudo cp "$webroot_dir/config/client_udev_prototypes.json" "/etc/raspap/networking/" || _install_status 1 "Unable to install client configuration"
|
||||
#}
|
||||
|
||||
# Configure IP forwarding, set IP tables rules, prompt to install RaspAP daemon
|
||||
function _configure_networking() {
|
||||
|
|
40
installers/install_feature_clients.sh
Normal file
40
installers/install_feature_clients.sh
Normal file
|
@ -0,0 +1,40 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# RaspAP feature installation: handling of mobile data clients and client configuration
|
||||
# to be sources by the RaspAP installer script
|
||||
# Author: @zbchristian <christian@zeitnitz.eu>
|
||||
# Author URI: https://github.com/zbchristian/
|
||||
# License: GNU General Public License v3.0
|
||||
# License URI: https://github.com/raspap/raspap-webgui/blob/master/LICENSE
|
||||
|
||||
# path for mobile modem scripts
|
||||
readonly raspap_clients_scripts="/usr/local/sbin"
|
||||
#
|
||||
# table of mobile network operators - links the 5 digit operator code (from the modem) with a clear text operator name
|
||||
readonly raspap_clients_operator_table="https://raw.githubusercontent.com/musalbas/mcc-mnc-table/master/mcc-mnc-table.csv"
|
||||
|
||||
function _install_feature_clients() {
|
||||
name="feature clients"
|
||||
|
||||
_install_log "Install $name"
|
||||
|
||||
_install_log " - required packages for mobile data clients"
|
||||
sudo apt-get install wvdial socat bc || _install_status 1 "Unable to install dependencies for $name"
|
||||
|
||||
_install_log " - copy configuration files and scripts"
|
||||
# Move scripts
|
||||
sudo cp "$webroot_dir/config/client_config/"*.sh "$raspap_clients_scripts/" || _install_status 1 "Unable to move client scripts ($name)"
|
||||
sudo chmod a+rx "$raspap_clients_scripts/"*.sh || _install_status 1 "Unable to chmod client scripts ($name)"
|
||||
# wget $raspap_clients_operator_table -o "$raspap_clients_scripts/"mcc-mnc-table.csv || _install_status 1 "Unable to wget operator table ($name)"
|
||||
sudo cp "$webroot_dir/config/client_config/mcc-mnc-table.csv" "$raspap_clients_scripts/" || _install_status 1 "Unable to move client data ($name)"
|
||||
# wvdial settings
|
||||
sudo cp "$webroot_dir/config/client_config/wvdial.conf" "/etc/" || _install_status 1 "Unable to install client configuration ($name)"
|
||||
sudo cp "$webroot_dir/config/client_config/interfaces" "/etc/network/interfaces" || _install_status 1 "Unable to install interface settings ($name)"
|
||||
# udev rules/services to auto start mobile data services
|
||||
sudo cp "$webroot_dir/config/client_config/70-mobile-data-sticks.rules" "/etc/udev/rules.d/" || _install_status 1 "Unable to install client udev rules ($name)"
|
||||
sudo cp "$webroot_dir/config/client_config/80-raspap-net-devices.rules" "/etc/udev/rules.d/" || _install_status 1 "Unable to install client udev rules ($name)"
|
||||
sudo cp "$webroot_dir/config/client_config/"*.service "/etc/systemd/system/" || _install_status 1 "Unable to install client startup services ($name)"
|
||||
# client configuration and udev rule templates
|
||||
sudo cp "$webroot_dir/config/client_udev_prototypes.json" "/etc/raspap/networking/" || _install_status 1 "Unable to install client configuration ($name)"
|
||||
_install_status 0
|
||||
}
|
Loading…
Reference in a new issue