Может ли триггерный скрипт Perforce записать во временный файл?
Я хотел бы написать скрипт (триггер выполнения), который будет проверять содержимое файлов в списке изменений, прежде чем разрешить коммит. Однако мой скрипт обрабатывает XML с помощью Xsltproc, а затем проверяет с помощью Jing. Мне нужно сохранить прерывистый вывод во временный файл - это можно сделать при записи триггера изменения содержимого (на стороне сервера) для выполнения? Я прочитал множество документации, но никогда не видел упоминаний о создании временных файлов при запуске сценария триггера. Единственный другой обходной путь - перенаправить вывод из Xsltproc в Jing (и я тоже не знаю, как это сделать).
Любые советы от опытных пользователей XSLT или Perforce приветствуются. Благодарю.
Кстати, я использую Perl - но я не думаю, что это усложнит ситуацию.
1 ответ
Конечно, вы можете создавать временные файлы. Просто убедитесь, что у триггера есть разрешение на запись в том месте, куда вы хотите его поместить, что на диске сервера достаточно места, чтобы вы назвали файл таким образом, чтобы избежать коллизий (есть модуль Perl для создания имен временных файлов), и что вы потом очистите его (IIRC, подходящий модуль сделает это за вас).
Имейте в виду, однако, что если ваш триггер занимает много времени для обработки, он будет разрушительным, и, возможно, страшным для пользователей. В этом случае может быть лучше использовать демон для доступа к файлу из цикла фиксации и заставить пользователя исправить его, а не пытаться заблокировать его для начала. (Это работает, если плохие файлы можно терпеть столько, сколько нужно для их исправления. Это вызов, который вам нужно сделать.)