xref: /dragonfly/contrib/dhcpcd/hooks/15-timezone (revision b2927f2b)
17827cba2SAaron LI# Configure timezone
27827cba2SAaron LI
37827cba2SAaron LI: ${localtime:=/etc/localtime}
47827cba2SAaron LI
57827cba2SAaron LIset_zoneinfo()
67827cba2SAaron LI{
77827cba2SAaron LI	[ -z "$new_tzdb_timezone" ] && return 0
87827cba2SAaron LI
97827cba2SAaron LI	zoneinfo_dir=
107827cba2SAaron LI	for d in \
117827cba2SAaron LI		/usr/share/zoneinfo	\
127827cba2SAaron LI		/usr/lib/zoneinfo	\
137827cba2SAaron LI		/var/share/zoneinfo	\
147827cba2SAaron LI		/var/zoneinfo		\
157827cba2SAaron LI	; do
167827cba2SAaron LI		if [ -d "$d" ]; then
177827cba2SAaron LI			zoneinfo_dir="$d"
187827cba2SAaron LI			break
197827cba2SAaron LI		fi
207827cba2SAaron LI	done
217827cba2SAaron LI
227827cba2SAaron LI	if [ -z "$zoneinfo_dir" ]; then
237827cba2SAaron LI		syslog warning "timezone directory not found"
247827cba2SAaron LI		return 1
257827cba2SAaron LI	fi
267827cba2SAaron LI
277827cba2SAaron LI	zone_file="$zoneinfo_dir/$new_tzdb_timezone"
287827cba2SAaron LI	if [ ! -e "$zone_file" ]; then
297827cba2SAaron LI		syslog warning "no timezone definition for $new_tzdb_timezone"
307827cba2SAaron LI		return 1
317827cba2SAaron LI	fi
327827cba2SAaron LI
337827cba2SAaron LI	if copy_file "$zone_file" "$localtime"; then
347827cba2SAaron LI		syslog info "timezone changed to $new_tzdb_timezone"
357827cba2SAaron LI	fi
367827cba2SAaron LI}
377827cba2SAaron LI
387827cba2SAaron LI# For ease of use, map DHCP6 names onto our DHCP4 names
397827cba2SAaron LIcase "$reason" in
407827cba2SAaron LIBOUND6|RENEW6|REBIND6|REBOOT6|INFORM6)
417827cba2SAaron LI	new_tzdb_timezone="$new_dhcp6_tzdb_timezone"
427827cba2SAaron LI	;;
437827cba2SAaron LIesac
447827cba2SAaron LI
45b2927f2bSRoy Marplesif $if_configured && $if_up; then
467827cba2SAaron LI 	set_zoneinfo
477827cba2SAaron LIfi
48