#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_codemirroretc…
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.
[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées.
Agence de communication en Alsace · web · print
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.
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 autremoduleDernière modification par abecidofugy (Le 07/02/2021, à 18:29)
[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées.
Agence de communication en Alsace · web · print
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.
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"
?
[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées.
Agence de communication en Alsace · web · print
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...
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.
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.txtEnsuite je fais :
awk -F'[()]' '{print $2}' listebrutemodules.txt > listemodules.txtLol, je sais, c’est lourd ^^
[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées.
Agence de communication en Alsace · web · print
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.
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)
[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées.
Agence de communication en Alsace · web · print
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.
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 !
[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées.
Agence de communication en Alsace · web · print
Hors ligne