31 lines
1.5 KiB
Markdown
31 lines
1.5 KiB
Markdown
Completely finished up with making the assistant detect when git-annex's
|
|
binary has changed and handling the restart.
|
|
|
|
It's a bit tricky because during an upgrade there can be two assistant
|
|
daemons running at the same time, in the same repository. Although I
|
|
disable the watcher of the old one first. Luckily, git-annex has long
|
|
supported running multiple concurrent git-annex processes in the same
|
|
repository.
|
|
|
|
The surprisingly annoying part turned out to be how to make the webapp
|
|
redirect the browser to the new url when it's upgraded. Particularly needed
|
|
when automatic upgrades are enabled, since the user will not then be taking
|
|
any action in the webapp that could result in a redirect. My solution to this
|
|
feels like overkill; the webapp does ajax long polling until it gets an
|
|
url, and then redirects to it. Had to write javascript code and ugh.
|
|
|
|
But, that turned out to also be useful when manually restarting the webapp
|
|
(removed some horrible old code that ran a shell script to do it before),
|
|
and also when shutting the webapp down.
|
|
|
|
[[!img assistant/downloadupgrade.png alt="assistant downloading an upgrade to itself"]]
|
|
|
|
Getting back to upgrades, I have the assistant downloading the upgrade, and
|
|
running a hook action once the key is transferred. Now all I need is some
|
|
platform-specific code to install it. Will probably be hairy, especially on
|
|
OSX where I need to somehow unmount the old git-annex dmg and mount the new
|
|
one, from within a program running on the old dmg.
|
|
|
|
----
|
|
|
|
Today's work was sponsored by Evan Deaubl.
|