Automatiser une liste d'extensions VSCode

a marqué ce sujet comme résolu.

Bonjour,

j’ai écris un petit script bash qui permet d’installer une liste spécifique d’extensions VSCode, afin de backup ces-dernières :

#!/bin/bash

pkglist=(
  ms-python.python
  ms-python.vscode-pylance
  eamodio.gitlens
  # etc.
)

for i in ${pkglist[@]}; do
  code --install-extension $i
done 

L’idée serait que si j’intalle une nouvelle extension, alors la liste pkglist est automatiquement mise à jour, mais je ne sais pas trop comment m’y prendre…

La liste des extensions VSCode se trouve dans le répertoire ~\.vscode\extensions. Il faudrait donc mettre à jour la liste lorsque ce-dernier est modifié…

Une idée ? Merci !

Le plus simple à première vue, serait d’avoir la liste dans un fichier séparé… par exemple ~/vscode_pkglist avec le même formalisme d’une extension par ligne.

Du coup, ton script devient :

#!/bin/bash

pkglist=$(cat "$HOME/vscode_pkglist")

for i in $pkglist; do
  code --install-extension $i
done

Jusque là, la question de la mise à jour n’est pas résolue… Mais en ayant un/une fichier/liste séparé/e, tu peux le/la mettre à jour sans modifier ton script (ce qui répond à une partie de ta problématique.) Tu peux avoir, ensuite, un autre script qui te fait une installation ponctuelle et inscrit le résultat dans le fichier :

#!/bin/bash

for i in $@; do
  code --install-extension $i && echo $i >> "$HOME/vscode_pkglist"
done

Enfin, tu peux compléter le fichier par la liste de ce qui est déjà installé. Je n’utilise pas VSCode, mais s’il y a un répertoire par extension et que celui-ci porte son nom, alors :

#!/bin/bash

cd "$HOME/.vscode/extensions" || exit
pkglist="$HOME/vscode_pkglist"
for i in $(find . -type d -maxdepth 0); do
  grep -Fqsv "$i" "$pkglist" && echo "$i" >>"$pkglist" 
done

Sinon faut adapter selon la structure du dossier (y a peut-être un fichier de méta dans chaque sous-dossier qu’il faut consulter, mais t’as l’idée en gros.)

+1 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte