Verificando a versão mais recente do Wine via script

Publicado por Paulo Sergio Travaglia 01/02/2008

[ Hits: 8.525 ]

Download VerificaUltimaVersaoWine.sh




O projeto Wine é bem dinâmico. Em um curto período de tempo são disponibilizadas novas versões (por exemplo, as versões 0.9.50, 9.0.51 e 9.0.52 foram lançadas no período de 1 mês!).

Esse script simples visa obter da página do Wine a versão mais recente e a data de lançamento.

Espero que seja útil na sua finalidade ou para quem quer aprender shell script.

  



Esconder código-fonte

#!/bin/bash

# Um script simples para verificar a versao mais recente do Wine
# 29/12/2007 - Paulo Sergio Travaglia

# Depende de:
# - wget
# - Uma conexao de internet ativa
# - Do layout atual da pagina www.winehq.org :)

#####################################################################################
# [Declaracao de funcoes]
#####################################################################################

# Retorna o numero correspondente ao mes
RetornaNumeroMes()
{
  case $1 in
    "January")   numero_mes="01";;
    "February")  numero_mes="02";;
    "March")     numero_mes="03";;
    "April")     numero_mes="04";;
    "May")       numero_mes="05";;
    "June")      numero_mes="06";;
    "July")      numero_mes="07";;
    "August")    numero_mes="08";;
    "September") numero_mes="09";;
    "October")   numero_mes="10";;
    "November")  numero_mes="11";;
    "December")  numero_mes="12";;
  esac
}

# Calcula a quantidade de dias entre a data atual e a informada como parametro
fCalculaDias()
{
  # Obtem a quantidade de dias que se passaram ate a data atual (a partir de 01-01-1970)
  dias_atual=`date "+%s"`
  dias_atual=`expr $dias_atual / 86400`

  # Mesmo calculo feito acima, porem para a data informada como parametro
  dias_param=`date -d "${1}" "+%s"`
  dias_param=`expr $dias_param / 86400`

  # Calcula a diferenca entre as duas datas
  diferenca=`expr $dias_atual - $dias_param`

}

# Verifica a versao e a data de release mais recente do Wine
fObtemUltimaVersaoWine()
{
  link="http://www.winehq.org"

  # Testa se o link esta acessivel
  wget -q ${link} > /dev/null 2>&1
  if [ $? -ne 0 ]
  then
    echo "Nao foi possivel obter a versao de ${link}"
    exit 1
  fi

  # Acessa a pagina do projeto Wine e obtem a versao mais recente
  linha_versao=`wget -q -O - "${link}" | grep ": Wine " | grep " Released" | head -n1`
  linha_versao=`echo $linha_versao | cut -d">" -f2 | cut -d"<" -f1`

  # Separa os campos
  mes=`echo $linha_versao | cut -d" " -f1`
  RetornaNumeroMes $mes
  mes=$numero_mes

  dia=`echo $linha_versao | cut -d" " -f2 | sed "s/\,//g"`
  dia=`printf "%02d" $dia`

  ano=`echo $linha_versao | cut -d" " -f3 | sed "s/\://g"`

  versao=`echo $linha_versao | cut -d":" -f2 | cut -c6-13 | sed "s/ //g"`
}


#####################################################################################
# [Logica principal (se fosse C, isso seria um main...)]
#####################################################################################

fObtemUltimaVersaoWine

fCalculaDias ${ano}${mes}${dia}

echo "A versao mais recente do Wine e: ${versao}"
echo "Release: $dia/$mes/$ano [${diferenca} dia(s) atras]"

Scripts recomendados

Música com a real beleza da matemática

Jukebox com dialog

Instalação do DBDesigner4

Extrair arquivos rar

Script para montagem/desmontagem de unidades do tipo pendrive.


  

Comentários
[1] Comentário enviado por chimico em 01/02/2008 - 10:50h

Cara, gostei muito do seu script, sobretudo da parte que verifica a versão, tô querendo já algum tempo implementar esta função num script meu que baixa o firefox original de br.mozdev.org e transforma em um deb igualzinho ao iceweasel, mas não sabia por onde começar, então verificava manualmente a versão para alterar no script. Valeu


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts