Команды daysper

Последняя правка 3791 день назад
Материал из Daysper manual
Перейти к навигации Перейти к поиску

Команды, работающие с задачей[править | править код]

Все команды в этом разделе работают с конкретной задачей.

При запуске любой из этих команд будет произведен рекурсивный поиск задач в подкаталогах текущего каталога (т.е. будут искаться каталоги, являющиеся каталогами с задачей), и для каждой найденной задачи будет выполнено требуемое действие. В частности, если текущий каталог является каталогом с задачей, то будет обработана только эта задача.

Точнее (см. Идея: трансляция в скрипты):

  • для команд build, clean и check:
    1. в каждом найденном каталоге с задачей будет создан скрипт для выполнения требуемого действия,
    2. в каждом каталоге, не являющемся каталогом с задачей, но в поддереве каталогов которого есть каталоги с задачами, будет создан скрипт для запуска скриптов этих задач,
    3. после чего, если предыдущие шаги выполнены успешно, то будет запущен скрипт, созданный в текущем каталоге.
  • Для команды 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 — имя файла со скриптом.