Installer un thème de manière programmatique

Si vous souhaitez installer des thèmes via votre app.yml, utilisez le format suivant :

run:
  - exec: echo "Début des commandes personnalisées"

  - 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 "Fin des commandes personnalisées"

Options du format YAML

Le fichier YAML prend en charge un format court (URL uniquement) et un format long avec des options supplémentaires :

# Format court - uniquement l'URL
nom_du_thème: https://github.com/example/theme.git

# Format long - avec options
nom_du_thème:
  url: https://github.com/example/theme_name.git
  branch: "main"
  private_key: ""
  default: false
  add_to_all_themes: false
  skip_update: false
Option Description
url (requis) L’URL du dépôt Git
branch Branche Git à utiliser (par défaut, la branche par défaut du dépôt)
private_key Clé privée SSH pour les dépôts privés
default Définir comme thème par défaut (booléen)
add_to_all_themes Uniquement pour les composants — installer sur chaque thème (booléen)
skip_update Ignorer la mise à jour si le thème est déjà installé (booléen)

Installation depuis une archive

Vous pouvez également installer un thème à partir d’une archive locale .zip ou .tar.gz :

THEME_ARCHIVE=/chemin/vers/theme.zip bundle exec rake themes:install:archive

Définissez UPDATE_COMPONENTS=0 pour ignorer la mise à jour des composants inclus.

12 « J'aime »

Oh, je suis tellement content que ce soit possible… J’essayais de trouver un moyen de charger des thèmes sur une instance multisite et cela pourrait être le moyen le plus simple. Merci !

2 « J'aime »

Si quelqu’un d’autre cherche un moyen programmatique d’importer un thème depuis un appareil local avec un fichier zip :

export THEME_ARCHIVE=<chemin-absolu-vers-le-fichier> 
bundle exec rake themes:install:archive

ou

THEME_ARCHIVE=<chemin-absolu-vers-le-fichier> bundle exec rake themes:install:archive

est votre ami.

6 « J'aime »

(fonctionne aussi avec tar.gz)

2 « J'aime »