diff options
Diffstat (limited to 'Remote/Glacier.hs')
-rw-r--r-- | Remote/Glacier.hs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Remote/Glacier.hs b/Remote/Glacier.hs index d81066415..f351c66e9 100644 --- a/Remote/Glacier.hs +++ b/Remote/Glacier.hs @@ -25,6 +25,7 @@ import Creds import Utility.Metered import qualified Annex import Annex.Content +import Annex.UUID import System.Process @@ -67,13 +68,18 @@ gen r u c gc = new <$> remoteCost gc veryExpensiveRemoteCost remotetype = remote } -glacierSetup :: UUID -> RemoteConfig -> Annex RemoteConfig -glacierSetup u c = do +glacierSetup :: Maybe UUID -> RemoteConfig -> Annex (RemoteConfig, UUID) +glacierSetup mu c = do + u <- maybe (liftIO genUUID) return mu + glacierSetup' u c +glacierSetup' :: UUID -> RemoteConfig -> Annex (RemoteConfig, UUID) +glacierSetup' u c = do c' <- encryptionSetup c let fullconfig = c' `M.union` defaults genVault fullconfig u gitConfigSpecialRemote u fullconfig "glacier" "true" - setRemoteCredPair fullconfig (AWS.creds u) + c'' <- setRemoteCredPair fullconfig (AWS.creds u) + return (c'', u) where remotename = fromJust (M.lookup "name" c) defvault = remotename ++ "-" ++ fromUUID u |