Шаблон-заготовка для консольного приложения на OneScript
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 2 commits behind EvilBeaver:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.vscode
features
src
tasks
.gitignore
Jenkinsfile
LICENSE
README.md
packagedef

README.md

Шаблон-заготовка для консольного приложения на OneScript

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

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

Как это будет выглядеть

yourapp <command> [args..]

Все неинтересные вопросы по разбору строк и параметров, а также то, как их реализацию разместить в программе - помогает решить данный шаблон.

Как использовать

  • Клонируйте репозиторий.
  • Придумайте название продукта и запишите его в файле src/Модули/ПараметыПриложения.os в методе ИмяПродукта.
  • Придумайте, какие команды будет выполнять ваше приложение.
  • Для каждой команды скопируйте файл src/Классы/ШаблонКоманды.os-template и дайте ему уникальное говорящее имя, например КомандаСделатьВсемХорошо.os.
  • В файле src/Модули/ПараметрыПриложения.os в методе НастроитьКомандыПриложения заполните регистрацию ваших команд, как в примере внутри метода.
  • Отредактируйте файл packagedef, добавив необходимые зависимости.
  • Опубликуйте свое приложение на github.com, чтобы сделать мир лучше.

Структура приложения

  • Файл -- стартер приложения src/main.os. Изменения данного файла в большинстве случаев не потребуются.

  • Файл -- менеджер приложения src/МенеджерПриложения/os. Содержит в себе всю логику определения и выбора команд. Также в нём определён публичный интерфейс для получения свойств приложения и управления приложением:

    • Конструктор Инициализировать(). Инициализирует приложение, создаёт и заполняет все необходимые для работы приложения переменные и структуры. В качестве аргумента конструктор принимает модуль, в котором определены настройки приложения (см. ниже).
    • ДобавитьКоманду(). Осуществляет добавление команды в приложение. Добавление осуществляется в модуле настроек приложения (см. ниже).
    • ЗавершитьРаботуПриложения(). Штатно завершает приложение с нулевым кодом возврата по умолчанию.
    • ЗавершитьРаботуПриложенияСОшибкой(). Нештатно завершает приложение с кодом возврата ОшибкаВремениВыполнения по умолчанию и выводом ошибки в консоль.
    • ЗапуститьВыполнение(). Основной метод, осуществляющий запуск определение команды для запуска и запуск команды на выполнение.
    • ВыполнитьКоманду(). Позволяет программно выполнить любую команду приложения.
    • ПолучитьЛог(). Предоставляет доступ к логу приложения.
    • ВерсияПродукта(). Предоставляет доступ (только чтение) к номеру версии продукта.
    • ИмяПродукта(). Предоставляет доступ (только чтение) к имени продукта.
    • ВывестиСправкуПоКомандам(). Выводит в консоль справку по всем командам, зарегистрированным в приложении.
    • ВывестиСправкуПоКоманде. Выводит в консоль справку по указанной команду.
    • РезультатыКоманд(). Предоставляет доступ (только чтение) к именованному списку стандартных кодов возврата приложения.
  • Файл свойств приложения ПараметрыПриложения.os. Данный файл содержит информацию о приложении:

    • Имя продукта
    • Версия продукта
    • Команде по умолчанию

    А также содержит процедуры:

    • Форматирования логов
    • Подключения команд к приложению.
  • Файлы команд. Располагаются в каталоге src/Классы. Файл команд должен содержать два обязательных метода:

    • НастроитьКоманду, заполняющий принимаемые на вход командной строки параметры команды.
    • ВыполнитьКоманду, выполняющий логику работы команды.