amigo m'a suggéré l'autre jour de travailler des scripts pour csvfix pour
rendre ce programme plus convivial.
Alors voilà, je n'ai pas utilisé csvfix, mais j'ai quand même mis un orteil
dans l'eau...
Voici comment on peut interfacer un simple script avec gnumeric pour
obtenir automatiquement un calcul utile.
En guise d'exemple, j'ai voulu faire le calcul approximatif d'un sfs de
remastérisation. À quoi bon, me direz-vous, "le 'remasterpup' dans
/usr/sbin fait déjà ce travail." Mais justement, j'avais besoin d'un point de
comparaison pour valider.
Je crois que la méthodologie est applicable à d'autres cas, mais il faut
être extrêmement précis, faire bien attention à "échapper" les guillemets
anglais quand c'est nécessaire -- car du point de vue de gnumeric, c'est
un fichier *.csv qu'il charge --, et remettre son ouvrage "cent fois sur le
métier", avec à l'écran une fenêtre d'éditeur de texte à côté d'un fenêtre
gnumeric à côté de l'icone du script.
À lire le code, vous verrez qu'on peut mettre non seulement des chiffres
mais aussi des commandes de calcul dans une ligne de script.
Puissant, ça...
Mais la précision paye de façon étonnante : on n'a pas besoin de
sauvegarder le fichier gnumeric résultant. Ce serait d'ailleurs fastidieux
puisque la taille des répertoires sondés change souvent, on aurait une
multitude de petits fichiers *.gnumeric créés à chaque fois qu'on ajoute
ou retire un programme ou une biblio, et qu'on veut vérifier la taille
possible de son nouvel iso ou sfs.
Alors que, avec ce système, il suffit de relancer le script pour avoir la
nouvelle taille. Essayez et vous verrez.
À la bonne vôtre.
musher0
~~~~~~~~~~~~~~~~
Script :
Code: Select all
#!/bin/sh
# ~/my-applications/bin/taille-sfs.sh
# Objectif : estimer la taille d'une remastérisation d'un Puppy.
# (c) musher0, 3 avril 2013. Gratuit pour les utilisateurs du
# forum Puppy|Toutou seulement. Tous autres droits réservés.
# Dépendances : bash, gnumeric
####
echo "Calcul approximatif de la taille d'un nouvel iso de ce Puppy-ci" > /tmp/taille-sfs.csv
echo "Lieu,Taille,En Mo,REM" >> /tmp/taille-sfs.csv
A="`du -sk /bin | cut -f 1`"
echo "/bin,$A,=B3/1000" >> /tmp/taille-sfs.csv
B="`du -sk /lib | cut -f 1`"
echo "/lib,$B,=B4/1000" >> /tmp/taille-sfs.csv
C="`du -sk /opt | cut -f 1`"
echo "/opt,$C,=B5/1000" >> /tmp/taille-sfs.csv
D="`du -sk /sbin | cut -f 1`"
echo "/sbin,$D,=B6/1000" >> /tmp/taille-sfs.csv
E="`du -sk /usr | cut -f 1`"
echo "/usr,$E,=B7/1000" >> /tmp/taille-sfs.csv
#
echo ",," >> /tmp/taille-sfs.csv
#
F="`du -sk /etc | cut -f 1`"
echo "/etc,$F,=B9/1000" >> /tmp/taille-sfs.csv
G="`du -sk /root | cut -f 1`"
echo "/root,$G,=B10/1000" >> /tmp/taille-sfs.csv
echo "linuz et initrd,25000,=B11/1000" >> /tmp/taille-sfs.csv
#
echo ",-----------,-----------" >> /tmp/taille-sfs.csv
echo ",=sum(B3:B11),=B13/1000" >> /tmp/taille-sfs.csv
echo ",,\"0,41\",% approx. de la compression squash" >> /tmp/taille-sfs.csv
echo ",,-----------" >> /tmp/taille-sfs.csv
echo ",,=C13*C14,Poids sur disque à prévoir" >> /tmp/taille-sfs.csv
gnumeric /tmp/taille-sfs.csv
rm -f /tmp/taille-sfs.csv
### 30 ###
Résultat sous forme d'image :