1#! /bin/sh 2# 3# misc/dst/dst. Generated from dst.in by configure. 4# 5# $Id: dst.in 0.09 2000/03/24 00:00:09 tom Exp $ 6# 7# dst.in: Uses `dst[.awk|.pl]' for processing ZONEINFO files and saves the 8# dates at which Daylight-Saving Times take place converted to the 9# Gcal fixed date format in a resource file. 10# 11# Usage: dst --help | --version 12# Usage: dst [--debug] [--before=DAYS] [--after=DAYS] ZONEINFO-FILE... 13# 14# `--debug': Turn on shell debugging. 15# `--before=DAYS': Display the fixed date up to number DAYS 16# before the Daylight-Saving Time is active. 17# If this option is not given, `--before=0' 18# is used by default. 19# `--after=DAYS': Display the fixed date up to number DAYS 20# after the Daylight-Saving Time is active. 21# If this option is not given, `--after=0' 22# is used by default. 23# 24# UN*X solution. 25# 26# Needs `test', `echo', `eval', `set', `sed', `mv', `rm', 27# `zdump', and `perl' or `awk' for processing! 28# 29# Returns 0 if any fixed dates are created (returned by AWK/Perl script 30# if neither `--help' nor `--version' option was specified). 31# Returns 1 in case no fixed dates are created (returned by AWK/Perl script). 32# Returns 2 if neither Zdump, or neither Perl nor AWK are present for 33# further processing. 34# 35# Copyright (c) 1998, 2000 Thomas Esken <esken@uni-muenster.de> 36# Im Hagenfeld 84 37# D-48147 M"unster 38# GERMANY 39# 40# This software doesn't claim completeness, correctness or usability. 41# On principle I will not be liable for ANY damages or losses (implicit 42# or explicit), which result from using or handling my software. 43# If you use this software, you agree without any exception to this 44# agreement, which binds you LEGALLY !! 45# 46# This program is free software; you can redistribute it and/or modify 47# it under the terms of the `GNU General Public License' as published by 48# the `Free Software Foundation'; either version 3, or (at your option) 49# any later version. 50# 51# You should have received a copy of the `GNU General Public License' 52# along with this program; if not, write to the: 53# 54# 55# 56 57# 58# Basically used programs. 59# 60Mv=mv 61Rm=rm 62Sed=sed 63Set=set 64Test=test 65Echo=echo 66 67# 68# Basically used texts. 69# 70packagedatamiscdir=. 71# 72PACKAGE=gcal 73VERSION=4.1 74transform=s,x,x, 75# 76mydefaultname=dst 77# 78myname=`$Echo "$0" | $Sed -e 's,.*/,,' -e "$transform"` 79myversion=0.09 80myinternalname="$myname ($PACKAGE $VERSION) $myversion" 81# 82gcal_resource_file_suffix=.rc 83backup_suffix="~" 84# 85info1="$myname: Processes ZONEINFO files and saves the dates" 86info2="$myname: at which Daylight-Saving Times take place in" 87info3="$myname: a Gcal resource file by the name \`ZONEINFO-FILE""$gcal_resource_file_suffix'." 88info4="$myname:" 89usage1="usage: $myname --help | --version" 90usage2="usage: $myname [--debug] [--before=DAYS] [--after=DAYS] ZONEINFO-FILE..." 91usage3="usage: $myname without \`--before=DAYS' option uses \`--before=0' by default" 92usage4="usage: $myname without \`--after=DAYS' option uses \`--after=0' by default" 93 94# 95# Some constant values. 96# 97EXIT_SUCCESS=0 98EXIT_FAILURE=1 99EXIT_FATAL=2 100 101# 102# The used programs. 103# 104Eval=eval 105ThisGcal=../../src/gcal 106# 107Zdump=/usr/sbin/zdump 108# 109Awk=gawk 110Awk_script=$mydefaultname"".awk 111# 112Perl=perl 113Perl_script=$mydefaultname"".pl 114 115# 116# Let's check for command line arguments. 117# 118debug=no 119FILS="" 120previous="" 121for option in $* 122do 123 # 124 # If the previous option needs an argument, assign it. 125 # 126 if $Test -n "$previous"; 127 then 128 $Eval "$previous=\$option" 129 previous="" 130 continue 131 fi 132 133 case "$option" in 134 -*=) optarg="###error###" ;; 135 -*=*) optarg=`$Echo "$option" | $Sed 's/[-_a-zA-Z0-9]*=//'` ;; 136 *) optarg="" ;; 137 esac 138 139 # 140 # Manage the options. 141 # 142 case "$option" in 143 -help=* | -hel=* | -he=* | -h=* | -help | -hel |-he | -h | \ 144 --help=* | --hel=* | --he=* | --h=* | --help | --hel | --he | --h) 145 if $Test -n "$optarg"; 146 then 147 $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 148 exit $EXIT_FAILURE 149 fi 150 $Echo "$info1" 151 $Echo "$info2" 152 $Echo "$info3" 153 $Echo "$info4" 154 $Echo "$usage1" 155 $Echo "$usage2" 156 $Echo "$usage3" 157 $Echo "$usage4" 158 exit $EXIT_SUCCESS ;; 159 160 -version=* | -versio=* | -versi=* | -vers=* | -ver=* | -ve=* | -v=* | \ 161 -version | -versio | -versi | -vers | -ver | -ve | -v | \ 162 --version=* | --versio=* | --versi=* | --vers=* | --ver=* | --ve=* | --v=* | \ 163 --version | --versio | --versi | --vers | --ver | --ve | --v) 164 if $Test -n "$optarg"; 165 then 166 $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 167 exit $EXIT_FAILURE 168 fi 169 $Echo "$myinternalname" 170 exit $EXIT_SUCCESS ;; 171 172 -debug=* | -debu=* | -deb=* | -de=* | -d=* | \ 173 -debug | -debu | -deb | -de | -d | \ 174 --debug=* | --debu=* | --deb=* | --de=* | --d=* | \ 175 --debug | --debu | --deb | --de | --d) 176 if $Test -n "$optarg"; 177 then 178 $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=.*//'`' doesn't allow an argument" 1>&2 179 exit $EXIT_FAILURE 180 fi 181 debug=yes 182 shift ;; 183 184 -before | -befor | -befo | -bef | -be | -b | \ 185 --before | --befor | --befo | --bef | --be | --b) 186 previous=before ;; 187 -before=* | -befor=* | -befo=* | -bef=* | -be=* | -b=* | \ 188 --before=* | --befor=* | --befo=* | --bef=* | --be=* | --b=*) 189 if $Test -z "$optarg" || $Test "$optarg" = "###error###"; 190 then 191 $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 192 exit $EXIT_FAILURE 193 fi 194 opt_before="$optarg" 195 shift ;; 196 197 -after | -afte | -aft | -af | -a | \ 198 --after | --afte | --aft | --af | --a) 199 previous=after ;; 200 -after=* | -afte=* | -aft=* | -af=* | -a=* | \ 201 --after=* | --afte=* | --aft=* | --af=* | --a=*) 202 if $Test -z "$optarg" || $Test "$optarg" = "###error###"; 203 then 204 $Echo "$myname: error: option \``$Echo $option | $Sed -e 's/=//g'`' requires an argument" 1>&2 205 exit $EXIT_FAILURE 206 fi 207 opt_after="$optarg" 208 shift ;; 209 210 -* | /*) 211 $Echo "$myname: error: $option: invalid option, use --help to show usage" 1>&2 212 exit $EXIT_FAILURE ;; 213 214 *) 215 if $Test -z "$FILS"; 216 then 217 FILS="$option" 218 else 219 FILS="$FILS $option" 220 fi 221 esac 222done 223 224if $Test -n "$previous"; 225then 226 $Echo "$myname: error: missing argument to --$previous" 1>&2 227 exit $EXIT_FAILURE 228fi 229 230# 231# Enable tracing. 232# 233if $Test "$debug" = yes; 234then 235 $Set -x 236fi 237 238# 239# Let's start processing now. 240# 241if $Test -n "$Zdump" && ($Test -n "$Awk" || $Test -n "$Perl"); 242then 243 if $Test -z "$FILS"; 244 then 245 $Echo "$info1" 246 $Echo "$info2" 247 $Echo "$info3" 248 $Echo "$info4" 249 $Echo "$usage1" 250 $Echo "$usage2" 251 $Echo "$usage3" 252 $Echo "$usage4" 253 exit $EXIT_FAILURE 254 fi 255 ARGS="" 256 if $Test -n "$opt_after"; 257 then 258 arg=`$Echo "$opt_after" | $Sed -e 's/[0-9]//g'` 259 if $Test -z "$arg"; 260 then 261 ARGS="-a""$opt_after" 262 else 263 $Echo "$myname: error: invalid option argument \`$opt_after' specified" 1>&2 264 $Echo "$myname: use --help to show usage" 1>&2 265 exit $EXIT_FAILURE 266 fi 267 fi 268 if $Test -n "$opt_before"; 269 then 270 arg=`$Echo "$opt_before" | $Sed -e 's/[0-9]//g'` 271 if $Test -z "$arg"; 272 then 273 ARGS="$ARGS -b""$opt_before" 274 else 275 $Echo "$myname: error: invalid option argument \`$opt_before' specified" 1>&2 276 $Echo "$myname: use --help to show usage" 1>&2 277 exit $EXIT_FAILURE 278 fi 279 fi 280 # 281 for file in $FILS 282 do 283 # 284 # Design the name of the resulting Gcal resource file. 285 # 286 outfile="`$Echo $file | $Sed -e 's,.*/,,'`""$gcal_resource_file_suffix" 287 # 288 if $Test -s "$outfile" && \ 289 $Test -f "$outfile" && \ 290 $Test -r "$outfile"; 291 then 292 $Mv $outfile $outfile""$backup_suffix 293 fi 294 # 295 if $Test "$debug" = no; 296 then 297 trap "$Rm -f $outfile; \ 298 if $Test -s "$outfile""$backup_suffix" && \ 299 $Test -f "$outfile""$backup_suffix" && \ 300 $Test -r "$outfile""$backup_suffix"; \ 301 then \ 302 $Mv $outfile""$backup_suffix $outfile; \ 303 fi;\ 304 exit $EXIT_FAILURE" 1 2 15 305 fi 306 # 307 # We prefer the use of Perl. 308 # 309 if $Test -n "$Perl"; 310 then 311 $Echo "$myname: \``$Echo $Zdump | $Sed -e 's,.*/,,'`/$Perl' are working on \`$file' ..." 1>&2 312 $Zdump -v $file | $Perl -- $packagedatamiscdir/$Perl_script $ARGS > $outfile 313 else 314 $Echo "$myname: \``$Echo $Zdump | $Sed -e 's,.*/,,'`/$Awk' are working on \`$file' ..." 1>&2 315 $Zdump -v $file | $Awk -f $packagedatamiscdir/$Awk_script $ARGS > $outfile 316 fi 317 status=$? 318 if $Test "$status" -eq "$EXIT_SUCCESS"; 319 then 320 $Echo "$myname: daylight-saving times found, \`$outfile' created" 1>&2 321 else 322 if $Test "$status" -eq "$EXIT_FAILURE"; 323 then 324 $Echo "$myname: no daylight-saving times found in \`$file'" 1>&2 325 else 326 if $Test -n "$Perl"; 327 then 328 $Echo "$myinternalname: error: invalid option \`$ARGS' to \`$Perl' given" 1>&2 329 else 330 $Echo "$myinternalname: error: invalid option \`$ARGS' to \`$Awk' given" 1>&2 331 fi 332 fi 333 $Rm -f $outfile 334 if $Test -s "$outfile""$backup_suffix" && \ 335 $Test -f "$outfile""$backup_suffix" && \ 336 $Test -r "$outfile""$backup_suffix"; 337 then 338 $Mv $outfile""$backup_suffix $outfile 339 fi 340 fi 341 done 342 exit $status 343else 344 $Echo "$myinternalname: error: neither \`zdump', OR neither \`perl' nor \`awk' available" 1>&2 345 exit $EXIT_FATAL 346fi 347