SVN in all its glory might be overkill, especially considering that in general these repositories would only have one (or a few) files at any given time. The "easiest" (i.e. least amount of thought required) solution would be to just use a separate folder for each script, each of which is backed by a different SVN repository.
So I just realized that extra folders break relay_[whatever] scripts (or at the very least, cause them to be undetected. A workaround would be to create symlinks, but that might be more of a hassle than it's worth.)
My issue is mostly how best to integrate it into the ASH language and I haven't had/heard of any good ideas on that front yet.
Warning: the below ideas are totally half-baked.
I would advocate
cli_execute("update scripts"), but I think I'd want a way to control this on a per-script basis.
Maybe
void check_for_updates(), which must be top-level code, requires a unique script name (specified via
script identifier, or possibly filename --- I'd like to propose adding an
author identifier, but that might break some existing scripts), and restarts (via exiting / rerunning) the script if it updated? (optionally, preference for manual user confirmation for each update).
edit: not sure how I'd want uploading of new scripts to work. On one hand, I'd like it to be somewhat collaborative (so if an author disappears off the face of the kingdom, then scripts don't _have_ to die), but on the other hand, I'd want quality control, Maybe I'll have more half-baked visions.