Полный пример для запуска на корпусе:
"/Users/varr/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --pack-extension="/Users/varr/Dropbox/Code/Projects/Bookmark Express/src"
Things отметить:
- Chrome не будет отображать любой выход успеха или неудачи, но он возвращает код выхода
- Ваша оболочка (например, oh-my-zsh) может отображать коды выхода, поэтому у вас может быть идея
- Хром будет генерировать два файла,
.crx
и .pem
Для автоматизации этого, я использовал Geb (и Groovy). В GebConfig.groovy
, я попытался с помощью:
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()
Но это возвратило код выхода 21 каждый раз, и не были получены никаких файлов. Я завершил свой подход с:
def packageExtensionScript = '/Users/varr/package.sh'
ProcessBuilder packExtension = new ProcessBuilder(packageExtensionScript)
Process process = packExtension.start()
Чтобы закончить его, я сделал package.sh
одной строки сценария с помощью команды для запуска и все это работало!
Это работает, но расширение оболочки не поддерживается, поэтому обязательно используйте полный путь (не относительный (например, ../ или ~ /)). Кроме того, нет сообщений об ошибках/ошибках. Мой вывод показал, что «Breakpad отключен», но все еще работал при использовании правильных путей. Дополнительная информация: http://code.google.com/p/chromium/issues/detail?id=87085 –