Skip to content

Instantly share code, notes, and snippets.

@carloscarvallo
Created December 15, 2017 20:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save carloscarvallo/46ff18f394426694541ee0ee44703be1 to your computer and use it in GitHub Desktop.
Save carloscarvallo/46ff18f394426694541ee0ee44703be1 to your computer and use it in GitHub Desktop.
initially was for the tekopuru framework installation on debian/ubuntu systems
#!/bin/bash
TEKOPURU_HOME=/opt/tekopuru
TEKOPURU_DEB=/var/packages
TEKOPURU_TMP=/tmp/tekopuru-packages
if [ $# -ne 1 ]; then
echo "Uso: $0 <nombre-del-paquete>"
echo "Ejemplo: $0 tekopuru-eclipse-3.5"
echo
exit 1
fi
paquete="$( echo $1 | tr -d '/' )"
if [ ! -d $1 ]; then
echo "Paquete inexistente! Nome: $paquete"
echo
exit 2
fi
echo "Generando paquete $paquete..."
sources="./$paquete"
control="$sources/DEBIAN/control"
tempctl="/tmp/$$.control"
arch=$( awk '/^Architecture:/{print$2}' $control )
version=$( awk '/^Version/{print$2}' $control )
release=$( echo $version | sed 's/^.*\-\([0-9]\+\)$/\1/' )
# incrementar contador da release
if [ "$release" == "" ]; then
release=0
else
let release++
fi
nextver=$( echo -n $version | sed 's/^\(.*\)\-\([0-9]\+\)$/\1/'; echo "-$release" )
echo "Version actual: $version, Proxima versión: $nextver"
# calcular espaço em disco ocupado pelo pacote
instsize=`du -sL $sources | cut -f1`
# atualizar versão e tamanho no DEBIAN/control
sed -e "s/^Version: .*$/Version: $nextver/" \
-e "s/^Installed-Size: .*$/Installed-Size: $instsize/" \
$control > $tempctl
mv $tempctl $control
# copiar arquivos para diretório temporário
destin="${TEKOPURU_TMP}/${paquete}"
rm -rf $destin
mkdir -p $destin
cp -RL ${sources}/* $destin
# executar instruções de preparação
prepare="$destin/DEBIAN/prepare"
if [ -f $prepare ]; then
echo "Ejecutando preparación final..."
(cd $destin; bash $prepare)
rm -f $prepare
fi
# gerar pacote Debian
packfile="${paquete}_${nextver}_${arch}.deb"
dpkg-deb --build $destin ${TEKOPURU_DEB}/$packfile
# excluir arquivos temporários
rm -rf $destin
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment