2010-05-25 3 views
12

J'essaie d'automatiser mon processus de construction d'extension Chrome sous OSX 10.5. Je suis incapable de trouver une commande similaire pour OSX comme celui-ci pour WindowsComment emballer une extension Chrome sur Mac OSX avec une ligne de commande?

chrome.exe --pack extension = c: \ myext --pack-extension-key = c: \ myext.pem

Est-il même possible sur OSX? Comme il n'y a aucune mention de cela dans le documentation.

Veuillez me guider.

Merci d'avance. -Parimal Das

Répondre

14
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --pack-extension... 
+1

Cela fonctionne, mais l'expansion du shell n'est pas prise en charge, veillez donc à utiliser le chemin complet (pas relatif (par exemple ../ ou ~ /)). En outre, il n'y a pas de message de réussite/erreur. Ma sortie indique "Breakpad désactivé" mais fonctionne quand vous utilisez les bons chemins. Plus d'infos: http://code.google.com/p/chromium/issues/detail?id=87085 –

1

Un exemple complet pour fonctionner sur la coque:

"/Users/varr/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --pack-extension="/Users/varr/Dropbox/Code/Projects/Bookmark Express/src"

choses à noter:

  • Chrome n'affiche aucune sortie de la réussite ou de l'échec, mais il renvoie un code de sortie
  • Votre shell (par exemple oh-my-zsh) peut afficher des codes de sortie afin que vous puissiez avoir une idée
  • Chrome va générer deux fichiers, le .crx et un .pem

Automatiser cela, je Geb (et Groovy). En GebConfig.groovy, j'ai essayé d'utiliser:

def chromePath = "/Users/varr/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary" 
def packExtensionSwitch='--pack-extension="/Users/varr/Dropbox/Code/Projects/Bookmark Express/src"' 

ProcessBuilder packExtension = new ProcessBuilder(chromePath, packExtensionSwitch) 
Process process = packExtension.start() 

Mais ce retour un code de sortie 21 à chaque fois et aucun fichier n'a été généré. Je finalisé mon approche avec:

def packageExtensionScript = '/Users/varr/package.sh' 

ProcessBuilder packExtension = new ProcessBuilder(packageExtensionScript) 
Process process = packExtension.start() 

Pour finir, je fait package.sh un script d'une ligne avec la commande à exécuter et tout cela a fonctionné!

Questions connexes