Menu

Valet

Максим
Attachments
valet_logo_ico_tr.png (84836 bytes)

Программа Valet

valet-logo
Valet - это программа, запускающая набор задач, описанных в файле, с расширением vlt и имеющим JSON формат. Путь к файлу передается, как аргумент командной строки (первым параметром). Кроме того, поддерживаются следующие параметры командной строки:

  • -p|--pause - после выполнения всех задач, командная строка не закроется, пока не будет нажата какая-нибудь клавиша
  • --version - выводит версию программы
  • --help - показывает список поддерживаемых параметров

Синтаксис vlt файла

vlt-файл содержит список задач, содержащихся в теге tasks

Каждая задача задается следующими полями:

  • code - определяет саму задачу. Ниже приводится список поддерживаемых задач
  • data - задает параметры. Содержимое этого поля зависит от конкретной задачи
  • needComplete - определяет, будет ли выполняться задача, если предыдущие задачи выполнены с ошибками. Поле принимает одно из следующих значений:
    • none - задача выполняется независимо от предыдущих. Данное значение принимается по умолчанию
    • previous - задача будет выполняться, если предыдущая задача завершена успешно
    • all - задача будет выполняться только, если все задачи до нее выполнены успешно
{
    "tasks": [
        {
            "code": "код задачи 1",
            "data": "данные задачи 1"
        },
        {
            "code": "код задачи 2",
            "needComplete": "previous",
            "data": "данные задачи 2"
        },
        ...
    ]
}

В настоящий момент поддерживаются следующие задачи:

  • printText - для данной задачи поле data является простым текстом, который будет выведен на экран
  • pause - останавливает выполнение и ждет, пока пользователь нажмет какую-нибудь клавишу. Для этой задачи поле data является необязательным. При желании, через него можно задать текст, который будет показан пользователю
  • backupFiles - задача создает резервные копии файлов. Ее конфигурация задается фрагментом JSON, записанным в поле data. Параметры конфигурации приводятся ниже.

Пример файла задач

{
    "tasks": [
        {
            "code": "printText",
            "data": "Начинаем выполнять задачи"
        },
        {
            "code": "backupFiles",
            "data": {
                "sourceFolder": "..",
                "backupFolder": "../../!backup_sample",
                "ignoreList": [".vs", "bin", "*.dll", "*.exe"]
            }
        },
        {
            "code": "printText",
            "data": "Задачи выполнены"
        }
    ]
}

Параметры задачи backupFiles

  • sourceFolder - путь к директории, которую нужно бэкапировать
  • backupFolder - путь к директории, в которой будет храниться бэкап. В windows поддерживается, как windows формат (..\\..\\!backup_sample), так и linux вариант разделителей (../../!backup_sample)
  • ignoreList - список шаблонов путей, которые будут исключены из процесса создания резервной копии
  • includeList - список шаблонов путей, которые будут включены в процесс создания резервной копии. Если этот параметр отсутствует, то будут включены все файлы, не попавшие в предыдущий список (ignoreList)
  • compareByContent - если этот параметр установить в true, то файлы, совпадающие по дате, будут дополнительно проверены по содержимому. Файлы с разной датой считаются разными автоматически, без дополнительной проверки

Параметры ignoreList и includeList поддерживают подстановки:

  • ? - любой символ (ровно один)
  • * - произвольное количество любых символов (пустая последовательность тоже подходит)

Каждый шаблон из этих списков применяется к каждому элементу относительного пути.