#!/bin/bash OPTIONS="-us -uc -sa -rfakeroot " BINARY="svn-buildpackage" INSTALL="" PASSWORD="" parse_options(){ echo "parse options" } usage(){ echo "USAGE:" echo "at-builder -h ---> Muestra esta ayuda" echo "at-builder -e ---> No tiene en cuenta cambios en subversion para hacer paquete" echo "at-builder -i ---> Instala todos los debs construidos en el sistema" echo "at-builder -u ---> Se usa at-pool para actualizar el pool con los debs construidos" echo "at-builder -n usuario@maquina ---> Instala los debs en la maquina remota" echo "at-builder -N usuario@maquina ---> Actualiza (Aptitude) la maquina remota" echo "at-builder -D ---> Hace un Dummy Upgrade en el Changelog y construye sin subversion " echo "" echo "Las opciones son acumulables: haria un Dummy Upgrade, no tendria en cuenta el subersion" echo "construiria, instalaria en local , lo pondria en el pool local y además haría un Update en la máquina" exit 0 } make_dummy_upgrade(){ echo "Fixing Version" dch -i "DEBUG" OPTIONS=$OPTIONS" --svn-ignore" return 0 } #MAIN TMPDIR=$(mktemp /tmp/subUpBuild.XXXXXXXXX) while getopts "h D e i p: n: u N: b:" o ; do case $o in h ) usage;; D ) make_dummy_upgrade;; e ) OPTIONS=$OPTIONS" --svn-ignore";; i ) INSTALL="YES";; n ) NETINSTALL=$OPTARG;; N ) NETUPDATE=$OPTARG;; p ) PASSWORD=$OPTARG;; u ) URZA="YES";; b ) BINARY="$OPTARG";; * ) echo "No option...building artifact";; esac done $BINARY $OPTIONS 2>&1 | tee $TMPDIR tail -n 200 $TMPDIR | sed -ne "/Binary/,/lintian/p"| grep "^[[:blank:]]*\/" | xclip -i PACKAGES=$(tail -n 200 $TMPDIR | sed -ne "/Binary/,/lintian/p"| grep "^[[:blank:]]*\/") if [ "$INSTALL" == "YES" ]; then echo "PACKAGES ES: $PACKAGES" test -f $PACKAGES && sudo dpkg -i $PACKAGES || echo "No ha podido ser" fi if [ -n "$NETINSTALL" ]; then BASENAMES="" for p in $PACKAGES ; do BASENAMES=$BASENAMES" /tmp/"$(basename $p) done echo "#/bin/bash" > /tmp/serraonline echo "sudo dpkg -i $BASENAMES" >> /tmp/serraonline chmod +x /tmp/serraonline echo -e "$PASSWORD" | scp $PACKAGES /tmp/serraonline $NETINSTALL:/tmp/ echo -e "$PASSWORD" |ssh $NETINSTALL 'bash /tmp/serraonline' #ssh $NETINSTALL \"cd /tmp/ ; sudo dpkg -i $BASENAMES\" fi if [ "$URZA" == "YES" ]; then sudo at-pool $PACKAGES fi if [ -n "$NETUPDATE" ]; then ssh $NETUPDATE 'sudo aptitude update && sudo aptitude -y dist-upgrade' fi rm $TMPDIR exit 0