Comments on: Réagir à un changement sur un fichier avec watchdog http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: hiramash http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163311 Tue, 14 Jul 2015 19:23:33 +0000 http://sametmax.com/?p=16607#comment-163311 @Sam

“Mais faut pas avoir trop de fichiers j’imagine sinon ça doit ramouiller.”

En fait c’est beaucoup plus lourd que ça.

J’ai utilisé “inotify” (c’était pas du Python à l’époque, mais j’attaquais en batch) et je l’ai recommandé à un collègue sysadmin. Enchanté, il l’a mis sur un serveur de gestion de mises à jour et un jour…le serveur s’est effondré car il y avait près de 2000 mises à jour simultanées.

Il aurait fallu que les routines déclenchées appellent la mise en tampon avec “at” ; bref, mettre en file d’attente les tâches déclenchées par des événements…

En outre, j’ai voulu m’en servir sur un serveur Samba, pour qu’il purge un répertoire sous certaines conditions, et me lance des “copy” et des “rsync” sous d’autres conditions. Las ! Inotify, ça ne MARCHE PAS sur un répertoire Windows…(normal, hein? Le système de fichiers Win ne fournissant pas les mêmes événements fichiers que sous Linux)

Donc, le concept de portabilité sous Python, c’est pas un gadget, c’est une vraie bouée de sauvetage face aux lacunes des OS les uns par rapport aux autres. Autre exemple pour le troll : “virtualenv” et “fakeroot”…

Vala, vala,

Long life to Python !

]]>
By: khamaileon http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163308 Tue, 14 Jul 2015 16:42:11 +0000 http://sametmax.com/?p=16607#comment-163308 @Sam: Ok c’est limpide pour moi maintenant. Au final je lance simplement mes tests à chaque modification de fichiers avec la commande watchmedo: watchmedo shell-command –patterns=”*.py” –recursive –command=’python manage.py test -v2′

Thx

]]>
By: Sam http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163307 Tue, 14 Jul 2015 14:52:51 +0000 http://sametmax.com/?p=16607#comment-163307 @khamaileon: question trop vague, on ne connait pas tes besoins, les points de comparaison avec les autres solutions, les contraintes…. Mais d’une manière générale, watchdog est juste là pour faire la moitié du boulot : lancer un truc au changement d’un fichier. Pour du build, il faut aussi la notion de tache (comme par exemple le fait pydoit).

]]>
By: khamaileon http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163306 Tue, 14 Jul 2015 14:34:55 +0000 http://sametmax.com/?p=16607#comment-163306 @Sam @LeMeteore

Je me suis mal exprimé. Par meilleure solution j’entendais facile à mettre en place, rapide d’exécution, solution éprouvée, documentée, …

@LeMeteore

On utiliser aussi Grunt et Gulp pour le front. Je cherche donc à trouver un équivalent Python.

Merci à @Sam pour le post

]]>
By: Sam http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163285 Mon, 13 Jul 2015 19:19:06 +0000 http://sametmax.com/?p=16607#comment-163285 Sympas ! Mais faut pas avoir trop de fichiers j’imagine sinon ça doit ramouiller.

]]>
By: Kikoololmdr http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163284 Mon, 13 Jul 2015 18:58:21 +0000 http://sametmax.com/?p=16607#comment-163284 Et un petit code en exemple pour avoir la notification des modifications de fichiers entre le moment où le programme s’est arrêté et où il a été redémarré :

https://gist.github.com/serge-kilimoff/8163233

Je l’ai écrit il y a un moment, je ne sais pas si ça fonctionne toujours, c’est plutôt considérer comme une base de code pour un truc plus poussé (de mémoire, je l’avais fais pour reconstruire automatiquement du css avec clevercss).

]]>
By: Sam http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163281 Mon, 13 Jul 2015 16:52:12 +0000 http://sametmax.com/?p=16607#comment-163281 @ThomasG77: c’est pareil. La doc de watchdog est un peu mieux, et comme tu le dis, watchdog est crossplateform. Sinon c’est kiffkiff.

]]>
By: LeMeteore http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163276 Mon, 13 Jul 2015 14:56:35 +0000 http://sametmax.com/?p=16607#comment-163276 @khamaileon

il n’existe pas de meilleure solution.

Je gere ce genre de tache avec incron: http://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/

Mon pote front-dev lui prefere gruntJs

Et certains utilisent des git hook pre-commits.

Merci encore pr le post, je ne connaissais pas watchdog.

]]>
By: ThomasG77 http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163275 Mon, 13 Jul 2015 14:42:49 +0000 http://sametmax.com/?p=16607#comment-163275 Si “Linux only”, quel est l’intérêt par rapport à son cousin Pyinotify https://github.com/seb-m/pyinotify?

Je connais Watchdog comme Pyinotify mais j’ai plutôt utilisé Pyinotify et je vois pas trop la différence sauf l’aspect multi-plateforme.

]]>
By: Sam http://sametmax.com/reagir-a-un-changement-sur-un-fichier-avec-watchdog/#comment-163274 Mon, 13 Jul 2015 12:36:16 +0000 http://sametmax.com/?p=16607#comment-163274 @khamaileon : je n’ai aucune idée de ce que signifie “meilleure solution”.

@Paradox : il n’y a rien à faire, la méthode est appelée automatiquement à chaque fois qu’un fichier est modifié. event.src_path contient le chemin du fichier modifié, tu fais ensuite ce que bon te semble avec.

]]>