Wenn Sie eine Aufgabe jedes Mal ausführen möchten, wenn Sie eine Datei mit einem Editor speichern, können Sie Guard for Ruby und Grunt verwenden, wenn Sie JS schreiben, aber diese Art von Tool, wenn Sie Python-Code schreiben Ich möchte auch etwas von Python verwenden. Hier wird watchdog verwendet.
Eingeführt
pip install watchdog
Anschließend können Sie den Befehl watchmedo des Befehlszeilenprogramms verwenden. Wenn Sie Dateisystemereignisse überwachen und bestimmte Befehle ausführen möchten, sieht dies folgendermaßen aus
watchmedo shell-command --patterns="*.py" --recursive --command='echo "${watch_src_path} is saved"' .
Wie Sie in der Readme-Datei von watchdog sehen können, kann ich bei Verwendung von vim auf dem MacOSX + -Terminal keine Dateisystemereignisse abrufen. Es ist eine gute Idee, die folgenden vim-Einstellungen zu ändern, damit Sie keine Auslagerungsdatei erstellen. Meine .vimrc ist wie folgt. Oder wenn Sie die Datei . *. Swp überwachen, funktioniert sie.
.vimrc
let OSTYPE = system('uname')
if OSTYPE == "Darwin\n"
set noswapfile
set nowritebackup
endif
Wenn Sie beispielsweise eine Testaufgabe in Ihrem Makefile haben und eine Überwachungsaufgabe hinzufügen möchten, die die Testaufgabe beim Speichern der Datei ausführt.
Makefile
watch:
#Unter dem App-Verzeichnis*.Überwachen Sie Ereignisse in py-Dateien und führen Sie make test aus
@echo Watch file changes and run test
watchmedo shell-command --interval=5 --patterns="*.py" -R -W -D --command='make test' app
test:
# (Beispiel)Führen Sie Django-Tests durch
python app/manage.py test;
Sie benötigen eine Doppelstart-Verhinderungsoption, um zu verhindern, dass mehrere Tests ausgeführt werden, wenn mehrere Dateisystemereignisse übersprungen werden.