2010-12-22 4 views
1

J'ai besoin de regarder pour un répertoire spécifique des changements dans osx, afin de voir si un fichier a été téléchargé, quand le fichier est dans le répertoire que je veux exécuter un script très basique (simplement 'compiler'. fichiers tex en utilisant pdflatex), ce que je l'ai fait jusqu'à présent:pdflatex et shell script

1) launchd pour surveiller mon répertoire, ceci est mon fichier test.plist

<plist version="1.0"> 
<dict> 
    <key>Label</key> 
<string>DirMonitor</string> 
<key>ProgramArguments</key> 
<array> 
    <string>/Users/Caffeina/Desktop/test.sh</string> 
    <string>path modified</string> 
</array> 
<key>QueueDirectories</key> 
<array> 
    <string>/Users/Caffeina/Desktop/test_dir/</string> 
</array> 
</dict> 
</plist> 

2) test.sh:

#!/bin/sh 
/usr/texbin/pdflatex -interaction=nonstopmode /Users/Caffeina/Desktop/test_dir/test.tex 

3) démarrage du moniteur:) pour tester si tout fonctionne correctement Je déplace un fichier dans le répertoire surveillé .... mais rien ne se passe. En regardant dans la sortie de la console, je peux rouge cette erreur:

logger[4155] This is pdfTeX, Version 3.1415926-1.40.11 (TeX Live 2010) 
logger[4155] restricted \write18 enabled. 
logger[4155] entering extended mode 
logger[4155] ! I can't write on file `test.log'. 
logger[4155] (Press Enter to retry, or Control-D to exit; default file extension is `.log') 
logger[4155] Please type another transcript file name 
logger[4155] ! Emergency stop 
logger[4155] ! ==> Fatal error occurred, no output PDF file produced! 
    com.apple.launchd.peruser.501[127] (logger[4155]) Exited with exit code: 1 

Je ne comprends pas pourquoi cette erreur, une idée?

Répondre

0

Il semble que vous n'ayez pas le droit d'écrire sur le fichier `test.log '.

+0

mais le fichier test.log n'existe pas pdflatex le crée au cours du processus – Elio

2

Le répertoire de travail n'est pas correct. Je suppose que le répertoire de travail est celui où se trouve launchd (vous pouvez le tester en ajoutant la commande 'pwd' au shell script). Vous devriez changer cela, ou vous pouvez modifier votre commande pdflatex:

/usr/texbin/pdflatex -interaction=nonstopmode -output-directory=/tmp /Users/Caffeina/Desktop/test_dir/test.tex 

j'ajouté -output-directory=/tmp, je suppose maintenant que vous avez lu et accès en écriture/tmp. Si cela fonctionne, le problème était avec les permissions d'écriture. Vous pourriez alors jouer autour pour obtenir la sortie correcte dir. Vous pouvez le faire soit par launchd, soit simplement 'cd myDir' dans un script shell.

+0

Vous avez raison, le répertoire de travail n'était pas correct.Maintenant, il fonctionne correctement. merci pour votre aide – Elio

+0

@Elio: pourriez-vous s'il vous plaît accepter la bonne réponse !? Merci. – Christian