| | 1 | {{{ |
| | 2 | class Dir d where |
| | 3 | localDir :: d -> IO FilePath |
| | 4 | |
| | 5 | instance Dir Directory where |
| | 6 | localDir (Local f) = return f |
| | 7 | |
| | 8 | localDir (Darcs {url=url,darcsVersion=Patch patch,subDirectory=subDir}) = do |
| | 9 | tmp <- createTempDir 0 "haskelld" |
| | 10 | darcsOut <- runDarcsCommand tmp "get" ["--lazy","--to-match","hash "++ patch,url,"fs"] |
| | 11 | print darcsOut |
| | 12 | let (ExitSuccess,"",out) = darcsOut |
| | 13 | print out |
| | 14 | return $ tmp </> "fs" </> subDir |
| | 15 | |
| | 16 | type URL = String |
| | 17 | }}} |
| | 18 | |
| | 19 | becomes |
| | 20 | |
| | 21 | {{{ |
| | 22 | class Dir dwhere{ |
| | 23 | localDir :: d -> IO FilePath |
| | 24 | |
| | 25 | instance Dir Directory where |
| | 26 | localDir (Local f) = return f |
| | 27 | |
| | 28 | localDir (Darcs {url=url,darcsVersion=Patch patch,subDirectory=subDir}) = do |
| | 29 | tmp <- createTempDir 0 "haskelld" |
| | 30 | darcsOut <- runDarcsCommand tmp "get" ["--lazy","--to-match","hash "++ patch,url,"fs"] |
| | 31 | print darcsOut |
| | 32 | let (ExitSuccess,"",out) = darcsOut |
| | 33 | print out |
| | 34 | return $ tmp </> "fs" </> subDir |
| | 35 | |
| | 36 | typeURL= String |
| | 37 | }}} |