forked from ungleich-public/cdist
		
	[__hostname] Check hostname length if getconf(1) is available
This commit is contained in:
		
					parent
					
						
							
								cee553a6dd
							
						
					
				
			
			
				commit
				
					
						c3b066c147
					
				
			
		
					 2 changed files with 22 additions and 6 deletions
				
			
		
							
								
								
									
										10
									
								
								cdist/conf/type/__hostname/explorer/max_len
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								cdist/conf/type/__hostname/explorer/max_len
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,10 @@
 | 
			
		|||
#!/bin/sh -e
 | 
			
		||||
 | 
			
		||||
command -v getconf >/dev/null || exit 0
 | 
			
		||||
 | 
			
		||||
val=$(getconf HOST_NAME_MAX 2>/dev/null)
 | 
			
		||||
 | 
			
		||||
if test -n "${val}" -a "${val}" != 'undefined'
 | 
			
		||||
then
 | 
			
		||||
	echo "${val}"
 | 
			
		||||
fi
 | 
			
		||||
| 
						 | 
				
			
			@ -20,6 +20,13 @@
 | 
			
		|||
# along with cdist. If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
not_supported() {
 | 
			
		||||
   echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2
 | 
			
		||||
   echo "Please contribute an implementation for it if you can." >&2
 | 
			
		||||
   exit 1
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
os=$(cat "$__global/explorer/os")
 | 
			
		||||
if [ -f "$__object/parameter/name" ]; then
 | 
			
		||||
    name_should="$(cat "$__object/parameter/name")"
 | 
			
		||||
| 
						 | 
				
			
			@ -38,12 +45,11 @@ else
 | 
			
		|||
    esac
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
not_supported() {
 | 
			
		||||
   echo "Your operating system ($os) is currently not supported by this type (${__type##*/})." >&2
 | 
			
		||||
   echo "Please contribute an implementation for it if you can." >&2
 | 
			
		||||
if test -n "${max_len}" -a "$(wc -c "${name_should}")" -gt "${max_len}"a
 | 
			
		||||
then
 | 
			
		||||
	printf "Host name too long. Up to %u characters allowed.\n" "${max_len}" >&2
 | 
			
		||||
	exit 1
 | 
			
		||||
}
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
case $os
 | 
			
		||||
in
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue