[go: up one dir, main page]

Автоматизация создания новых портов

Требования

Создание автоматизированной системы сборки портов, принимающей у пользователя только определённую ниже информацию, после чего генерирующей все остальные данные, включая содержимое файлов port.toml и files.list, а также выполняющей тестирование корректности сборки порта в случае необходимости. Использует бибилиотеку libcport для выполнения необходимых действий по сборке и тестированию порта.

Запрашиваемые у пользователя данные:

  1. Запрашиваемые явно:
    • Базовая информация:
      • Имя программы (в планах заполнять это поле автоматически, имя программы брать из первого переданного mkport аргумента)
      • Версия порта (в планах заполнять это поле автоматически, версию программы брать из второго переданного mkport аргумента)
      • Краткое описание порта (не более 80 символов)
      • Приоритет порта (по умолчанию - user)
      • Категория порта (base, general, etc.)
    • Зависимости - принимается строка. Порты разделяются друг от друга запятой (,). Потом mkport делит строку на Vec<String>.
      • Необходимые
      • Рекомендуемые
      • Опциональные
    • Порт:
      • URL для скачивания порта
      • Имя скачанного файла (опционально)
    • Система сборки - используется для автоматического подставления нужных инструкций в функции prepare(), build(), install():
      • GNU Make
      • cmake
      • meson+ninja
      • cargo
      • other
    • Лицензия:
      • GPL-3.0
      • GPL-2.0
      • MIT
      • BSD-3-cls
      • Apache
      • LGPL-3.0
      • other (тогда в следующем окне у пользователя будет запрошен список лицензий, разделённых между собой запятыми (,). Программа сконвертирует это в Vec<String>).
  2. Содержащиеся в конфигурационном файле mkport:
    • Сборщик (maintainer) порта. Из конфига mkport берётся имя пользователя и его email.
  • ЯП: Rust, BASH
  • TUI: Cursive

Интерфейс

изображение

Минимальные требования: терминал 80х24 с поддержкой 16 цветов

Edited by cov_id111