Como seria um mecanismo de atualização no bash?

0

Eu tenho que atualizar uma compilação de scripts de vez em quando, mas eu não tenho idéia de como iniciar um script de verificação de versão no bash.

Eu tenho um arquivo de versão com 3 vars: version=0 , subversion=0 e subsubversion=1 e eu tenho um servidor web que serve as atualizações com rotinas de instalação como scripts bash. Em um diretório chamado atualizações:

/updates/
0.0.1
0.0.2
0.0.3

e um diretório chamado current, onde a versão atual é armazenada.

/current/
0.0.1
version

Agora, gostaria de ter um script que tenha $version , $subversion e $subsubversion e determine a atualização da atualização para download e execução. Depois que essa parte terminar, o script de atualização deverá incrementar um var para que baixe a próxima atualização, se ela estiver disponível. Vamos chamá-lo de nextversion .

Eu me concentrei em incrementar as três variáveis e a variável nextversion no script de atualização.

O que eu poderia fazer para incrementar as vars de árvore e um quarto var para o próximo nível mais alto. Como faço para lidar com isso se eu passar de 0.0.9 para 0.1.0 ou mesmo de 0.9.9 para 1.0.0 e assim por diante. Sem produzir muitas instruções if - else - elif . Eu infelizmente não sou bom em descobrir loops.

    
por Josh 10.08.2013 / 21:59

1 resposta

0

Isso quebra após 9.9.9

#!/bin/bash

version=0
subversion=0
subsubversion=1

updateVersion()
{
  if [ "$subsubversion" -lt 9 ]; then
    subsubversion=$((subsubversion+1));
  elif [ "$subsubversion" = 9 ] && [ "$subversion" -lt 9 ]; then
    subsubversion="0"; subversion=$((subversion+1));
  elif [ "$subsubversion" = 9 ] && [ "$subversion" = 9 ] && [ "$version" -lt 9 ]; then
    subsubversion="0"; subversion="0"; version=$((version+1));
  else
    echo "overflow"
  fi
}

printVersion()
{
  echo "${version}.${subversion}.${subsubversion}";
}

updateVersion
printVersion

Talvez prefira usar o git em vez disso?

    
por 10.08.2013 / 22:25