Installa un tema in modo programmatico

Se desideri installare temi tramite il tuo app.yml, utilizza il seguente formato:

run:
  - exec: echo "Inizio dei comandi personalizzati"

  - 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 "Fine dei comandi personalizzati"

Opzioni del formato YAML

Il file YAML supporta un formato breve (solo URL) e un formato lungo con opzioni aggiuntive:

# Formato breve - solo l'URL
nome_tema: https://github.com/example/theme.git

# Formato lungo - con opzioni
nome_tema:
  url: https://github.com/example/theme_name.git
  branch: "main"
  private_key: ""
  default: false
  add_to_all_themes: false
  skip_update: false
Opzione Descrizione
url (obbligatorio) L’URL del repository Git
branch Ramo Git da utilizzare (predefinito: ramo predefinito del repository)
private_key Chiave privata SSH per repository privati
default Imposta come tema predefinito (booleano)
add_to_all_themes Solo per componenti: installa su tutti i temi (booleano)
skip_update Salta l’aggiornamento se il tema è già installato (booleano)

Installazione da un archivio

Puoi anche installare un tema da un archivio locale .zip o .tar.gz:

THEME_ARCHIVE=/percorso/al/theme.zip bundle exec rake themes:install:archive

Imposta UPDATE_COMPONENTS=0 per saltare l’aggiornamento dei componenti inclusi.

12 Mi Piace

Sono così felice che questo sia possibile… Stavo cercando un modo per caricare temi su un’istanza multisito e questo potrebbe essere il modo più semplice. Grazie!

2 Mi Piace

Se qualcun altro sta cercando un modo programmatico per importare un tema dal dispositivo locale con un file zip:

export THEME_ARCHIVE=<percorso-assoluto-del-file> 
bundle exec rake themes:install:archive

o

THEME_ARCHIVE=<percorso-assoluto-del-file> bundle exec rake themes:install:archive

è il tuo amico.

6 Mi Piace

(funziona anche con tar.gz)

2 Mi Piace