5 mai 2005
Programmation Shell, PHP et mySql
Aujourd'hui j'ai commencé à me
documenter sur la programmation shell. J'en avais jamais fait avant.
Avant d'expliquer un peu la spécificité de la programmation shell voici
mon idée. Je souhaite creé un petit script qui dans un répertoire
contenant des fichiers ogg (par exemple la playlist d'une émission) que
j'ai sélectionné auparavant se charge automatiquement de :
1. Compresser tous les fichiers pour qu'ils soient diffusables (en ogg mono 128kbits par exemple)
2. Recueillir les tags de tous les fichiers musicaux dans un fichier texte (artiste, titre, album, date, etc.)
3. Creer un fichier .sql à partir du fichier précédent pour remplir la base de données mySql en ligne
4. Uploader le fichier .sql sur mon serveur web
5. L'executer
6. Envoyer les fichiers musicaux compressés sur mon serveur personnel
2. Recueillir les tags de tous les fichiers musicaux dans un fichier texte (artiste, titre, album, date, etc.)
3. Creer un fichier .sql à partir du fichier précédent pour remplir la base de données mySql en ligne
4. Uploader le fichier .sql sur mon serveur web
5. L'executer
6. Envoyer les fichiers musicaux compressés sur mon serveur personnel
Ca peut sembler compliqué. En fait
oui, ça l'est. Mais ça ne sera pas si compliqué que ça à faire puisque
quasimment tout le travail est fait. Moi comme un gamin face à un sac
de duplo je vais tout assembler. Le shell c'est ce qui permet sous un
environnement UNIX d'interpréter ce que l'on tape dans un terminal (Le
terminal c'est l'équivalent de la ligne de commance DOS, en très
gros...). Un script shell c'est tout simplement une suite de ces
commandes avec en plus quelques fonctions plus évoluées comme des
boucles, des tests, etc. Je peux donc manipuler des programmes déjà
existant, écrire dans des fichiers, tout ça de manière assez dynamique.
La syntaxe du shell est vraiment très simple pour celui qui a quelques
notions (vraiment de base...) de programmation. Chez Apple il y'a
Applescript qui permet aussi de faire ce genre de choses. Un exemple
tout con pour bien comprendre. Je crée un fichier titre.sh (.sh c'est
le suffixe des scripts shell) qui contient :
#! /bin/bash
# Je teste si le fichier audio.ogg existe
# Si il existe j'écris le tag dans le fichier tag.txt dans le même répertoire
# Sinon j'affiche "Le fichier audio.ogg n'existe pas"
if test -f audio.ogg
then
ogginfo audio.ogg>tag.txt
else
echo 'Le fichier audio.ogg n'existe pas'
fi
Bon pour ceux qui n'ont jamais rien programmé c'est peut-être du charabia mais le but de ce blog n'est pas d'apprendre à programmer en shell. Il est là pour dire que pour ce problème j'ai trouvé la solution dans la programmation Shell. Pour les autres ça doit les faire sourir. Mais l'idée est là, je devrais pouvoir faire à peu près tout ce que je souhaite. J'ai même pensé faire un petit script qui vérifie régulièrement mes mails et qui si trouve un mail avec un titre bien précis lance mon serveur peercast. Histoire de se la péter et de démarrer sa radio avec son téléphone portable. J'ai aussi regardé comment fonctionnait Peercast. Je devrais facilement pouvoir programmer un bout de code qui chope le nom du morceau diffusé et l'envoie sur le serveur web. Enfin voilà, je découvre tout ça, maintenant il faut passer aux choses sérieuses, mais je suis obligé d'attendre mon serveur peercast pour commencer...
EDIT : Après quelques recherches, d'autres langages pourraient m'aider pour ce que je veux faire, par exemple Python ou Perl (ce dernier étant plus proche de Shell apparemment). Il ont l'avantage d'être sans doute beaucoup plus performants, d'être adaptables à toutes les architectures, de possèder plus de fonctions de base, d'adorer internet... A voir.
#! /bin/bash
# Je teste si le fichier audio.ogg existe
# Si il existe j'écris le tag dans le fichier tag.txt dans le même répertoire
# Sinon j'affiche "Le fichier audio.ogg n'existe pas"
if test -f audio.ogg
then
ogginfo audio.ogg>tag.txt
else
echo 'Le fichier audio.ogg n'existe pas'
fi
Bon pour ceux qui n'ont jamais rien programmé c'est peut-être du charabia mais le but de ce blog n'est pas d'apprendre à programmer en shell. Il est là pour dire que pour ce problème j'ai trouvé la solution dans la programmation Shell. Pour les autres ça doit les faire sourir. Mais l'idée est là, je devrais pouvoir faire à peu près tout ce que je souhaite. J'ai même pensé faire un petit script qui vérifie régulièrement mes mails et qui si trouve un mail avec un titre bien précis lance mon serveur peercast. Histoire de se la péter et de démarrer sa radio avec son téléphone portable. J'ai aussi regardé comment fonctionnait Peercast. Je devrais facilement pouvoir programmer un bout de code qui chope le nom du morceau diffusé et l'envoie sur le serveur web. Enfin voilà, je découvre tout ça, maintenant il faut passer aux choses sérieuses, mais je suis obligé d'attendre mon serveur peercast pour commencer...
EDIT : Après quelques recherches, d'autres langages pourraient m'aider pour ce que je veux faire, par exemple Python ou Perl (ce dernier étant plus proche de Shell apparemment). Il ont l'avantage d'être sans doute beaucoup plus performants, d'être adaptables à toutes les architectures, de possèder plus de fonctions de base, d'adorer internet... A voir.
Ambiance sonore : Good Friday - Cocorosie
Encore et toujours. J'adore vraiment
ce groupe. "I fell in love with you, juste because the sky turn from
grey to blue"... C'est pas mignon tout plein ça ? Oui Cocorosie c'est
mignon. Et j'ai appris aujourd'hui la sortie du second album en
septembre 2005. Miam.
Publicité
Publicité
Commentaires
F
D
L
L
L