In "bin/ssh-auth", cache a structure instead of a flat file because paths may…


In "bin/ssh-auth", cache a structure instead of a flat file because paths may change at runtime

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