# Обзор ## Назначение Командная утилита предназначена для автоматизации работы разработчика. `Gsf-cli` позволяет: - Подготовить прикладной проект к работе - Обновить зависимости необходимые для работы проекта ## Установка 1. Скачайте дистрибутив `gsf-cli` ```{attention} curl https://repo.global-system.ru/artifactory/common/ru/bitec/gsf-cli/SNAPSHOT/gsf-cli-SNAPSHOT.zip --output gsf-cli.zip Для ручного обновления утилиты можно в каталоге с:\programs\ сделать cmd файл следующего содержания (пути подправить по необходимости) curl https://repo.global-system.ru/artifactory/common/ru/bitec/gsf-cli/SNAPSHOT/gsf-cli-SNAPSHOT.zip --output gsf-cli.zip "C:\Program Files\7-Zip\7z.exe" x gsf-cli.zip -aoa -ogsf-cli pause ``` 2. Распакуйте архив \ Рекомендуемый путь для установки: `с:\programs\gsf-cli` 3. Установите jdk \ Установленные jdk будут искаться по адресу `c:\Program Files\Java` 4. Установите Intellij Idea\ Установленные среды будут искаться по адресу `C:\Program Files\JetBrains` ```{attention} В Idea должен быть установлен плагин scala. Подробности корректной установки смотрите в руководстве прикладного разработчика Global3 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} При возникновении ошибки загрузки модулей из 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} Данный подход имеет смысл только в случаи если не меняется источник проекта. Это позволяет избежать повторной выгрузки и компиляции проекта ``` ## Изменения глобальных настроек Для изменения глобальных `cli` запустите в консоли команду `gsf-cli\config.cmd configure` ## Хранения паролей Пароли сохраняются в зашифрованном виде по мастер ключу. Мастер ключ создается автоматически при первом добавлении проекта. Мастер добавления проекта запрашивает необходимые для дальнейшей работы пароли. Для изменения паролей смотри раздел credential_manager ## Горячии клавиши - `вверх`, `вниз` \ Используется для выбора разных вариантах - `вправо`\ Используется для авто завершения команды