Script :: SBoupgrade, atualize seu SlackBuild!


Olá pessoal, hoje veremos um script cuja finalizade é a atualização de SlackBuilds.

Escrito por Michales Michaloudes, a.k.a korgman, mantenedor do pacote qmmp para o SlackBuild, esse script simples lhe poupará muito trabalho na hora de atualizar qualquer Slackbuild, vejamos então.

Script

#!/bin/bash
# Script written by Michales Michaloudes (korgie@gmail.com) for the SlackBuild community.
# Feel free to modify it, or to take the project to higher levels 🙂
#
# Use it at your own risk.

# Variables
SOURCES=${SOURCES:-../../sources} # the folder with the sources. I suggest to use relative path.
TEMPLATEFOLDER=${TEMPLATEFOLDER:-~/SlackBuilds} # the folder with template.README template.SlackBuild template.info template.slack-desc

if [ "$2" = "" ]; then
	APPNAME=$(ls *.SlackBuild | gawk -F'.SlackBuild' ' { print $1 } ')
	echo "You didn't provided program name, guessed: $APPNAME."
else
	APPNAME=$2
fi
. $APPNAME.info

if [ "$1" = "" ]; then
	NEWVERSION=$(ls -t1 $APPNAME*.tar* | head -1 | sed -e 's/.*-//' -e 's/.tar.*//g')
	echo "You didn't provided version, guessed: $NEWVERSION."
else
	NEWVERSION=$1
fi

echo -e "\nUpdating with $APPNAME-$NEWVERSION."
SOURCE=$(ls $APPNAME-$NEWVERSION.tar.* | sort | head -1)

# Append the md5sum to the info file
if [ -e $SOURCE ]; then
	MD5SUMPRG=$(md5sum $SOURCE | cut -c 1-32)
else
	echo "ERROR, source absent?"
	exit 1
fi

#-----------------------------
#- SED bonanza               -
#-----------------------------
# All files like slack-desc, Slackbuild, info will have the correct application name to be compiled
# find $TEMPLATEFOLDER/$NEWVERSION/$APPNAME -name $APPNAME.\* -exec sed -i "s/appname/$APPNAME/g" {} \;
# APPURL=$(cat ${SOURCES}/${APPNAME}.link)

sed -i "s/VERSION:-.*}/VERSION:-$NEWVERSION}/g" ./$APPNAME.SlackBuild
sed -i "s/VERSION=\".*\"/VERSION=\"$NEWVERSION\"/g" ./$APPNAME.info
sed -i "s/MD5SUM=\".*\"/MD5SUM=\"${MD5SUMPRG}\"/g" ./$APPNAME.info
sed -i "s,$VERSION,$NEWVERSION,g" ./$APPNAME.info

echo 
echo "Check for yourself for errors."
grep $APPNAME $APPNAME.info
grep VERSION $APPNAME.SlackBuild

# vi $APPNAME.info

Aqui o salvei na minha pasta $HOME/bin mantendo o mesmo nome: SBoupgrade.cvl, salve-o onde achar melhor.

Em uso

Tomemos como exemplo o pacote DeadBeef que tratei aqui numa outra dica, então copiamos a pasta do mesmo contida em /var/lib/sbopkg/SBo/14.1/audio/deadbeef/:

$ cp -a /var/lib/sbopkg/SBo/14.1/audio/deadbeef .

Entramos no diretório:

$ cd deadbeef

Baixamos o source do programa:

$ wget -nv http://downloads.sourceforge.net/deadbeef/deadbeef-0.6.2.tar.bz2

Com a execução do comando abaixo “SBoupgrade.cvl”, todas as informações necessárias para o empacotamento serão obtidas através do novo source do programa (versão, md5, etc), as modificações serão realizadas nos arquivos .info e .SlackBuild:

$ SBoupgrade.cvl

Feito isto basta executar seu SlackBuild e aguardar o término do processo:

$ sudo sh deadbeef.SlackBuild

E instalar o novo pacote:

$ sudo installpkg /tmp/deadbeef-0.6.2-*_SBo.tgz
configurações iniciais, download dos sources e execução do script...
configurações iniciais, download dos sources e execução do script…
execução do SlackBuild
execução do SlackBuild
instalação do novo pacote
instalação do novo pacote

Agradecimento

Aqui vai o meu agradecimento ao autor do script, não só pelo envio do mesmo, mas também pela atenção dada aos emails que lhe enviei, respeitando inclusive as diferenças linguísticas que somente o gt é capaz de dirimir (acho?) rsrs.

t+

Anúncios
Script :: SBoupgrade, atualize seu SlackBuild!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s