mirror of
				https://github.com/kidwellj/proxmox-scripts.git
				synced 2025-10-30 17:24:09 +00:00 
			
		
		
		
	Added lxc-autodev.sh
This commit is contained in:
		
							parent
							
								
									0724ccca6b
								
							
						
					
					
						commit
						6c1b566572
					
				
					 1 changed files with 78 additions and 0 deletions
				
			
		
							
								
								
									
										78
									
								
								lxc-autodev.sh
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								lxc-autodev.sh
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,78 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| while true; do | ||||
|     printf "Did you replaced 100 with your LXC ID?\n"  | ||||
|     read -p "Proceed(y/n)?" yn | ||||
|     case $yn in | ||||
|         [Yy]* ) break;; | ||||
|         [Nn]* ) exit;; | ||||
|         * ) echo "Please answer yes or no.";; | ||||
|     esac | ||||
| done | ||||
| 
 | ||||
| set -o errexit | ||||
| set -o errtrace | ||||
| set -o nounset | ||||
| set -o pipefail | ||||
| shopt -s expand_aliases | ||||
| alias die='EXIT=$? LINE=$LINENO error_exit' | ||||
| trap die ERR | ||||
| trap cleanup EXIT | ||||
| 
 | ||||
| function error_exit() { | ||||
|   trap - ERR | ||||
|   local DEFAULT='Unknown failure occured.' | ||||
|   local REASON="\e[97m${1:-$DEFAULT}\e[39m" | ||||
|   local FLAG="\e[91m[ERROR] \e[93m$EXIT@$LINE" | ||||
|   msg "$FLAG $REASON" | ||||
|   exit $EXIT | ||||
| } | ||||
| function msg() { | ||||
|   local TEXT="$1" | ||||
|   echo -e "$TEXT" | ||||
| } | ||||
| function cleanup() { | ||||
|   popd >/dev/null | ||||
|   rm -rf $TEMP_DIR | ||||
| } | ||||
| TEMP_DIR=$(mktemp -d) | ||||
| pushd $TEMP_DIR >/dev/null | ||||
| 
 | ||||
| CHAR_DEVS+=("1:1") | ||||
| CHAR_DEVS+=("4:\([3-9]\|[1-5][0-9]\|6[0-3]\)") | ||||
| CHAR_DEVS+=("4:\(6[4-9]\|[7-9][0-9]\|1[0-9][0-9]\|2[0-4][0-9]\|25[0-5]\)") | ||||
| CHAR_DEVS+=("10:200") | ||||
| CHAR_DEVS+=("116:.*") | ||||
| CHAR_DEVS+=("166:.*") | ||||
| CHAR_DEVS+=("180:\([0-9]\|1[0-5]\)") | ||||
| CHAR_DEVS+=("188:.*") | ||||
| CHAR_DEVS+=("189:.*") | ||||
| CHAR_DEVS+=("24[0-2]:.*") | ||||
| 
 | ||||
| for char_dev in ${CHAR_DEVS[@]}; do | ||||
|   [ ! -z "${CHAR_DEV_STRING-}" ] && CHAR_DEV_STRING+=" -o" | ||||
|   CHAR_DEV_STRING+=" -regex \".*/${char_dev}\"" | ||||
| done | ||||
| 
 | ||||
| read -r -d '' HOOK_SCRIPT <<- EOF || true | ||||
| for char_dev in \$(find /sys/dev/char -regextype sed $CHAR_DEV_STRING); do | ||||
|   dev="/dev/\$(sed -n "/DEVNAME/ s/^.*=\(.*\)$/\1/p" \${char_dev}/uevent)"; | ||||
|   mkdir -p \$(dirname \${LXC_ROOTFS_MOUNT}\${dev}); | ||||
|   for link in \$(udevadm info --query=property \$dev | sed -n "s/DEVLINKS=//p"); do | ||||
|     mkdir -p \${LXC_ROOTFS_MOUNT}\$(dirname \$link); | ||||
|     cp -dpR \$link \${LXC_ROOTFS_MOUNT}\${link}; | ||||
|   done; | ||||
|   cp -dpR \$dev \${LXC_ROOTFS_MOUNT}\${dev}; | ||||
| done; | ||||
| EOF | ||||
| HOOK_SCRIPT=${HOOK_SCRIPT//$'\n'/} | ||||
| 
 | ||||
| CTID=$1 | ||||
| CTID_CONFIG_PATH=/etc/pve/lxc/${CTID}.conf | ||||
| sed '/autodev/d' $CTID_CONFIG_PATH >CTID.conf | ||||
| cat CTID.conf >$CTID_CONFIG_PATH | ||||
| 
 | ||||
| cat <<EOF >> $CTID_CONFIG_PATH | ||||
| lxc.autodev: 1 | ||||
| lxc.hook.autodev: bash -c '$HOOK_SCRIPT' | ||||
| EOF | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue