base-files: fix zoneinfo support
The system init script currently sets /tmp/localinfo when zoneinfo is
populated. However, zoneinfo has spaces in it whereas the actual files
have _ instead of spaces. This made the if condition never return true.
Example failure when removing the if condition:
/tmp/localtime -> /usr/share/zoneinfo/America/Los Angeles
This file does not exist. America/Los_Angeles does.
Ran through shfmt -w -ci -bn -sr -s
Signed-off-by: Rosen Penev <rosenp@gmail.com>
(cherry picked from commit 8af62ede18)
			
			
This commit is contained in:
		 Rosen Penev
					Rosen Penev
				
			
				
					committed by
					
						 Paul Spooren
						Paul Spooren
					
				
			
			
				
	
			
			
			 Paul Spooren
						Paul Spooren
					
				
			
						parent
						
							ab5010d170
						
					
				
				
					commit
					3047df2317
				
			| @@ -4,8 +4,7 @@ | |||||||
| START=10 | START=10 | ||||||
| USE_PROCD=1 | USE_PROCD=1 | ||||||
|  |  | ||||||
| validate_system_section() | validate_system_section() { | ||||||
| { |  | ||||||
| 	uci_load_validate system system "$1" "$2" \ | 	uci_load_validate system system "$1" "$2" \ | ||||||
| 		'hostname:string:OpenWrt' \ | 		'hostname:string:OpenWrt' \ | ||||||
| 		'conloglevel:uinteger' \ | 		'conloglevel:uinteger' \ | ||||||
| @@ -22,9 +21,13 @@ system_config() { | |||||||
|  |  | ||||||
| 	echo "$hostname" > /proc/sys/kernel/hostname | 	echo "$hostname" > /proc/sys/kernel/hostname | ||||||
| 	[ -z "$conloglevel" -a -z "$buffersize" ] || dmesg ${conloglevel:+-n $conloglevel} ${buffersize:+-s $buffersize} | 	[ -z "$conloglevel" -a -z "$buffersize" ] || dmesg ${conloglevel:+-n $conloglevel} ${buffersize:+-s $buffersize} | ||||||
| 	echo "$timezone" > /tmp/TZ | 	rm -f /tmp/TZ | ||||||
| 	[ -n "$zonename" ] && [ -f "/usr/share/zoneinfo/$zonename" ] && \ | 	if [ -n "$zonename" ]; then | ||||||
| 		ln -sf "/usr/share/zoneinfo/$zonename" /tmp/localtime && rm -f /tmp/TZ | 		local zname=$(echo "$zonename" | tr ' ' _) | ||||||
|  | 		[ -f "/usr/share/zoneinfo/$zname" ] && ln -sf "/usr/share/zoneinfo/$zname" /tmp/localtime | ||||||
|  | 	else | ||||||
|  | 		echo "$timezone" > /tmp/TZ | ||||||
|  | 	fi | ||||||
|  |  | ||||||
| 	# apply timezone to kernel | 	# apply timezone to kernel | ||||||
| 	hwclock -u --systz | 	hwclock -u --systz | ||||||
| @@ -35,8 +38,7 @@ reload_service() { | |||||||
| 	config_foreach validate_system_section system system_config | 	config_foreach validate_system_section system system_config | ||||||
| } | } | ||||||
|  |  | ||||||
| service_triggers() | service_triggers() { | ||||||
| { |  | ||||||
| 	procd_add_reload_trigger "system" | 	procd_add_reload_trigger "system" | ||||||
| 	procd_add_validation validate_system_section | 	procd_add_validation validate_system_section | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user