Dato 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.
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. 🙂
Grazie 😀 mo’ lo testo vediamo danni che riesco a fare