----------------------------------------
       Proper mirroring
       April 29th, 2018
       ----------------------------------------
       
       A few folks were kind enough to let me know that my recent
       experiments with tor [0][1] broke my gopher hole mirrored on SDF
       and tilde.town. In reality, those mirrors weren't all that useful
       in the first place. All the links in my gophermaps to internal
       resources were using full, complete hostnames & ports. Thus, if
       you went to SDF, after link #1 you were really over on
       gopher.black anyway.
       
 (DIR) [0] gopher.black on tor, part 1
 (DIR) [1] gopher.black on tor, part 2
       
       This wasn't ideal, but it was low priority. It worked well enough,
       right? When I removed the explicit hostname & port info from
       gophermaps to allow my dual server goodness for tor, suddenly SDF
       and tilde.town thought that my links were legitimately local.
       There was just one problem... my content paths are different on
       all three systems.
       
       On gopher.black, / is mine. Everything starts there.
       On SDF, /users/tomasino is mine.
       On tilde.town, /~tomasino is mine
       
       The fix didn't take a ton of work since I already had a pretty
       solid foundation for mirroring the content. I have a local copy of
       my gopher git repo on those boxes and a cron-job that pulls it
       four times a day. Simple! Well, now I have a little extra goodness
       in there.
       
       The update process looks like so:
       
         - Fetch the remote
         - Check the SHA of the latest commit in HEAD vs origin/master
         - If different:
           - force reset the local head
           - pull origin/master
           - find all gophermaps and use sed to replace root paths
           - touch the local folder (for SDF's phlog list)
       
       Here's the code [2]:
 (HTM) [2] sdf-update-gopher
       
       It's not the cleanest. I could remove the pushd/popd stuff. It's
       legacy from a much more complex process time. The sed command is
       cumbersome as well. I could have matched \t/[^\t]*$ instead, but
       it works. So, like most of my stuff... good enough.
       
       A final note:
       
       Moku Pona & my reading lists are local cron tasks on gopher.black
       that update quite often. To avoid a bajillion commits to my gopher
       repo I don't include them at all. That means my moku-pona list and
       reading lists are not available on SDF or tilde.town. All the rest
       of the goods are there, though.
       
       Enjoy & stuff!