mirror of
				https://github.com/billz/raspap-webgui.git
				synced 2025-03-01 10:31:47 +00:00 
			
		
		
		
	Roll up install prompts with _prompt_install_features()
This commit is contained in:
		@@ -29,13 +29,13 @@ readonly raspap_router="/etc/lighttpd/conf-available/50-raspap-router.conf"
 | 
				
			|||||||
readonly rulesv4="/etc/iptables/rules.v4"
 | 
					readonly rulesv4="/etc/iptables/rules.v4"
 | 
				
			||||||
readonly blocklist_hosts="https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
 | 
					readonly blocklist_hosts="https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
 | 
				
			||||||
readonly blocklist_domains="https://big.oisd.nl/dnsmasq"
 | 
					readonly blocklist_domains="https://big.oisd.nl/dnsmasq"
 | 
				
			||||||
webroot_dir="/var/www/html"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ "$insiders" == 1 ]; then
 | 
					if [ "$insiders" == 1 ]; then
 | 
				
			||||||
    repo="RaspAP/raspap-insiders"
 | 
					    repo="RaspAP/raspap-insiders"
 | 
				
			||||||
    branch=${RASPAP_INSIDERS_LATEST}
 | 
					    branch=${RASPAP_INSIDERS_LATEST}
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
git_source_url="https://github.com/$repo"
 | 
					git_source_url="https://github.com/$repo"
 | 
				
			||||||
 | 
					webroot_dir="/var/www/html"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# NOTE: all the below functions are overloadable for system-specific installs
 | 
					# NOTE: all the below functions are overloadable for system-specific installs
 | 
				
			||||||
