93 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/usr/bin/env bash
 | |
| # Copyright (c) 2021-2025 community-scripts ORG
 | |
| # Author: Michel Roegl-Brunner (michelroegl-brunner)
 | |
| # License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
 | |
| 
 | |
| color() {
 | |
|   return
 | |
| }
 | |
| 
 | |
| catch_errors() {
 | |
|   set -Euo pipefail
 | |
|   trap 'error_handler $LINENO "$BASH_COMMAND"' ERR
 | |
| }
 | |
| 
 | |
| error_handler() {
 | |
|   local line_number="$1"
 | |
|   local command="$2"
 | |
|   local error_message="Failure in line $line_number while executing command '$command'"   
 | |
|   echo -e "\n$error_message\n" >&2
 | |
|   exit 1
 | |
| }
 | |
| 
 | |
| verb_ip6() {
 | |
|   STD="silent"
 | |
|   silent() {
 | |
|     "$@" >/dev/null 2>&1 || error_handler "${BASH_LINENO[0]}" "$*"
 | |
|   }
 | |
|   return
 | |
| }
 | |
| 
 | |
| msg_info() {
 | |
|   local msg="$1"
 | |
|   echo -ne "${msg}\n"
 | |
| }
 | |
| 
 | |
| msg_ok() {
 | |
|   local msg="$1"
 | |
|   echo -e "${msg}\n"
 | |
| }
 | |
| 
 | |
| msg_error() {
 | |
| 
 | |
|   local msg="$1"
 | |
|   echo -e "${msg}\n"
 | |
| }
 | |
| 
 | |
| RETRY_NUM=10
 | |
| RETRY_EVERY=3
 | |
| setting_up_container() {
 | |
| 
 | |
|   sed -i "/$LANG/ s/\(^# \)//" /etc/locale.gen
 | |
|   locale_line=$(grep -v '^#' /etc/locale.gen | grep -E '^[a-zA-Z]' | awk '{print $1}' | head -n 1)
 | |
|   echo "LANG=${locale_line}" >/etc/default/locale
 | |
|   locale-gen >/dev/null
 | |
|   export LANG=${locale_line}
 | |
|   echo $tz >/etc/timezone
 | |
|   ln -sf /usr/share/zoneinfo/$tz /etc/localtime
 | |
| 
 | |
|   for ((i = RETRY_NUM; i > 0; i--)); do
 | |
|     if [ "$(hostname -I)" != "" ]; then
 | |
|       break
 | |
|     fi
 | |
|     sleep $RETRY_EVERY
 | |
|   done
 | |
|   if [ "$(hostname -I)" = "" ]; then
 | |
|     echo 1>&2 -e "\nNo Network After $RETRY_NUM Tries"
 | |
|     echo -e "Check Network Settings"
 | |
|     exit 101
 | |
|   fi
 | |
|   rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
 | |
|   systemctl disable -q --now systemd-networkd-wait-online.service
 | |
| }
 | |
| 
 | |
| network_check() {
 | |
|   RESOLVEDIP=$(getent hosts github.com | awk '{ print $1 }')
 | |
|   if [[ -z "$RESOLVEDIP" ]]; then msg_error "DNS Lookup Failure"; else msg_ok "DNS Resolved github.com to $RESOLVEDIP"; fi
 | |
|   set -e
 | |
| }
 | |
| 
 | |
| update_os() {
 | |
|   export DEBIAN_FRONTEND=noninteractive
 | |
|   apt-get update >/dev/null 2>&1
 | |
|   apt-get -o Dpkg::Options::="--force-confold" -y dist-upgrade >/dev/null
 | |
|   rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED
 | |
| }
 | |
| 
 | |
| motd_ssh() {
 | |
|   return
 | |
| }
 | |
| 
 | |
| customize() {
 | |
|   return
 | |
| } | 
