Пользовательские сценарии

Пользовательские сценарии#

Важно

Создание пользовательских сценариев требует знания команд оболочки Bash и формата JavaScript Object Notation (JSON). Если вы не знакомы с командной оболочкой Bash, хороший учебник можно найти по ссылке http://www.tldp.org/LDP/abs/html. Спецификация JSON доступна на сайте http://www.json.org.

Файлы сценария

Сценарий должен быть расположен в указанных ниже каталогах на машине, в которой установлен мастер создания загрузочных носителей:

  • В ОС Windows: %\ProgramData%\\Acronis\\MediaBuilder\\scripts\\

  • В ОС Linux: /var/lib/Acronis/MediaBuilder/scripts/

Сценарий должен состоять из по меньшей мере трех файлов:

  • <файл_сценария>.sh — файл со сценарием Bash. При создании сценария используйте только ограниченный набор команд оболочки, который вы можете найти по ссылке https://busybox.net/downloads/BusyBox.html. Также могут быть использованы следующие команды:

    • acrocmd — утилита командной строки для создания резервной копии и восстановления

    • product — команда, запускающая пользовательский интерфейс загрузочного носителя

    Этот файл и все другие включенные в сценарий дополнительные файлы (например, посредством использования команды с точкой) должны быть расположены в подпапке bin. В сценарии укажите дополнительные пути к файлам в виде /ConfigurationFiles/bin/<файл>.

  • autostart — файл для запуска <файл_сценария>.sh. Содержимое файла должно быть следующим:

    #!/bin/sh
    . /ConfigurationFiles/bin/variables.sh
    . /ConfigurationFiles/bin/<script_file>.sh
    . /ConfigurationFiles/bin/post_actions.sh
    
  • autostart.json — файл формата JSON, содержащий следующее:

    • Имя сценария и описания будут отображаться в мастере создания загрузочных носителей.

    • Имена переменных сценария должны быть настроены через мастер создания загрузочных носителей.

    • Параметры элементов управления, которые будут отображены в Bootable Media Builder для каждой переменной.

Структура autostart.json

Объект высшего уровня

Пара

Требуется

Описание

Имя

Тип значения

displayName

строка

Да

Имя сценария, которое будет отображаться в Bootable Media Builder.

description

строка

Нет

Описание сценария, которое будет отображаться в Bootable Media Builder.

timeout

число

Нет

Время ожидания (в секундах) для меню загрузки перед запуском сценария. Если пара не указана, время ожидания составит десять секунд.

variables

объект

Нет

Любые переменные для <файл_сценария>.sh, которые вы хотите сконфигурировать посредством Bootable Media Builder.

Значение должно быть указано в виде набора следующих пар: идентификатор строки переменной и объект переменной (см. в таблице ниже).

Объект переменной

Пара

Требуется

Описание

Имя

Тип значения

displayName

строка

Да

Имя переменной, использованное в <файл_сценария>.sh.

type

строка

Да

Тип элемента управления, отображенный в Bootable Media Builder. Этот элемент управления используется для конфигурирования значения переменной.

Список всех поддерживаемых типов см. в таблице ниже.

description

строка

Да

Метка элемента управления, отображаемая над элементом управления в Bootable Media Builder.

default

строка, если type является string, multiString, password или enum

число, если type является number, spinner или checkbox

Нет

Значение по умолчанию элемента управления. Если пара не указана, значением по умолчанию будет являться пустая строка или ноль, в зависимости от типа элемента управления.

Значением по умолчанию для флажка может быть 0 (флажок не установлен) или 1 (флажок установлен).

order

число

(не отрицательное)

Да

Порядок элементов управления в Bootable Media Builder. Чем выше значение, тем ниже расположен элемент управления относительно других элементов управления, указанных в autostart.json. Изначальным значение должен быть 0.

min

(только для spinner)

число

Нет

Минимальное значение элемента управления "счетчик" в поле счетчика. Если пара не указана, значением будет 0.

max

(только для spinner)

число

Нет

Максимальное значение элемента управления "счетчик" в поле счетчика. Если пара не указана, значением будет 100.

step

(только для spinner)

число

Нет

Значение шага элемента управления "счетчик" в поле счетчика. Если пара не указана, значением будет 1.

items

(только для enum)

массив строк

Да

Значения для раскрывающегося списка.

required

(для string, multiString, password и enum)

число

Нет

Указывает, может ли значение элемента управления быть пустым (0) или нет (1). Если пара не указана, значение элемента управления может быть пустым.

Тип элемента управления

Имя

Описание

string

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

multiString

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

password

Текстовое поле высотой в одну строку и без ограничений ширины, используемое для безопасного введения пароля.

number

Текстовое поле высотой в одну строку, с допустимым введением только числовых значений, используемое для введения или редактирования чисел.

spinner

Текстовое поле высотой в одну строку, с допустимым введением только числовых значений, используемое для введения или редактирования чисел, с элементом управления "счетчик". Также называется полем счетчика.

enum

Стандартный выпадающий список с фиксированным набором предварительно указанных значений.

checkbox

Поле флажка с двумя положениями — флажок установлен и флажок не установлен.

Указанный ниже пример autostart.json содержит все возможные типы элементов управления, которые могут быть использованы для конфигурирования переменных для файла <файл_сценария>.sh.

{
  "displayName": "Имя автоматически запускаемого сценария",
  "description": "Описание автоматически запускаемого сценария",
  "variables": {
    "var_string": {
      "displayName": "VAR_STRING",
      "type": "string",
      "order": 1,
      "description": "Элемент управления 'string':",
      "default": "Hello, world!"
    },
    "var_multistring": {
      "displayName": "VAR_MULTISTRING",
      "type": "multiString",
      "order": 2,
      "description": "Элемент управления 'multiString':",
      "default": "Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit."
    },
    "var_number": {
      "displayName": "VAR_NUMBER",
      "type": "number",
      "order": 3,
      "description": "Элемент управления 'number':",
      "default": 10
    },
    "var_spinner": {
      "displayName": "VAR_SPINNER",
      "type": "spinner",
      "order": 4,
      "description": "Элемент управления 'spinner':",
      "min": 1,
      "max": 10,
      "step": 1,
      "default": 5
    },
    "var_enum": {
      "displayName": "VAR_ENUM",
      "type": "enum",
      "order": 5,
      "description": "Элемент управления 'enum':",
      "items": [
        "первый",
        "второй",
        "третий"
      ],
      "default": "второй"
    },
    "var_password": {
      "displayName": "VAR_PASSWORD",
      "type": "password",
      "order": 6,
      "description": "Элемент управления 'password':",
      "default": "qwe"
    },
    "var_checkbox": {
      "displayName": "VAR_CHECKBOX",
      "type": "checkbox",
      "order": 7,
      "description": "Элемент управления 'checkbox'",
      "default": 1
    }
  }
}