Uno script per creare DEB

Pacchetto DebDato che spesso mi capita di dover programmare in Python e dato che non ho voglia di stare ogni volta che modifico un sorgente a ricrearmi tutto il .deb. Ho deciso di automatizzare la cosa con uno script. E’ uno script grezzo e perfezionabile, ma fa magnificamente il suo lavoro. Lo pubblico sperando che possa essere utile a qualcuno, ovviamente una volta che l’avete modificato per le vostre esigenze.

#! /bin/bash

version="0.2.0-1"

mkdir nomeprogramma_${version}_all
cd nomeprogramma_${version}_all
mkdir DEBIAN
mkdir usr
cd DEBIAN

# GENERATE CONTROL FILE
echo "Package: nomeprogramma" >> control
echo "Version: ${version}" >> control
echo "Section: video" >> control
echo "Priority: optional" >> control
echo "Architecture: all" >> control
echo "Depends: python, python-qt4" >> control
echo "Installed-Size: 309" >> control
echo "Maintainer: Nome Cognome <email@gmail.com&>" >> control
echo "Description: Bla bla bla" >> control

cd ..
cd usr
mkdir bin
mkdir share
cd bin

# GENERATE START FILE
echo "#!/bin/bash" >> nomeprogramma
echo "cd /usr/share/nomeprogramma" >> nomeprogramma
echo "env python -O main.py" >> nomeprogramma

chmod +x nomeprogramma

cd ..
cd share

mkdir applications
mkdir doc
mkdir nomeprogramma

# GENERATE DESKTOP FILE
cd applications
echo "[Desktop Entry]" >> nomeprogramma.desktop
echo "Version=${version}" >> nomeprogramma.desktop
echo "Name=Nome Programma" >> nomeprogramma.desktop
echo "Comment=Bla bla" >> nomeprogramma.desktop
echo "Type=Application" >> nomeprogramma.desktop
echo "Comment[it_IT]=Bla bla" >> nomeprogramma.desktop
echo "Exec=/usr/bin/nomeprogramma" >> nomeprogramma.desktop
echo "Icon=/usr/share/prova/img/nomeprogramma.png" >> nomeprogramma.desktop
echo "Terminal=false" >> nomeprogramma.desktop
echo "Categories=Multimedia;QT;" >> nomeprogramma.desktop
cd ..

cd ..
cd ..
cd ..

# COPY COMPILED FILE
cp -r -v ./src/* ./nomeprogramma_${version}_all/usr/share/nomeprogramma/ #Questa parte copia tutti i sorgenti del vostro programma python.
cd ./nomeprogramma_${version}_all/usr/share/nomeprogramma/

# CLEAN NOT USEFUL FILES
#Cancella i file non necessari all'esecuzione.
find -name '*.ui' -exec rm -v {} \;
find -name '*.*~' -exec rm -v {} \;
rm Makefile

cd ..
cd ..
cd ..
cd ..

#  MAKE DEB
dpkg -b ./nomeprogramma_${version}_all

# REMOVE TEMP DIRECTORY
rm -r ./nomeprogramma_${version}_all

Ovviamente in nomeprogramma dovete inserire il nome del vostro programma. Ancora meglio sarebbe metterlo in una variabile e usare una variabile, così potete riutilizzarlo per più programmi. A me non andava di farlo e ve lo beccate così com’è 😀

Inoltre la copia dei file dovete rivederla perché io assumo che nella cartella in cui c’è questo script esista una cartella src che contiene i sorgenti (in pratica assumo che usiate una convenzione che uso io xD). Ma è solo una riga, si cambia facilmente.

Spero vi sia utile. 🙂

One comment on “Uno script per creare DEB