Plugins Sketch : synchroniser et mettre à jour

Crédit photo : Bohemian Coding

Si vous utilisez Sketch, vous faites sans doute partie de l’un ou l’autre groupe Facebook où les utilisateurs moins expérimentés peuvent poser des questions et où on s’échange des tuyaux.

Récemment quelqu’un à demandé comment on pouvait gérer les mises à jour de plugins de manière efficace et, surtout, comment synchroniser les plugins entre plusieurs Macs. C’est évidemment particulièrement utile d’avoir le même environnement de travail et les mêmes plugins (à jour) sur l’ensemble de ses machines.

Il faut avouer qu’au niveau de la gestion des plugins, Sketch doit encore (beaucoup) progresser. L’application propose bien un panneau permettant de plus ou moins gérer ses plugins mais ça se limite à les lister, les désactiver et les supprimer. C’est déjà pas mal mais la gestion des mises à jour fait cruellement défaut. Et bien que Sketch utilise iCloud Drive pour les documents de travail eux-mêmes, impossible de synchroniser les plugins entre plusieurs Macs.

sketch-plugins-pannel

Cependant j’ai une solution. Ce n’est peut-être pas la plus élégante mais ça fonctionne. Ça fonctionne même plutôt bien.

Mise à jour des plugins

La plupart des plugins Sketch sont disponibles sur Github. Vous voyez où je veux en venir. En clonant le dépôt Git d’un plugin plutôt qu’en téléchargeant son archive zip, on peut facilement faire un pull du dépôt quand une mise à jour est disponible. Plus besoin d’aller chercher le zip contenant la mise à jour et de le décompresser manuellement dans le dossier des plugins (qui est par ailleurs localisé dans les abysses de votre dossier utilisateur).

sketch-plugins-git

Il faut avouer que ça s’adresse aux personnes qui s’y connaissent un tout petit peu en la matière et, comme je n’ai pas la prétention de maîtriser Git, je vous conseille de consulter des sites experts à propos de Git pour savoir comment ça fonctionne.

Synchronisation des plugins

Avant tout, faites une copie de sauvegarde de votre dossier de plugins, on ne sait jamais. Vous pouvez le trouver via Sketch, dans le panneau des plugins, en cliquant sur la roué crantée (voir capture plus haut) puis en choisissant Show Plugins Folder.

Comme je l’écrivais tout à l’heure, Sketch utilise iCloud Drive. Et nous aussi en fait, donc rien ne nous empêche de synchroniser les plugins par ce biais. En revanche on ne peut pas simplement placer les plugins dans un dossier enregistré sur iCloud Drive, il faut utiliser un lien symbolique.

1 – D’abord il faut supprimer le dossier Plugins original s’il se trouve encore dans le dossier de données de Sketch.

2 – Admettons que vous placiez ensuite tous vos plugins Sketch, clonés à partir de Github, dans le dossier du Finder iCloud Drive > Sketch Plugins. Voici ce que vous devez alors utiliser dans votre Terminal pour créer un lien symbolique entre ce dossier-ci et le dossier de données de Sketch :

ln -s  \
/Users/[UTILISATEUR]/Library/Mobile\ Documents/com\~apple\~CloudDocs/Sketch\ Plugins  \
/Users/[UTILISATEUR]/Library/Containers/com.bohemiancoding.sketch3/Data/Library/Application\ Support/com.bohemiancoding.sketch3/Plugins

N’oubliez pas de remplacer [UTILISATEUR] par votre nom d’utilisateur personnel. Pour le connaître, tapez whoami dans le terminal.

De cette manière, Sketch va suivre le lien symbolique de façon transparente et verra les plugins qui sont dans iCloud Drive. Notez que ça doit fonctionner de manière similaire avec Dropbox ou tout autre système de synchronisation de fichiers. Si c’est votre cas, il faudra adapter le chemin utilisé dans le lien symbolique. Personnellement je n’utilise pas Dropbox mais uniquement iCloud, alors à vous de voir ce que vous préférez.

Faites-le sur l’ensemble de vos machines et, si tout se passe bien, vos plugins seront disponibles sur tous vos Macs. Et quand un plugin est mis à jour via Git, ce sera également synchronisé automatiquement.

S’il devait y avoir un problème, supprimez le lien symbolique et replacez le dossier de plugins là où il était à l’origine pour revenir à la situation de départ. Contactez-moi via Twitter si besoin (liens ci-dessous).

4b7b1658d9ffcb1db2b384c2ddb0c165;;;;;;;;;;;;;;;;;;;;;;;;;;;;