function _install_raspap() {
 | 
					function _install_raspap() {
 | 
				
			||||||
@@ -55,12 +55,8 @@ function _install_raspap() {
 | 
				
			|||||||
    _install_lighttpd_configs
 | 
					    _install_lighttpd_configs
 | 
				
			||||||
    _default_configuration
 | 
					    _default_configuration
 | 
				
			||||||
    _configure_networking
 | 
					    _configure_networking
 | 
				
			||||||
    _prompt_install_adblock
 | 
					    _prompt_install_features
 | 
				
			||||||
    _prompt_install_openvpn
 | 
					 | 
				
			||||||
    _prompt_install_restapi
 | 
					 | 
				
			||||||
    _install_extra_features
 | 
					    _install_extra_features
 | 
				
			||||||
    _prompt_install_wireguard
 | 
					 | 
				
			||||||
    _prompt_install_vpn_providers
 | 
					 | 
				
			||||||
    _patch_system_files
 | 
					    _patch_system_files
 | 
				
			||||||
    _install_complete
 | 
					    _install_complete
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -345,19 +341,37 @@ function _install_lighttpd_configs() {
 | 
				
			|||||||
    _install_status 0
 | 
					    _install_status 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Prompt to install ad blocking
 | 
					function _prompt_install_features() {
 | 
				
			||||||
function _prompt_install_adblock() {
 | 
					    readonly features=(
 | 
				
			||||||
    _install_log "Configure ad blocking"
 | 
					      "Ad blocking:Install Ad blocking and enable list management:adblock:_install_adblock"
 | 
				
			||||||
    echo -n "Install ad blocking and enable list management? [Y/n]: "
 | 
					      "OpenVPN:Install OpenVPN and enable client configuration:ovpn:_install_openvpn"
 | 
				
			||||||
 | 
					      "RestAPI:Install and enable RestAPI:restapi:_install_restapi"
 | 
				
			||||||
 | 
					      "WireGuard:Install WireGuard and enable VPN tunnel configuration:wg:_install_wireguard"
 | 
				
			||||||
 | 
					      "VPN provider:Enable VPN provider client configuration:pv:_install_provider"
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    for feature in "${features[@]}"; do
 | 
				
			||||||
 | 
					      IFS=':' read -r -a feature_details <<< "$feature"
 | 
				
			||||||
 | 
					      _prompt_install_feature "${feature_details[@]}"
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Prompt to install optional feature
 | 
				
			||||||
 | 
					function _prompt_install_feature() {
 | 
				
			||||||
 | 
					    local feature="$1"
 | 
				
			||||||
 | 
					    local prompt="$2"
 | 
				
			||||||
 | 
					    local opt="$3"
 | 
				
			||||||
 | 
					    local function="$4"
 | 
				
			||||||
 | 
					    _install_log "Configure $feature support"
 | 
				
			||||||
 | 
					    echo -n "$prompt? [Y/n]: "
 | 
				
			||||||
    if [ "$assume_yes" == 0 ]; then
 | 
					    if [ "$assume_yes" == 0 ]; then
 | 
				
			||||||
        read answer < /dev/tty
 | 
					        read answer < /dev/tty
 | 
				
			||||||
        if [ "$answer" != "${answer#[Nn]}" ]; then
 | 
					        if [ "$answer" != "${answer#[Nn]}" ]; then
 | 
				
			||||||
            _install_status 0 "(Skipped)"
 | 
					            _install_status 0 "(Skipped)"
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            _install_adblock
 | 
					            $function
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    elif [ "$adblock_option" == 1 ]; then
 | 
					    elif [ "${opt}_option" == 1 ]; then
 | 
				
			||||||
        _install_adblock
 | 
					        $function
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
        echo "(Skipped)"
 | 
					        echo "(Skipped)"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
@@ -409,27 +423,9 @@ function _install_adblock() {
 | 
				
			|||||||
    _install_status 0
 | 
					    _install_status 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Prompt to install VPN providers
 | 
					 | 
				
			||||||
function _prompt_install_vpn_providers() {
 | 
					 | 
				
			||||||
    _install_log "Configure VPN provider support (Beta)"
 | 
					 | 
				
			||||||
    echo -n "Enable VPN provider client configuration? [Y/n]: "
 | 
					 | 
				
			||||||
    if [ "$assume_yes" == 0 ]; then
 | 
					 | 
				
			||||||
        read answer < /dev/tty
 | 
					 | 
				
			||||||
        if [ "$answer" != "${answer#[Nn]}" ]; then
 | 
					 | 
				
			||||||
            _install_status 0 "(Skipped)"
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            _install_provider
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
    elif [[ "$pv_option" =~ ^[0-9]+$ ]]; then
 | 
					 | 
				
			||||||
        _install_provider
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        echo "(Skipped)"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Install VPN provider client configuration
 | 
					# Install VPN provider client configuration
 | 
				
			||||||
function _install_provider() {
 | 
					function _install_provider() {
 | 
				
			||||||
 | 
					    _install_log "Installing VPN provider support"
 | 
				
			||||||
    json="$webroot_dir/config/"vpn-providers.json
 | 
					    json="$webroot_dir/config/"vpn-providers.json
 | 
				
			||||||
    while IFS='|' read -r key value; do
 | 
					    while IFS='|' read -r key value; do
 | 
				
			||||||
        options["$key"]="$value"
 | 
					        options["$key"]="$value"
 | 
				
			||||||
@@ -485,63 +481,9 @@ function _install_provider() {
 | 
				
			|||||||
    _install_status 0
 | 
					    _install_status 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Prompt to install openvpn
 | 
					 | 
				
			||||||
function _prompt_install_openvpn() {
 | 
					 | 
				
			||||||
    _install_log "Configure OpenVPN support"
 | 
					 | 
				
			||||||
    echo -n "Install OpenVPN and enable client configuration? [Y/n]: "
 | 
					 | 
				
			||||||
    if [ "$assume_yes" == 0 ]; then
 | 
					 | 
				
			||||||
        read answer < /dev/tty
 | 
					 | 
				
			||||||
        if [ "$answer" != "${answer#[Nn]}" ]; then
 | 
					 | 
				
			||||||
            _install_status 0 "(Skipped)"
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            _install_openvpn
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
    elif [ "$ovpn_option" == 1 ]; then
 | 
					 | 
				
			||||||
        _install_openvpn
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        echo "(Skipped)"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Prompt to install restapi
 | 
					 | 
				
			||||||
function _prompt_install_restapi() {
 | 
					 | 
				
			||||||
    _install_log "Configure RestAPI"
 | 
					 | 
				
			||||||
    echo -n "Install and enable RestAPI? [Y/n]: "
 | 
					 | 
				
			||||||
    if [ "$assume_yes" == 0 ]; then
 | 
					 | 
				
			||||||
        read answer < /dev/tty
 | 
					 | 
				
			||||||
        if [ "$answer" != "${answer#[Nn]}" ]; then
 | 
					 | 
				
			||||||
            _install_status 0 "(Skipped)"
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            _install_restapi
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
    elif [ "$restapi_option" == 1 ]; then
 | 
					 | 
				
			||||||
        _install_restapi
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        echo "(Skipped)"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Prompt to install WireGuard
 | 
					 | 
				
			||||||
function _prompt_install_wireguard() {
 | 
					 | 
				
			||||||
    _install_log "Configure WireGuard support"
 | 
					 | 
				
			||||||
    echo -n "Install WireGuard and enable VPN tunnel configuration? [Y/n]: "
 | 
					 | 
				
			||||||
    if [ "$assume_yes" == 0 ]; then
 | 
					 | 
				
			||||||
        read answer < /dev/tty
 | 
					 | 
				
			||||||
        if [ "$answer" != "${answer#[Nn]}" ]; then
 | 
					 | 
				
			||||||
            _install_status 0 "(Skipped)"
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            _install_wireguard
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
    elif [ "$wg_option" == 1 ]; then
 | 
					 | 
				
			||||||
        _install_wireguard
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
        echo "(Skipped)"
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Install Wireguard from the Debian unstable distro
 | 
					# Install Wireguard from the Debian unstable distro
 | 
				
			||||||
function _install_wireguard() {
 | 
					function _install_wireguard() {
 | 
				
			||||||
    _install_log "Configure WireGuard support"
 | 
					    _install_log "Configuring WireGuard support"
 | 
				
			||||||
    if { [ "$OS" == "Debian" ] && [ "$RELEASE" == 12 ]; } ||
 | 
					    if { [ "$OS" == "Debian" ] && [ "$RELEASE" == 12 ]; } ||
 | 
				
			||||||
       { [ "$OS" == "Ubuntu" ] && [ "$RELEASE" == "22.04" ]; }; then
 | 
					       { [ "$OS" == "Ubuntu" ] && [ "$RELEASE" == "22.04" ]; }; then
 | 
				
			||||||
        wg_dep="resolvconf"
 | 
					        wg_dep="resolvconf"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user