1 votos

Conjunto de Bash Variable como Icono en osascript -e de la Pantalla de Diálogo con el icono de

Tengo un script en bash que utiliza algunos osascript -e código para un diálogo. Quiero usar un icono personalizado en ese cuadro de diálogo. Sin embargo, no entiendo cómo el código es así, es completamente portátil para hacerlo ejecutable no importa donde un usuario puede poner en su sistema de archivos.


cd "$(dirname "$0")/../../"
CONTENTS="$PWD"
export ICNSPATH="$CONTENTS/Resources/path/to/icon/Myicon.icns"
osascript -e 'tell application id "com.apple.systemuiserver"' -e 'display dialog "Lorem ipsum dolor sit amet." buttons {"Cancel", "Okay"} with icon '$ICNSPATH' as alias' -e 'end tell'

Actualmente la única manera en que puedo llegar a trabajar con un icono personalizado es mediante la codificación duro y no creo que es una buena idea.

Las soluciones deben ser w/o add-ons y deben trabajar en los sistemas operativos Mac 10.6 - 10.10.

Agradecemos cualquier ayuda que usted puede hacer.

3voto

Lo que siempre funciona es la codificación del archivo de icono con base64 -b 64 (para mantener las líneas de corto suficiente), incluir en su secuencia de comandos de shell como aquí el documento y decodificar sobre la marcha.

Para crear una codificación base64 versión de su archivo de icono, ejecutar

base64 -b 64 -i path/to/icon/Myicon.icns > myicon.base64

(Esto sólo se necesita hacer una vez).

A continuación, abra el shell de comandos en el editor y inserte myicon.base64 (que podría ser bastante grande) en el lugar correcto

...
ICNSPATH=${TMPDIR:-/tmp}/icon.$$.icns
base64 -D -o $ICNSPATH <<"END_OF_ICON"
** replace with content of myicon.base64 **
END_OF_ICON

osascript -e '... with icon '$ICNSPATH' as alias' # write full command here
rm -f $ICNSPATH

El final de la secuencia de comandos, a continuación, en el siguiente aspecto

...
ICNSPATH=${TMPDIR:-/tmp}/icon.$$.icns
base64 -D -o $ICNSPATH <<"END_OF_ICON"
aG93IHRvIGNvZGUgaXQgc28gaXQncyBjb21wbGV0ZWx5IHBvcnRhYmxlIHNvIGFz
...
eSBwdXQgaXQgaW4gaGlzIGZpbGUgc3lzdGVtLgoK
END_OF_ICON

osascript -e '... with icon '$ICNSPATH' as alias'
rm -f $ICNSPATH

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X