Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/02/2021, à 18:05

abecidofugy

Lire une liste pas à pas et appliquer des commandes

Salut,

Je ne sais pas comment formuler mon topic. En fait, via la ligne de commande, j’ai pu récupérer une liste de modules que j’ai installé pour un projet web. Le contenu du fichier texte est :

admin_toolbar
advagg
advagg_bundler
advagg_css_minify
advagg_js_minify
advagg_mod
advagg_validator
AMP
captcha
ckeditor_codemirror

etc…

Ce que je voudrais à présent, c’est que pour chaque ligne du fichier, il soit appliqué deux commandes :

composer require drupal/advagg
drush en advagg

J’ai mis en gras le nom du module qui est passé en argument. Ici, le premier module.

Merci de votre aide.


KDE neon pour le plaisir d’avoir un O/S moderne et puissant et Firefox Nightly comme navigateur. Aussi sous Windows 11 pour une partie de mon travail…

Hors ligne

#2 Le 07/02/2021, à 18:11

Vobul

Re : Lire une liste pas à pas et appliquer des commandes

Admettons que ton fichier texte soit "input", fais un script:

input="./input"
while IFS= read -r line
do
    composer require drupal/$line
    drush en $line
done < "$input"

Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#3 Le 07/02/2021, à 18:28

abecidofugy

Re : Lire une liste pas à pas et appliquer des commandes

Super, je vais tester.

Ah, et j’ai oublié de préciser que je voudrais au final un fichier texte avec la suite de commandes :

composer require drupal/monmodule
drush en monmodule
composer require drupal/autremodule
drush en autremodule

Dernière modification par abecidofugy (Le 07/02/2021, à 18:29)


KDE neon pour le plaisir d’avoir un O/S moderne et puissant et Firefox Nightly comme navigateur. Aussi sous Windows 11 pour une partie de mon travail…

Hors ligne

#4 Le 07/02/2021, à 18:30

Vobul

Re : Lire une liste pas à pas et appliquer des commandes

Ben au lieu d'exécuter les commandes tu peux les "echo" avec ">>" dans un fichier d'output.


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#5 Le 07/02/2021, à 18:59

abecidofugy

Re : Lire une liste pas à pas et appliquer des commandes

Vobul a écrit :

Admettons que ton fichier texte soit "input", fais un script:

input="./input"
while IFS= read -r line
do
    composer require drupal/$line >> script.sh
    drush en $line >> script.sh
done < "$input"

?


KDE neon pour le plaisir d’avoir un O/S moderne et puissant et Firefox Nightly comme navigateur. Aussi sous Windows 11 pour une partie de mon travail…

Hors ligne

#6 Le 07/02/2021, à 19:06

Watael

Re : Lire une liste pas à pas et appliquer des commandes

non, il faut quand même faire un echo.

au fait, comment récupères-tu cette liste ? le fichier n'est peut-être pas indispensable...


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 07/02/2021, à 19:10

Vobul

Re : Lire une liste pas à pas et appliquer des commandes

input="./input"
while IFS= read -r line
do
    composer require drupal/$line
    echo "composer require drupal/$line" >> script.sh
    drush en $line
    echo "drush en $line" >> script.sh
done < "$input"

pour à la fois exécuter les commandes et aussi faire un script. Même si il est peut-être préférable de juste générer le script puis de l'exécuter par la suite.


Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM

Hors ligne

#8 Le 07/02/2021, à 19:28

abecidofugy

Re : Lire une liste pas à pas et appliquer des commandes

@Watael : ma commande est :

drush pm-list --type=Module --no-core --status=enabled > listebrutemodules.txt

Ensuite je fais :

awk -F'[()]' '{print $2}' listebrutemodules.txt > listemodules.txt

Lol, je sais, c’est lourd ^^


KDE neon pour le plaisir d’avoir un O/S moderne et puissant et Firefox Nightly comme navigateur. Aussi sous Windows 11 pour une partie de mon travail…

Hors ligne

#9 Le 07/02/2021, à 19:49

Watael

Re : Lire une liste pas à pas et appliquer des commandes

tu peux alors, en bash, remplacer la dernière ligne done <"$input"
par :

done < <(drush pm-list --type=Module --no-core --status=enabled | awk -F'[()]' '{print $2}')

et hop ! plus de fichiers intermédiaires.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#10 Le 07/02/2021, à 21:11

abecidofugy

Re : Lire une liste pas à pas et appliquer des commandes

input="./input"
while IFS= read -r line
do
    echo "composer require drupal/$line" >> script.sh
    echo "drush en $line" >> script.sh
done < <(drush pm-list --type=Module --no-core --status=enabled | awk -F'[()]' '{print $2}')

?

Je voudrais juste avoir le script.sh à la fin de la procédure. C’est juste ?

//EDIT : corrigé
//EDIT 2 : done < <(drush avec un espace entre les chevrons ? Ou bien : done <<(drush      ?

Dernière modification par abecidofugy (Le 07/02/2021, à 21:18)


KDE neon pour le plaisir d’avoir un O/S moderne et puissant et Firefox Nightly comme navigateur. Aussi sous Windows 11 pour une partie de mon travail…

Hors ligne

#11 Le 07/02/2021, à 21:27

Watael

Re : Lire une liste pas à pas et appliquer des commandes

il faut faire débuter le script par un shebang, et le rendre exécutable.

ed2: une espace entre les chevrons.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#12 Le 07/02/2021, à 21:53

abecidofugy

Re : Lire une liste pas à pas et appliquer des commandes

Super, ça marche smile

Merci beaucoup !


KDE neon pour le plaisir d’avoir un O/S moderne et puissant et Firefox Nightly comme navigateur. Aussi sous Windows 11 pour une partie de mon travail…

Hors ligne