My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# ----------------------------------------------------------------------------
# http://www.worldtimeserver.com
# Mostra a hora certa de um determinado local.
# Se nenhum parâmetro for passado, são listados as localidades disponíveis.
# O parâmetro pode ser tanto a sigla quando o nome da localidade.
# A opção -s realiza a busca somente na sigla.
# Uso: zzhoracerta [-s] local
# Ex.: zzhoracerta rio grande do sul
# zzhoracerta -s br
# zzhoracerta rio
# zzhoracerta us-ny
#
# Autor: Thobias Salazar Trevisan, www.thobias.org
# Desde: 2004-03-29
# Licença: GPL
# ----------------------------------------------------------------------------
zzhoracerta ()
{
zzzz -h horacerta "$1" && return

local codigo localidade localidades
local cache="$ZZTMP.horacerta"
local url='http://www.worldtimeserver.com'

# Opções de linha de comando
if [ "$1" = '-s' ]
then
shift
codigo="$1"
else
localidade="$*"
fi

# Se o cache está vazio, baixa listagem da Internet
# De: <li><a href="current_time_in_AR-JY.aspx">Jujuy</a></li>
# Para: AR-JY -- Jujuy
if ! test -s "$cache"
then
$ZZWWWHTML "$url/country.html" |
grep 'current_time_in_' |
sed 's/.*_time_in_// ; s/\.aspx">/ -- / ; s/<.*//' > "$cache"
fi

# Se nenhum parâmetro for passado, são listados os países disponíveis
if ! [ "$localidade$codigo" ]
then
cat "$cache"
return
fi

# Faz a pesquisa por codigo ou texto
if [ "$codigo" ]
then
localidades=$(grep -i "^[^ ]*$codigo" "$cache")
else
localidades=$(grep -i "$localidade" "$cache")
fi

# Se mais de uma localidade for encontrada, mostre-as
if test $(echo "$localidades" | sed -n '$=') != 1
then
echo "$localidades"
return
fi

# A localidade existe?
if ! [ "$localidades" ]
then
echo "Localidade \"$localidade$codigo\" não encontrada"
return 1
fi

# Grava o código da localidade (BR-RS -- Rio Grande do Sul -> BR-RS)
localidade=$(echo "$localidades" | sed 's/ .*//')

# Faz a consulta e filtra o resultado
$ZZWWWDUMP "$url/current_time_in_$localidade.aspx" |
sed -n '/The current time/,/UTC/p'
}

Change log

r710 by aureliojargas on Mar 29, 2012   Diff
SEGURANÇA: $1 colocado entre aspas na
chamada padrão zzzz -h de todas as
funções.
Go to: 
Sign in to write a code review

Older revisions

r668 by aureliojargas on Mar 28, 2012   Diff
lint: removendo espaços inúteis.
r540 by aureliojargas on May 24, 2011   Diff
COMBO: Removidos espaços e tabs
inúteis do fim das linhas, verificados
por utils/alinhamento
r477 by aureliojargas on May 20, 2011   Diff
COMBO:
Arrumado o return de várias funções.
Agora usando return 1 quando algum
erro ocorre e return 0 quando é uma
saída OK. Outros casos onde pode haver
...
All revisions of this file

File info

Size: 2086 bytes, 79 lines
Powered by Google Project Hosting