Puncte:0

Cum se exportă una sau mai multe reguli specifice?

drapel ma

Doresc să export una sau mai multe reguli sau componente specifice folosind Drush.
Am un script pentru a exporta toate regulile și componentele.

drush --listă de reguli pentru conducte | xargs -I{} sh -c "drush rules-export '{}' > '20210623-new-Rules-export-offline/{}.txt'"

20210623-noi-Reguli-export-offline este directorul în care sunt salvate regulile exportate.

Trebuie să schimb ceva la acest cod pentru a exporta regulile specifice pe care vreau să le export?

Am creat o vizualizare Rules VBO pentru a avea un acces mai bun la toate acele reguli, dar funcția de export într-un fișier nu pare să fie furnizată.

apaderno avatar
drapel us
Dacă înțeleg corect întrebarea, în loc să exportați toate regulile, doriți să exportați doar anumite reguli pentru care furnizați numele. Asta încerci să obții?
Puncte:1
drapel fr

lista de reguli drush este folosit pentru a lista toate regulile de pe site-ul dvs.

drush rules-export <nume-mașină-regulă> va exporta o anumită regulă.

Comanda pe care o afișați mai sus preia pur și simplu rezultatul comenzii rules-list și o trece la regulile-export, de fapt, fac o buclă peste toate Regulile și le exportă pe fiecare.

BassPlaya avatar
drapel ma
Multumesc @anonymous
BassPlaya avatar
drapel ma
Am încercat asta pentru 1 regulă și asta într-adevăr funcționează, dar arată codul exportat în Terminal, astfel încât trebuie să-l copiez și să-l inserez în propriul fișier text. Iată ce am făcut pentru a exporta o regulă în propriul fișier text cu numele mașinii ca fișier: `drush rules-export my_rule_1 > my_rule_1.txt`. Dacă încerc 2 reguli și folosesc această comandă, o exportă doar pe prima: `drush rules-export my_rule_1 my_rule_2 > my_exported_rules.txt`. Trebuie să-mi lipsească delimitatorul corect.
Puncte:0
drapel us

Pentru a exporta mai mult de o regulă, dar numai regulile al căror nume este dat într-o listă, aș folosi următorul cod.

#!/usr/bin/bash

# Lista numelor de articole de exportat
articole=(articol1 articol2 articol3)
pentru articol din „${items[@]}”; do
  regulile drush-export „$item” > „${item}.txt”
Terminat

Acest lucru este mai simplu decât obținerea listei de reguli existente de la drush reguli-listă --pipe, eliminați elementele din acea listă care nu se potrivesc cu numele regulilor pe care doriți să le exportați, apoi rulați drush reguli-export pe elementele din stânga.

Dacă ați avea o listă de nume, care ar putea fi fie nume de componente, fie nume de reguli și ați dori să exportați numai reguli, codul ar fi similar cu următorul.

#!/usr/bin/bash

# Lista articolelor de exportat, care ar putea include numele componentelor
nume=(nume1 nume2 nume3)

# Obțineți doar o listă de nume de reguli și convertiți-o într-o matrice.
reguli=( $(lista de reguli drush --pipe --type=regulă) )

# Creați o matrice cu elemente care se află în ambele matrice.
exporturi=( $(comm -12 <(printf '%s\n' "${names[@]}" | LC_ALL=C sort) <(printf '%s\n' "${rules[@]}" | LC_ALL=C sort)) )

# Exportați articolele ale căror nume sunt în matricea de exporturi, care conține doar nume de reguli.
pentru export în „${exports[@]}”; do
  drush rules-export „$export” > „${export}.txt”
Terminat
drapel fr
Deși toate acestea sunt adevărate, acest răspuns este într-adevăr despre programarea shell, mai degrabă decât drush sau reguli sau chiar Drupal. Există, desigur, multe modalități de a utiliza comanda de bază Drush rules-export pentru a bucla peste un set de intrări, dar acestea sunt dependente de sistemul de operare și de limbajul de scriptare (se poate face cu bash, csh, python, perl .. chiar PHP ... etc.).
apaderno avatar
drapel us
Da, dar ceea ce pune întrebarea necesită explicarea modului de a realiza ceva cu shell-ul, având în vedere că comanda afișată în întrebare este `drush --pipe rules-list | xargs -I{} sh -c "drush rules-export '{}' > '20210623-new-Rules-export-offline/{}.txt'"` și întrebarea este _Este ceva ce trebuie să schimb la acest cod pentru a exporta regulile specifice pe care vreau să le export?_
apaderno avatar
drapel us
Acest răspuns nu este doar despre shell, deoarece arată cum să utilizați un parametru acceptat de `drush rules-list`.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.