24 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			Markdown
		
	
	
	
	
	
The difference picking the right type can make! Last night, I realized that
 | 
						|
the where I had a `distributionSha256sum :: String`, I should instead use
 | 
						|
`distributionKey :: Key`. This means that when git-annex is eventually
 | 
						|
downloading an upgrade, it can treat it as just another Key being
 | 
						|
downloaded from the web. So the webapp will show that transfer along with
 | 
						|
all the rest, and I can leverage tons of code for a new purpose. For
 | 
						|
example, it can simply fsck the key once it's downloaded to verify its
 | 
						|
checksum.
 | 
						|
 | 
						|
Also, built a DistriutionUpdate program, which I'll run to generate the
 | 
						|
info files for a new version. And since I keep git-annex releases in a
 | 
						|
git-annex repo, this too leverages a lot of git-annex modules, and ended up
 | 
						|
being just 60 easy lines of code. The upgrade notification code is tested
 | 
						|
and working now.
 | 
						|
 | 
						|
And, I made the assistant detect when the git-annex program binary is
 | 
						|
replaced or modified. Used my existing DirWatcher code for that. The plan
 | 
						|
is to restart the assistant on upgrade, although I need to add some sanity
 | 
						|
checks (eg, reuse the lsof code) first. And yes, this will work even for
 | 
						|
`apt-get upgrade`!
 | 
						|
 | 
						|
----
 | 
						|
 | 
						|
Today's work was sponsored by Paul Tötterman
 |