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