scripts: uniquify
This commit is contained in:
		
							parent
							
								
									559d7ba2c9
								
							
						
					
					
						commit
						bc8411219b
					
				
							
								
								
									
										21
									
								
								examples/uniquify.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								examples/uniquify.hs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,21 @@ | |||||||
|  | #!/usr/bin/env runhaskell | ||||||
|  | {-| | ||||||
|  | Uniquify journal entries based on some id in the description. Reads the | ||||||
|  | default or specified journal, or stdin. | ||||||
|  | 
 | ||||||
|  | Usage: uniquify.hs [-f JOURNALFILE | -f-] | ||||||
|  | |-} | ||||||
|  | 
 | ||||||
|  | import Data.List | ||||||
|  | import Hledger | ||||||
|  | import Hledger.Cli | ||||||
|  | 
 | ||||||
|  | main = do | ||||||
|  |   opts <- getHledgerOpts | ||||||
|  |   withJournalDo opts uniquifyAndPrint | ||||||
|  | 
 | ||||||
|  | uniquifyAndPrint :: CliOpts -> Journal -> IO () | ||||||
|  | uniquifyAndPrint opts j@Journal{jtxns=ts} = print' opts j{jtxns=uniquify ts} | ||||||
|  |     where | ||||||
|  |       uniquify = nubBy (\t1 t2 -> extractId (tdescription t1) == extractId (tdescription t2)) | ||||||
|  |       extractId desc = desc -- extract some part that's supposed to be unique | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user