Estoy tratando de guardar tres variables distintas a las que mi aplicación Applescript podría acceder en el lanzamiento, y si el usuario desea puede manipular esas variables desde la aplicación.
Más concretamente, estoy trabajando en un script que ejecuta un montón de ecuaciones basadas en la latitud y longitud seleccionadas por el usuario, y emite los resultados en una cadena, incluyendo el nombre de la ciudad. Si el usuario lo desea, puede elegir una ciudad diferente y reiniciar el script basándose en esa ciudad.
Elegir una ciudad diferente, establecer las variables y volver a ejecutar el script en consecuencia está bien. Puedo simplemente configurar una subrutina que contenga el siguiente código:
set choice to choose from list {"City A","City B","City X"}
if choice is "City A"
set city to "City A"
set lat to (latitude of City A)
set lon to (longitude of City A)
else if choice is "City B"
...
Mi problema es que tengo que inicializar estas variables cuando se inicia el script. Puedo establecer un valor predefinido para estas variables, o puedo ejecutar esta subrutina al comienzo del script, pero no encuentro la forma de guardar la elección para futuras ejecuciones, de modo que el resultado de esta elección se convierta en el predeterminado. Es decir, si el script por defecto ejecuta estas ecuaciones para la Ciudad A, y yo elijo la Ciudad B de la lista, la próxima vez que el script se ejecute, debería ejecutar las ecuaciones para la Ciudad B automáticamente, sin ninguna entrada del usuario.
Intenté configurar un segundo script con exactamente tres líneas de código:
property city : "City A"
property longitude : (longitude of City A)
property latitude : (latitude of City A)
pero posteriormente me di cuenta de que falla exactamente por el mismo problema: los Applescripts no pueden guardar variables dentro de sí mismos entre tareas. Puedo actualizar una variable externa una vez cargada en el script actual, pero eso no edita realmente el script original.
Otra cosa que intenté fue crear un archivo en blanco en algún lugar y renombrarlo de acuerdo a la elección del usuario, luego probar el nombre del archivo y actualizar las variables en consecuencia, pero también me gustaría compartir la aplicación para que otros puedan usarla, y eso requeriría que ellos también tengan este archivo en una carpeta específica. Por alguna razón, script Editor no le gusta cuando trato de obtener la ruta de un archivo dentro de un paquete de aplicación, así que a menos que haya una solución para eso, no puedo simplemente ocultar el archivo dentro de la propia aplicación.
He visto aquí que si guarda el archivo como .applescript
puedes hacer que escriba sobre sí mismo, pero no estoy seguro de cómo lo harías.
Soy consciente de que existe una cosa llamada Database Events
que podría manipular, pero no estoy seguro de cómo lo haría.
Lo mínimo que busco es una forma de guardar las variables para acceder a ellas en el lanzamiento la próxima vez, pero si alguien pudiera abordar todas las posibilidades que he mencionado arriba, sería excelente.