All pastes #629469 Raw Edit

Etwas

public text v1 · immutable
·published 2007-07-22 10:10 UTC
rendered paste body
##### /etc/config/timezone

config timezone
	option posixtz  ''
	option zoneinfo ''
	option etctz    '/etc/TZ'


##### /etc/init.d/timezone

#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=11

EXTRA_COMMANDS="list"
EXTRA_HELP="        list    Lists available time zones"

TIMEZONE_TABLE=/usr/lib/timezones.csv

get_posix_timezone () {
	awk -v timezoneinfo="$zoneinfo" 'BEGIN { FS = "	" }
		/^(#.*)?$/ { next }
		{ list_timezone = $4; if ( list_timezone == timezoneinfo ) { print $3 } }
		END { }' < $TIMEZONE_TABLE 2>/dev/null
}

list_available_timezones () {
	awk 'BEGIN { FS = "	"; last_group="" }
		/^(#.*)?$/ { next }
		$1 != last_group { last_group=$1; print "\n" $1 }
		{ list_timezone = $4; print "  " list_timezone }
		END { }' < $TIMEZONE_TABLE 2>/dev/null
}

start_service () {
	local section="$1"
	config_get posixtz  "$section" posixtz
	config_get zoneinfo "$section" zoneinfo
	config_get etctz    "$section" etctz

	if [ ! -h "$etctz" ]; then 
		ln -sf /tmp/TZ "$etctz"
	fi
	[ -n "$zoneinfo" ] && get_posix_timezone "$zoneinfo" > "$etctz" || echo "UTC+0" > "$etctz"

	# config_set
	# posixtz=get_posix_timezone "$zoneinfo"

	config_set "$section" "posixtz" "foobar"
}

start () {
	config_load "timezone"
	config_foreach start_service timezone
}

restart () {
	start
}

list () {
	echo "Available time zones"
	echo "--------------------"

	list_available_timezones
}