mirror of
https://github.com/dw-0/kiauh.git
synced 2025-11-03 10:55:47 +01:00
118 lines
4.1 KiB
Bash
118 lines
4.1 KiB
Bash
|
|
create_reverse_proxy(){
|
||
|
|
if [ "$SET_REVERSE_PROXY" = "true" ]; then
|
||
|
|
#check for dependencies
|
||
|
|
dep=(nginx)
|
||
|
|
dependency_check
|
||
|
|
#execute operations
|
||
|
|
status_msg "Creating Nginx configuration for $1 ..."
|
||
|
|
cat ${HOME}/kiauh/resources/$1_nginx.cfg > ${HOME}/kiauh/resources/$1
|
||
|
|
sudo mv ${HOME}/kiauh/resources/$1 /etc/nginx/sites-available/$1
|
||
|
|
#ONLY FOR MAINSAIL: replace username if not "pi"
|
||
|
|
if [ "$1" = "mainsail" ]; then
|
||
|
|
sudo sed -i "/root/s/pi/${USER}/" /etc/nginx/sites-available/mainsail
|
||
|
|
fi
|
||
|
|
ok_msg "Nginx configuration for $1 was set!"
|
||
|
|
#remove default config
|
||
|
|
if [ -e /etc/nginx/sites-enabled/default ]; then
|
||
|
|
sudo rm /etc/nginx/sites-enabled/default
|
||
|
|
fi
|
||
|
|
#create symlink for own configs
|
||
|
|
if [ ! -e /etc/nginx/sites-enabled/$1 ]; then
|
||
|
|
sudo ln -s /etc/nginx/sites-available/$1 /etc/nginx/sites-enabled/
|
||
|
|
fi
|
||
|
|
restart_nginx
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
create_custom_hostname(){
|
||
|
|
echo
|
||
|
|
top_border
|
||
|
|
echo -e "| You can change the hostname of this machine to use |"
|
||
|
|
echo -e "| that name to open the Interface in your browser. |"
|
||
|
|
echo -e "| |"
|
||
|
|
echo -e "| Example: If you set the hostname to 'my-printer' |"
|
||
|
|
echo -e "| you can open DWC2/Mainsail/Octoprint by |"
|
||
|
|
echo -e "| browsing to: http://my-printer.local |"
|
||
|
|
bottom_border
|
||
|
|
while true; do
|
||
|
|
read -p "${cyan}###### Do you want to change the hostname? (y/N):${default} " yn
|
||
|
|
case "$yn" in
|
||
|
|
Y|y|Yes|yes)
|
||
|
|
user_input_hostname
|
||
|
|
break;;
|
||
|
|
N|n|No|no|"") break;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
}
|
||
|
|
|
||
|
|
user_input_hostname(){
|
||
|
|
unset NEW_HOSTNAME
|
||
|
|
unset HOSTNAME_VALID
|
||
|
|
unset HOSTENAME_CONFIRM
|
||
|
|
echo
|
||
|
|
top_border
|
||
|
|
echo -e "| ${green}Allowed characters: a-z, 0-9 and single '-'${default} |"
|
||
|
|
echo -e "| ${red}No special characters allowed!${default} |"
|
||
|
|
echo -e "| ${red}No leading or trailing '-' allowed!${default} |"
|
||
|
|
bottom_border
|
||
|
|
while true; do
|
||
|
|
read -p "${cyan}###### Please set the new hostname:${default} " NEW_HOSTNAME
|
||
|
|
if [[ $NEW_HOSTNAME =~ ^[^\-\_]+([0-9a-z]\-{0,1})+[^\-\_]+$ ]]; then
|
||
|
|
ok_msg "'$NEW_HOSTNAME' is a valid hostname!"
|
||
|
|
HOSTNAME_VALID="true"
|
||
|
|
while true; do
|
||
|
|
echo
|
||
|
|
read -p "${cyan}###### Do you want '$NEW_HOSTNAME' to be the new hostname? (Y/n):${default} " yn
|
||
|
|
case "$yn" in
|
||
|
|
Y|y|Yes|yes|"")
|
||
|
|
echo -e "###### > Yes"
|
||
|
|
HOSTENAME_CONFIRM="true"
|
||
|
|
break;;
|
||
|
|
N|n|No|no)
|
||
|
|
echo -e "###### > No"
|
||
|
|
echo -e "${red}Skip hostname change ...${default}"
|
||
|
|
HOSTENAME_CONFIRM="false"
|
||
|
|
break;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
break
|
||
|
|
else
|
||
|
|
warn_msg "'$NEW_HOSTNAME' is not a valid hostname!"
|
||
|
|
fi
|
||
|
|
done
|
||
|
|
}
|
||
|
|
|
||
|
|
set_hostname(){
|
||
|
|
if [ "$HOSTNAME_VALID" = "true" ] && [ "$HOSTENAME_CONFIRM" = "true" ]; then
|
||
|
|
#check for dependencies
|
||
|
|
dep=(avahi-daemon)
|
||
|
|
dependency_check
|
||
|
|
#execute operations
|
||
|
|
#get current hostname and write to variable
|
||
|
|
HOSTNAME=$(hostname)
|
||
|
|
#create host file if missing or create backup of existing one with current date&time
|
||
|
|
if [ -f /etc/hosts ]; then
|
||
|
|
status_msg "Creating backup of hosts file ..."
|
||
|
|
get_date
|
||
|
|
sudo cp /etc/hosts /etc/hosts."$current_date".bak
|
||
|
|
ok_msg "Backup done!"
|
||
|
|
ok_msg "File:'/etc/hosts."$current_date".bak'"
|
||
|
|
else
|
||
|
|
sudo touch /etc/hosts
|
||
|
|
fi
|
||
|
|
#set hostname in /etc/hostname
|
||
|
|
status_msg "Setting hostname to '$NEW_HOSTNAME' ..."
|
||
|
|
status_msg "Please wait ..."
|
||
|
|
sudo hostnamectl set-hostname "$NEW_HOSTNAME"
|
||
|
|
#write new hostname to /etc/hosts
|
||
|
|
status_msg "Writing new hostname to /etc/hosts ..."
|
||
|
|
if cat /etc/hosts | grep "###set by kiauh" &>/dev/null; then
|
||
|
|
sudo sed -i "/###set by kiauh/s/\<$HOSTNAME\>/$NEW_HOSTNAME/" /etc/hosts
|
||
|
|
else
|
||
|
|
echo "127.0.0.1 $NEW_HOSTNAME ###set by kiauh" | sudo tee -a /etc/hosts &>/dev/null
|
||
|
|
fi
|
||
|
|
ok_msg "New hostname successfully configured!"
|
||
|
|
ok_msg "Remember to reboot for the changes to take effect!"
|
||
|
|
fi
|
||
|
|
}
|