Automated reinstall of plugin during development

In order to test if my code is written correctly while making a Glyphs plugin, I have to go through the same process every single time:

  1. Double click the plugin file

  2. Toggle to glyphs

  3. Hit Install on a dialogue box (Install Plugin)

  4. Hit ‘replace’ on a second dialogue box (Install Plugin)

  5. Close Glyphs

  6. Restart glyphs

————————

I just tried to automate this using AppleScript, but by browsing through the forum here, I see that AppleScript support in Glyphs is missing or limited.

Is there some other way to do this that I’m just not realizing?

Is there some way to automate this with Python?

Thanks!

You can put an alias or symlink from your plugin into the Plugin folder. Then you only need to restart Glyphs. And you can Force Quit Glyphs, that is quicker and triggers the UI restoration, so you end up where you left.

Great!

I created an alias, and that worked perfectly.

Additionally, this tutorial explains how to create a ‘service’ in Apple’s Automator, which allowed me to use a key command in any application to close and restart Glyphs, and even open a test Glyphs file while it was it:

The combination of file alias + automator + ‘service’ key command allows me to use a key command to run all the previously manual steps in a matter of seconds!

Thank you!

Manually open a file and do any small change to it and wait 10 seconds. Then a Force quit+restart should bring that file back. This is more flexible instead of changing the automator action when you need a different file.

Actually, I’m having trouble getting the alias to work. Can you describe in more detail the process of getting Glyphs to think an alias is the actual plugin?

When I install from the alias, it ends up putting a duplicate (non alias) file in that plugins directory?

You don’t need to install the plugin at all. Just make the alias from the development folder (mostly a git repo) to the Plugins folder.

After you move the alias to the Plugins folder, remove “.alias” from the end of the name; then it should work.

Got it working, thanks everyone! @GeorgSeifert

I think the .alias is only added if there is a file with the same name already. So, of course, you need to remove the old plugin, first.