1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/pihole_ynh.git synced 2024-09-03 20:05:58 +02:00
pihole_ynh/scripts/actions/reset_default_config
2020-06-17 21:54:05 +02:00

109 lines
4 KiB
Bash
Executable file

#!/bin/bash
#=================================================
# GENERIC STARTING
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source scripts/_common.sh
source /usr/share/yunohost/helpers
#=================================================
# MANAGE SCRIPT FAILURE
#=================================================
# Exit if an error occurs during the execution of the script
ynh_abort_if_errors
#=================================================
# RETRIEVE ARGUMENTS
#=================================================
app=$YNH_APP_INSTANCE_NAME
query_logging=$(ynh_app_setting_get --app=$app --key=query_logging)
#=================================================
# SORT OUT THE CONFIG FILE TO HANDLE
#=================================================
file="$1"
if [ "$file" = "setupVars.conf" ]; then
config_file="/etc/pihole/setupVars.conf"
elif [ "$file" = "pihole-FTL.conf" ]; then
config_file="/etc/pihole/pihole-FTL.conf"
elif [ "$file" = "01-pihole.conf" ]; then
config_file="/etc/dnsmasq.d/01-pihole.conf"
fi
#=================================================
# SPECIFIC ACTION
#=================================================
# RESET THE CONFIG FILE
#=================================================
ynh_script_progression --message="Resetting the config file $config_file..." --weight=9
# Verify the checksum and backup the file if it's different
ynh_backup_if_checksum_is_different --file="$config_file"
main_iface=$(ip route | grep --max-count=1 default | awk '{print $5;}')
if [ "$file" = "setupVars.conf" ]
then
# Recreate the default config
# Trouve l'interface réseau par défaut
echo "PIHOLE_INTERFACE=$main_iface" > "$config_file"
echo "IPV4_ADDRESS=127.0.0.1" >> "$config_file"
echo "IPV6_ADDRESS=::1" >> "$config_file"
echo "PIHOLE_DNS_1=" >> "$config_file"
echo "PIHOLE_DNS_2=" >> "$config_file"
if [ $query_logging -eq 1 ]; then
query_logging=true
else
query_logging=false
fi
echo "QUERY_LOGGING=$query_logging" >> "$config_file"
echo "INSTALL_WEB=true" >> "$config_file"
elif [ "$file" = "pihole-FTL.conf" ]
then
# Get the default file and overwrite the current config
cp /etc/yunohost/apps/$app/conf/pihole-FTL.conf "$config_file"
ynh_script_progression --message="Restarting PiHole..." --weight=2
# Restart pihole-FTL
ynh_systemd_action --action=restart --service_name=pihole-FTL
elif [ "$file" = "01-pihole.conf" ]
then
cp "$pihole_local_repo/advanced/01-pihole.conf" $config_file
# Use dns from /etc/resolv.dnsmasq.conf
ynh_replace_string --match_string="@DNS1@" --replace_string="" --target_file=$config_file
ynh_replace_string --match_string="@DNS2@" --replace_string="" --target_file=$config_file
ynh_replace_string --match_string="^no-resolv" --replace_string="#no-resolv" --target_file=$config_file
ynh_replace_string --match_string="@INT@" --replace_string="$main_iface" --target_file=$config_file
if [ "$query_logging" = "true" ]; then
ynh_replace_string --match_string="^#log-queries" --replace_string="log-queries" --target_file=$config_file
else
ynh_replace_string --match_string="^log-queries" --replace_string="#log-queries" --target_file=$config_file
fi
# Fix a too recent option for our dnsmasq version.
ynh_replace_string --match_string="log-queries=extra" --replace_string="log-queries" --target_file=$config_file
# To prevent any conflict with the original dnsmasq config, comment cache-size in the original config.
ynh_replace_string --match_string="^cache-size=" --replace_string="#pihole# cache-size=" --target_file=/etc/dnsmasq.conf
fi
# Calculate and store the config file checksum into the app settings
ynh_store_file_checksum --file="$config_file"
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Execution completed" --last