Install a Theme programatically

Если вы хотите установить темы через ваш app.yml, используйте следующий формат:

run:
  - exec: echo "Начало пользовательских команд"

  - file:
      path: /tmp/mythemes.yml
      contents: |
        discourse-gifs:
          url: https://github.com/discourse/discourse-gifs.git
          add_to_all_themes: true

  - exec:
      cd: $home
      cmd: su discourse -c 'bundle exec rake themes:install < /tmp/mythemes.yml'

  - exec: echo "Конец пользовательских команд"

Варианты формата YAML

Файл YAML поддерживает короткий формат (только URL) и длинный формат с дополнительными опциями:

# Короткий формат — только URL
theme_name: https://github.com/example/theme.git

# Длинный формат — с опциями
theme_name:
  url: https://github.com/example/theme_name.git
  branch: "main"
  private_key: ""
  default: false
  add_to_all_themes: false
  skip_update: false
Опция Описание
url (обязательно) URL репозитория Git
branch Ветка Git для использования (по умолчанию — основная ветка репозитория)
private_key Приватный SSH-ключ для частных репозиториев
default Установить как тему по умолчанию (логическое значение)
add_to_all_themes Только для компонентов — установить во все темы (логическое значение)
skip_update Пропустить обновление, если тема уже установлена (логическое значение)

Установка из архива

Вы также можете установить тему из локального архива .zip или .tar.gz:

THEME_ARCHIVE=/path/to/theme.zip bundle exec rake themes:install:archive

Установите UPDATE_COMPONENTS=0, чтобы пропустить обновление включённых компонентов.

12 лайков

Oh I’m so glad this is possible…I was trying to find a way to load themes across a multisite instance and this may be the easiest way. Thank you!

2 лайка

If anyone else is looking for a programmatical way to import a Theme from the local device with a zip file:

export THEME_ARCHIVE=<abolute-path-to-file> 
bundle exec rake themes:install:archive

or

THEME_ARCHIVE=<abolute-path-to-file> bundle exec rake themes:install:archive

is your friend.

6 лайков

(also works with tar.gz)

2 лайка