Forum Programmation.autre Problème avec inotifytools

Posté par (page perso) .
Tags : aucun
0
9
juil.
2008
Salut,

J'utilise inotifytools pour surveiller l'activité d'un répertoire que je souhaite "versionner". Du coup, je veux exclure tous les fichiers commençant par "." ou finissant par "~"

J'ai trouvé que l'option suivante marche bien pour exclure les fichiers commençant par "."

--exclude "^\./\."

Par contre, pas moyen d'exclure ceux finissant pas ~. J'ai essayé les 2 versions suivantes sans succès.

--exclude "[~]$"
--exclude "\~$"

J'ai posté ma question sur la ML de inotifytools mais c'est plutôt mort et limité à quelques messages par mois. Pourtant c'est un outils bien utile.

Pour ceux que ça intéresse, voila ce que j'en fais :

#!/bin/bash
inotifywait -m -r --exclude ^\./\.hg/.* -e close_write -e move -e create -e delete . 2>/dev/null |
while read FILE_PATH EVENT FILE_NAME
do
FILE_NAME="$FILE_PATH$FILE_NAME"
FILE_NAME=${FILE_NAME#./}

# git doesn't care about directories
if [ -d "$FILE_NAME" ]
then
continue
fi

case "$EVENT" in
*CLOSE_WRITE*)
ACTION=change
;;
*MOVED_TO*)
ACTION=create
;;
*MODIFY*)
ACTION=change
;;
*DELETE*)
ACTION=delete
;;
*MOVED_FROM*)
ACTION=delete
;;
*CREATE*)
ACTION=create
;;
*)
continue
;;
esac

case $ACTION in
create)
hg add "$FILE_NAME"
hg commit -m "$FILE_NAME created" -u "vfs"
;;
delete)
hg remove "$FILE_NAME"
hg commit -m "$FILE_NAME removed" -u "vfs"
;;
change)
hg add "$FILE_NAME"
hg commit -m "$FILE_NAME changed" -u "vfs"
;;
esac
done
  • # Guillemets

    Posté par (page perso) . Évalué à 3.

    Je ne vois pas les guillemets dans --exclude ^\./\.hg/.* aurais-tu oublié de le mettre autour de ~$ ?

    Dans ce cas ils sera remplacé automatiquement par ton home.
    • [^] # Re: Guillemets

      Posté par (page perso) . Évalué à 2.

      Il n'y a pas de guillemets dans le code que j'ai copié mais ils sont bien présents dans mon code. C'est une erreur de version de fichier.

      inotifywait -m -r --exclude "^\./\.git/.*" --exclude "~$" --exclude "^\./\." -e close_write -e move -e create -e delete . 2>/dev/null |


      Bref, ça marche pas :-(
  • # question bête

    Posté par . Évalué à 2.

    As-tu essayer sans le caractère d'échappement (i.e --exclude "~$") ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.