# Обзор ## Назначение Командная утилита предназначена для автоматизации работы разработчика. `Gsf-cli` позволяет: - Подготовить прикладной проект к работе - Обновить зависимости необходимые для работы проекта ## Требования Для работы утилиты требуется - `python` начиная с версии `3.9` - `sbt` начиная с версии `1.8.2` - `git` - ### Необходимые библиотеки: Прописаны в `requirements.txt`: - `bcrypt==4.0.1` - `certifi==2023.7.22` - `cffi==1.15.1` - `charset-normalizer==3.2.0` - `cryptography==41.0.3` - `debugpy` - `decorator==5.1.1` - `fabric==3.1.0` - `idna==3.4` - `invoke==2.2.0` - `Jinja2==3.1.2` - `MarkupSafe==2.1.3` - `paramiko==3.3.1` - `prompt-toolkit==3.0.39` - `psutil==5.9.5` - `pycparser==2.21` - `PyNaCl==1.5.0` - `PyYAML==6.0.1` - `requests==2.31.0` - `ruamel.yaml==0.17.32` - `ruamel.yaml.clib==0.2.7` - `tqdm==4.65.0` - `urllib3==2.0.4` - `wcwidth==0.2.6` ### Доп пакет: - `python3-venv` ## Установка 1. Скачайте дистрибутив `gsf-cli` ``` curl https://repo.global-system.ru/artifactory/common/ru/bitec/gsf-cli-windows/SNAPSHOT/gsf-cli-windows-SNAPSHOT.zip --output gsf-cli.zip ``` Для ручного обновления утилиты можно в каталоге с:\programs\ сделать cmd файл следующего содержания (пути подправить по необходимости) ``` curl https://repo.global-system.ru/artifactory/common/ru/bitec/gsf-cli-windows/SNAPSHOT/gsf-cli-windows-SNAPSHOT.zip --output gsf-cli.zip "C:\Program Files\7-Zip\7z.exe" x gsf-cli.zip -aoa -ogsf-cli pause ``` 2. Распакуйте архив \ Рекомендуемый путь для установки: `C:\programs\gsf-cli` 3. Установите jdk \ Установленные jdk будут искаться по адресу `C:\Program Files\Java` 4. Установите Intellij Idea\ Установленные среды будут искаться по адресу `C:\Program Files\JetBrains` ```{attention} В IDEA должен быть установлен плагин Scala. Подробности корректной установки смотрите в руководстве прикладного разработчика GlobalERP Framework. ``` 5. Установите [sbt](https://www.scala-sbt.org/download.html) версии 1.8.2 или выше ```{attention} Sbt должен быть установлен по адресу `c:\programs\sbt\`. ``` 6. При необходимости установите `SVN` клиент \ Для авто поиска пути доступа к `svn.exe` должен быть добавлен в системную переменную `PATH`. Установщик `TortoiseSVN` может делать это автоматически. 7. При необходимости установите `GIT` клиент ## Добавление проекта в рабочее пространство ```{attention} Если перед началом работы открыта среда разработки в общем окружении ее необходимо закрыть. ``` Для добавления проекта запустите скрипт `gsf-cli\links\add_project.cmd` и следуйте инструкциям мастера. Мастер запросит необходимые параметры, и проведет подготовку проекта к работе. ```{attention} Внимательно читайте запросы мастера. ``` ```{attention} При возникновении ошибки загрузки модулей из GitLab fatal: Unencrypted HTTP is not supported for GitHub. Ensure the repository remote URL is using HTTPS. следует выполнить команду `git config --global credential.extgit.global-system.ru.provider generic` и повторить добавление проекта. ``` Результат выполнения всех шагов мастера: - `gsf-cli\workspace\dists\{project_name}\Global3se\` \ Актуальный дистрибутив сервера приложения - `gsf-cli\workspace\sources\{project_name}\application\` \ Полностью готовый к работе проект с исходным кодом - `gsf-cli\workspace\links\{project_name}\` \ Ярлыки быстрого запуска - Добавленный проект становится активным ### Источник проекта Мастер конфигурации запрашивает источник определяющий откуда будет получен исходный код проекта. Формат источников: - SVN ``` https://{path}/application ``` - GIT ``` https://{path}.git ``` - LXC ``` lxc://{host} ``` `LXC` является контейнером в котором собирается проект в системе `CI` ## Работа с активным проектом Активный проект - это проект, который будет использоваться по умолчанию в случае если он не указан явно. Регулярные команды по работе с активным проектом смотрите в `gsf-cli\links\` ## Обновление активного проекта Для обновления зависимостей активного проекта запустите `gsf-cli\links\active_project_refresh.cmd` ## Конфигурирование сервера приложения Сервер приложения конфигурируется автоматически, для этого используется профиль конфигурации. Пример: ## Изменения настроек проекта - Удалите проект командой `gsf-cli\links\delete_project.cmd` \ При вопросе об удалении файлов ответьте `нет`, что бы не выкачивать данные повторно. - Добавьте проект с тем же именем и новыми параметрами. ```{note} Данный подход имеет смысл только в случае если не меняется источник проекта, не считая SSL. Это позволяет избежать повторной выгрузки и компиляции проекта. ``` ## Изменения глобальных настроек Для изменения глобальных `cli` запустите в консоли команду `gsf-cli\config.cmd configure` ## Хранения паролей Пароли сохраняются в зашифрованном виде по мастер ключу. Мастер ключ создается автоматически при первом добавлении проекта. Мастер добавления проекта запрашивает необходимые для дальнейшей работы пароли. Для изменения паролей смотри раздел `credential_manager`. ## Горячие клавиши - `вверх`, `вниз` \ Используется для выбора разных вариантов. - `вправо`\ Используется для автоматического завершения команд.