In "bin/ssh-auth", cache a structure instead of a flat file because paths may change at runtime
Summary:
Fixes T12397. Ref T13164. See PHI801.
Several installs have hit various use cases where the path on disk where Phabricator lives changes at runtime. Currently, bin/ssh-auth caches a flat file which includes the path to bin/ssh-exec, so this may fall out of date if phabricator/ moves.
These use cases have varying strengths of legitimacy, but "we're migrating to a new set of hosts and the pool is half old machines and half new machines" seems reasonably compelling and not a problem entirely of one's own making.
Test Plan:
- Compared output on master to output after change, found them byte-for-byte identical.
- Moved phabricator/ to phabricator2/, ran bin/ssh-auth, got updated output.
- Added a new SSH key, saw it appear in the output.
- Grepped for AUTHFILE_CACHEKEY (no hits).
- Dropped the cache, verified that the file regenerates cleanly.
Reviewers: amckinley
Reviewed By: amckinley
Maniphest Tasks: T13164, T12397
Differential Revision: https://secure.phabricator.com/D19568