Команды daysper
Команды, работающие с задачей[править | править код]
Все команды в этом разделе работают с конкретной задачей.
При запуске любой из этих команд будет произведен рекурсивный поиск задач в подкаталогах текущего каталога (т.е. будут искаться каталоги, являющиеся каталогами с задачей), и для каждой найденной задачи будет выполнено требуемое действие. В частности, если текущий каталог является каталогом с задачей, то будет обработана только эта задача.
Точнее (см. Идея: трансляция в скрипты):
- для команд build, clean и check:
- в каждом найденном каталоге с задачей будет создан скрипт для выполнения требуемого действия,
- в каждом каталоге, не являющемся каталогом с задачей, но в поддереве каталогов которого есть каталоги с задачами, будет создан скрипт для запуска скриптов этих задач,
- после чего, если предыдущие шаги выполнены успешно, то будет запущен скрипт, созданный в текущем каталоге.
- Для команды export (которая подразумевает только создание скриптов, но не их запуск) будут выполнены только вышеперечисленные п. 1-2 и таким образом созданы скрипты для генерации и очистки каждой задачи, а также для единовременной генерации и очистки задач в каждом поддереве.
daysper build[править | править код]
daysper build [solId [testsets]]
Генерирует тесты по данной задаче.
- solId — идентификатор решения, которое надо использовать для генерации answer-файлов. По умолчанию используется решение, указанное в daysper.ini. Если в качестве solId указан символ +, то также используется решение, указанное в daysper.ini.
- testsets — список (разделенных пробелами) тестсетов. Тестсеты конкатенируются в порядке, в котором они указаны. По умолчанию используется значение, указанное в параметре testsets в daysper.ini (по умолчанию — all).
Примеры
daysper build
сгенерировать тесты с решением и тестсетом по умолчанию
daysper build foo
сгенерировать тесты с использованием решения foo
daysper build + all st
сгенерировать тесты из тестсетов all и st (именно в таком порядке) с использованием решения по умолчанию
daysper build + st all
сгенерировать тесты из тестсетов st и all (именно в таком порядке) с использованием решения по умолчанию
daysper build all st
сгенерировать тесты из тестсета st с использованием решения all
daysper clean[править | править код]
daysper clean [-f]
Очищает задачу, т.е. удаляет все генерируемые файлы.
- -f указывает, что надо также удалить все скрипты, созданные daysper (_generate.* и т.п.). Без указания этого параметра скрипты не удаляются; с указанием удаляются все скрипты, даже в промежуточных каталогах.
daysper check[править | править код]
daysper check [solId [tests]]
Проверяет решение.
- solId — идентификатор решения, которое надо проверить. По умолчанию используется решение, указанное в daysper.ini.
- tests — список тестов, на которых надо проверить решение, в формате 1,3,5-10,13.
daysper export[править | править код]
daysper export <output-format> [solId [testsets]]
Экспортирует задачу в указанном формате, т.е. создает скрипты генерации и очистки задачи, но не запускает их. Скрипт генерации создается такой же, как был бы создан командой build solId testsets, скрипт очистки — такой же, как был бы создан командой clean без параметра -f.
- output-format — формат, в котором должны быть созданы скрипты. Может быть cmd или sh.
- solId и testsets — имеют тот же смысл, что и в команде build.
daysper statement[править | править код]
daysper statement
Генерирует условия для данной задачи. А именно, в каталоге work cоздает и компилирует TeX-файл, подключающий условия задачи, в соответствии с настройками; результат компиляции (файлы *.ps и *.pdf) перемещает в каталог statement-ready.
При необходимости команда генерирует примеры в условия.
daysper examples[править | править код]
daysper examples
Создает примеры в условия текущей задачи.
Команды, работающие с контестом[править | править код]
Все команды в этом разделе работают с контестом. Все эти команды имеют вид
daysper contest <subcommand>
и не требуют никаких дополнительных параметров.
При работе с задачами команды корректно учитывают, какие файлы daysper.ini действуют в каждом из каталогов задач. Например, указание параметра solution в файле daysper.ini в каталоге контеста не повлияет на решение-по-умолчанию, используемое при генерации тестов к задачам (за исключением случая, когда каталог с контестом является родительским по отношению к каталогам с задачами — в полном соответствии с областью действия файлов daysper.ini ).
Большинство команд также, как и команды работы с задачами, сначала создают скрипт(ы), потом его (их) запускают.
daysper contest statements[править | править код]
daysper contest statements
Генерирует условия для контеста. А именно, в текущем cоздает и компилирует TeX-файл, подключающий условия задач, в соответствии с настройками; результат компиляции (файлы *.ps и *.pdf) остаются в текущем каталоге.
Предполагается, что в будущих версиях daysper эта команда, как и все команды работы с задачами, будет работать в подкаталогах (типа work и statements-ready).
Команда генерирует примеры в условиях всех задач контеста, которые это требуют.
daysper contest build[править | править код]
daysper contest build
Собирает все задачи контеста, т.е. выполняет команду build во всех задачах контеста.
daysper contest ejudge[править | править код]
daysper contest ejudge
Экспортирует контест для заливки под ejudge. А именно, создает каталог contest-ejudge/problems, в который кладет тесты и чекеры таким образом, как того требует ejudge (конкретно, в соответствии с альтернативной расладкой файлов ejudge).
Для заливки контеста под ejudge надо сначала создать средствами ejudge контест и создать в нем нужные задачи, после этого скопировать сгенерированный daysper'ом каталог в каталог контеста, после чего в ejudge выполнить команды типа check contest settings и т.п.
daysper contest clean[править | править код]
daysper contest clean
Удаляет генерируемые файлы из каталога контеста (но не каталогов задач).
Команды, работающие независимо от задачи[править | править код]
daysper settings[править | править код]
daysper settings
Выводит на экран текущие настройки daysper, с учетом всех файлов daysper.ini, которые действуют в текущем каталоге.
daysper translate[править | править код]
daysper translate <output-format> <filename>
Транслирует .d-скрипт в указанный формат. Обратите внимание, что .d-скрипт может быть завязан на существование определенных файлов (конкретно, команда compile требует наличия соответствующего исходника), поэтому .d-скрипты могут не быть stand-alone. Кроме того, результат трансляции может зависеть от настроек в daysper.ini.
- output-format — формат, в котором надо оттранслировать скрипт. Может быть cmd или sh.
- filename — имя файла со скриптом.