#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
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
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