Supporting multiple directory hash types will allow converting to a different one, without a flag day. gitAnnexLocation now checks which of the possible locations have a file. This means more statting of files. Several places currently use gitAnnexLocation and immediately check if the returned file exists; those need to be optimised.
		
			
				
	
	
		
			28 lines
		
	
	
	
		
			609 B
			
		
	
	
	
		
			Haskell
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			609 B
			
		
	
	
	
		
			Haskell
		
	
	
	
	
	
{- git-annex command
 | 
						|
 -
 | 
						|
 - Copyright 2010 Joey Hess <joey@kitenet.net>
 | 
						|
 -
 | 
						|
 - Licensed under the GNU GPL version 3 or higher.
 | 
						|
 -}
 | 
						|
 | 
						|
module Command.SendKey where
 | 
						|
 | 
						|
import Common.Annex
 | 
						|
import Command
 | 
						|
import Annex.Content
 | 
						|
import Utility.RsyncFile
 | 
						|
 | 
						|
def :: [Command]
 | 
						|
def = [command "sendkey" paramKey seek
 | 
						|
	"runs rsync in server mode to send content"]
 | 
						|
 | 
						|
seek :: [CommandSeek]
 | 
						|
seek = [withKeys start]
 | 
						|
 | 
						|
start :: Key -> CommandStart
 | 
						|
start key = do
 | 
						|
	file <- inRepo $ gitAnnexLocation key
 | 
						|
	whenM (inAnnex key) $
 | 
						|
		liftIO $ rsyncServerSend file -- does not return
 | 
						|
	warning "requested key is not present"
 | 
						|
	liftIO exitFailure
 |