xref: /netbsd-src/external/bsd/dhcpcd/dist/hooks/15-timezone (revision d55488a43da4454c0cc83730236a73611848264d)
18fd57d42Sroy# Configure timezone
28fd57d42Sroy
38fd57d42Sroy: ${localtime:=/etc/localtime}
48fd57d42Sroy
58fd57d42Sroyset_zoneinfo()
68fd57d42Sroy{
78fd57d42Sroy	[ -z "$new_tzdb_timezone" ] && return 0
88fd57d42Sroy
910383d8fSroy	zoneinfo_dir=
108fd57d42Sroy	for d in \
118fd57d42Sroy		/usr/share/zoneinfo	\
128fd57d42Sroy		/usr/lib/zoneinfo	\
138fd57d42Sroy		/var/share/zoneinfo	\
148fd57d42Sroy		/var/zoneinfo		\
158fd57d42Sroy	; do
168fd57d42Sroy		if [ -d "$d" ]; then
178fd57d42Sroy			zoneinfo_dir="$d"
188fd57d42Sroy			break
198fd57d42Sroy		fi
208fd57d42Sroy	done
218fd57d42Sroy
228fd57d42Sroy	if [ -z "$zoneinfo_dir" ]; then
238fd57d42Sroy		syslog warning "timezone directory not found"
248fd57d42Sroy		return 1
258fd57d42Sroy	fi
268fd57d42Sroy
278fd57d42Sroy	zone_file="$zoneinfo_dir/$new_tzdb_timezone"
288fd57d42Sroy	if [ ! -e "$zone_file" ]; then
298fd57d42Sroy		syslog warning "no timezone definition for $new_tzdb_timezone"
308fd57d42Sroy		return 1
318fd57d42Sroy	fi
328fd57d42Sroy
338fd57d42Sroy	if copy_file "$zone_file" "$localtime"; then
348fd57d42Sroy		syslog info "timezone changed to $new_tzdb_timezone"
358fd57d42Sroy	fi
368fd57d42Sroy}
378fd57d42Sroy
388fd57d42Sroy# For ease of use, map DHCP6 names onto our DHCP4 names
398fd57d42Sroycase "$reason" in
408fd57d42SroyBOUND6|RENEW6|REBIND6|REBOOT6|INFORM6)
418fd57d42Sroy	new_tzdb_timezone="$new_dhcp6_tzdb_timezone"
428fd57d42Sroy	;;
438fd57d42Sroyesac
448fd57d42Sroy
45*d55488a4Sroyif $if_configured && $if_up; then
468fd57d42Sroy 	set_zoneinfo
478fd57d42Sroyfi
48