diff options
Diffstat (limited to 'Storage.hs')
-rw-r--r-- | Storage.hs | 9 |
1 files changed, 4 insertions, 5 deletions
@@ -26,10 +26,9 @@ import Control.Concurrent.Async import qualified Data.Set as S import Network.Wai.Handler.Warp (Port) -allStorageLocations :: Maybe LocalStorageDirectory -> IO StorageLocations -allStorageLocations d = do - servers <- networkServers - return $ StorageLocations $ map (networkStorage d) servers +networkStorageLocations :: Maybe LocalStorageDirectory -> StorageLocations +networkStorageLocations d = StorageLocations $ + map (networkStorage d) networkServers localStorageLocations :: Maybe LocalStorageDirectory -> StorageLocations localStorageLocations d = StorageLocations $ @@ -122,12 +121,12 @@ retrieveShares (StorageLocations locs) sis updateprogress = do -- | Returns descriptions of any failures. uploadQueued :: Maybe LocalStorageDirectory -> IO [String] uploadQueued d = do - StorageLocations locs <- allStorageLocations d results <- forM locs $ \loc -> case uploadQueue loc of Nothing -> return [] Just q -> moveShares q loc return $ processresults (concat results) [] where + StorageLocations locs = networkStorageLocations d processresults [] c = nub c processresults (StoreSuccess:rs) c = processresults rs c processresults (StoreFailure e:rs) c = processresults rs (e:c) |