git-annex/Assistant
Joey Hess 04c12aa6df
custom protocol for transferrer
Rather than using Read/Show, which would force me to preserve data types
into the future.

I considered just deriving json and sending that, but I don't much like
deriving json with data types that have named constructors (like Key
does) because again it locks in data type details.

So instead, used SimpleProtocol, with a fairly complex and unreadable
protocol. But it is as efficient as the p2p protocol at least, and as
future proof.

(Writing my own custom json instances would have worked but I thought
of it too late and don't want to do all the work twice. The only real
benefit might be that aeson could be faster.)

Note that, when a new protocol request type is added later, git-annex
trying to use it will cause the git-annex transferrer to display a
protocol error message. That seems ok; it would only happen if a new
git-annex found an old version of itself in PATH or the program
file. So it's unlikely, and all it can do anyway is display an error.
(The error message could perhaps be improved..)

This commit was sponsored by Jack Hill on Patreon.
2020-12-09 16:13:59 -04:00
..
Alert update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Install hush build warning on OSX 2020-11-13 13:34:34 -04:00
Pairing finished this stage of the RawFilePath conversion 2020-11-04 14:20:37 -04:00
Threads fix windows assistant upgrade glitch 2020-11-19 12:50:25 -04:00
Types move TransferrerPool from Assistant state to Annex state 2020-12-07 13:21:35 -04:00
WebApp fix windows assistant upgrade glitch 2020-11-19 12:50:25 -04:00
Alert.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
BranchChange.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Changes.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Commits.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Common.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CredPairCache.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
DaemonStatus.hs automate remote.name.skipFetchAll 2020-02-19 13:58:26 -04:00
DeleteRemote.hs auto-init autoenable=yes 2020-05-27 12:40:35 -04:00
Drop.hs add SeekInput (not yet used) 2020-09-15 15:41:13 -04:00
Fsck.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Gpg.hs be stricter about rejecting invalid configurations for remotes 2020-01-10 14:52:48 -04:00
Install.hs finished this stage of the RawFilePath conversion 2020-11-06 14:10:58 -04:00
MakeRemote.hs auto-init autoenable=yes 2020-05-27 12:40:35 -04:00
MakeRepo.hs more RawFilePath conversion 2020-11-03 18:34:27 -04:00
Monad.hs move TransferrerPool from Assistant state to Annex state 2020-12-07 13:21:35 -04:00
NamedThread.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Pairing.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Pushes.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
RemoteControl.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Repair.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
RepoProblem.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Restart.hs finished this stage of the RawFilePath conversion 2020-11-04 14:20:37 -04:00
ScanRemotes.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Ssh.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
Sync.hs simpler way to do this 2020-06-05 14:18:06 -04:00
TransferQueue.hs cache the serialization of a Key 2019-11-22 17:49:16 -04:00
TransferSlots.hs custom protocol for transferrer 2020-12-09 16:13:59 -04:00
Unused.hs avoid failure to lock content of removed file causing drop etc to fail 2020-07-25 11:59:33 -04:00
Upgrade.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
WebApp.hs unified AuthToken type between webapp and tor 2016-11-22 14:18:34 -04:00