diff options
author | Rick Balocca <rbalocca@vyatta.com> | 2008-11-07 17:04:09 -0800 |
---|---|---|
committer | Rick Balocca <rbalocca@vyatta.com> | 2008-11-07 17:04:09 -0800 |
commit | 2944ef32dc0bc7113e0e516f154e4bdd527895d2 (patch) | |
tree | db457653e5e3ba2f133b8ef48df970443f9d65b0 /templates | |
parent | 9100ddd1059a048b2e0b3aff7d3a50a910e3b57c (diff) | |
parent | a96c79e41c61d25822fb16e7dfba28182a5fd2e9 (diff) | |
download | vyatta-cfg-quagga-2944ef32dc0bc7113e0e516f154e4bdd527895d2.tar.gz vyatta-cfg-quagga-2944ef32dc0bc7113e0e516f154e4bdd527895d2.zip |
Merge branch 'islavista' into jenner
Diffstat (limited to 'templates')
-rw-r--r-- | templates/system/time-zone/node.def | 79 |
1 files changed, 49 insertions, 30 deletions
diff --git a/templates/system/time-zone/node.def b/templates/system/time-zone/node.def index e271e3e6..00179850 100644 --- a/templates/system/time-zone/node.def +++ b/templates/system/time-zone/node.def @@ -1,35 +1,54 @@ type: txt help: Set local timezone default: "GMT" -update:expression: "LTF=\"/usr/share/zoneinfo\" && \ -case \"$VAR(@)\" in \ - [Ll][Oo][Ss]*) LTF=\"$LTF/US/Pacific\" ;; \ - [Dd][Ee][Nn]*) LTF=\"$LTF/US/Mountain\" ;; \ - [Hh][Oo][Nn]*) LTF=\"$LTF/US/Hawaii\" ;; \ - [Nn][Ee][Ww]*) LTF=\"$LTF/US/Eastern\" ;; \ - [Cc][Hh][Ii]*) LTF=\"$LTF/US/Central\" ;; \ - [Aa][Nn][Cc]*) LTF=\"$LTF/US/Alaska\" ;; \ - [Pp][Hh][Oo]*) LTF=\"$LTF/US/Arizona\" ;; \ - *) LTF=\"$LTF/Etc/$VAR(@)\" ;; \ -esac && \ -if [ -e \"$LTF\" ]; then \ - sudo ln -fs $LTF /etc/localtime; \ -else \ - echo \"Invalid timezone\"; \ - exit 1; \ -fi" +update: LTF="/usr/share/zoneinfo" + case "$VAR(@)" in + [Ll][Oo][Ss]*) LTF="$LTF/US/Pacific" ;; + [Dd][Ee][Nn]*) LTF="$LTF/US/Mountain" ;; + [Hh][Oo][Nn][Oo]*) LTF="$LTF/US/Hawaii" ;; + [Nn][Ee][Ww]*) LTF="$LTF/US/Eastern" ;; + [Cc][Hh][Ii][Cc]*) LTF="$LTF/US/Central" ;; + [Aa][Nn][Cc]*) LTF="$LTF/US/Alaska" ;; + [Pp][Hh][Oo]*) LTF="$LTF/US/Arizona" ;; + GMT*) LTF="$LTF/Etc/$VAR(@)" ;; + *) LTF="$LTF/$VAR(@)" ;; + esac + if [ -f "$LTF" ]; then + sudo ln -fs $LTF /etc/localtime + else + echo "Invalid timezone" + exit 1 + fi delete:expression: "sudo ln -fs /usr/share/zoneinfo/GMT /etc/localtime" -allowed: local -a list=( "Los Angeles" "New York" "Denver" "Chicago" \ - "Anchorage" "Honolulu" "Phoenix" "GMT" ) - for (( i = -1; i > -13; i-- )); do - list[${#list[@]}]="GMT$i"; +allowed: word=${COMP_WORDS[$COMP_CWORD]} + if [[ $word == */* ]]; then + marr=($(ls -d /usr/share/zoneinfo/$word*)) + else + marr=($(find /usr/share/zoneinfo/ -maxdepth 1 -type d \ + -name "$word*")) + fi + if (( ${#marr[@]} == 1 )); then + word=${marr[0]#/usr/share/zoneinfo/} + fi + if [ -n "$word" ] && [[ $word != */ ]]; then + marr=($(ls -d /usr/share/zoneinfo/$word*)) + if (( ${#marr[@]} == 1 )) \ + && [ -d "/usr/share/zoneinfo/$word" ]; then + word=$word/ + elif [[ $word == */* ]]; then + word=${word%/*}/ + fi + fi + for z in $(ls -d /usr/share/zoneinfo/$word* \ + 2>/dev/null | egrep '^/usr/share/zoneinfo/[A-Z]'); do + zz=${z#/usr/share/zoneinfo/} + if [ -d $z ] || [[ $zz == */* ]]; then + echo \"$zz\" + fi done - for (( i = 1; i < 13; i++ )); do - list[${#list[@]}]="GMT+$i"; - done - for zone in "${list[@]}"; do - echo \"$zone\" - done -comp_help:Enter one of the following time zones: - Honolulu Anchorage Los Angeles Phoenix Denver Chicago New York - GMT GMT-1 ... GMT-12 GMT+1 ... GMT+12 +comp_help:Enter the local timezone by specifying "Region/City" + Use auto-completion to see available regions and cities. + Start with one of these regions: + Africa America Antarctica Arctic Asia Atlantic + Australia Brazil Canada Chile Europe Indian + Mexico Mideast Pacific US |