diff options
Diffstat (limited to 'Types/Remote.hs')
-rw-r--r-- | Types/Remote.hs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Types/Remote.hs b/Types/Remote.hs index 272693296..798bf1af5 100644 --- a/Types/Remote.hs +++ b/Types/Remote.hs @@ -19,6 +19,7 @@ module Types.Remote , Verification(..) , unVerified , ExportLocation(..) + , ExportDirectory(..) , isExportSupported , ExportActions(..) ) @@ -164,6 +165,9 @@ unVerified a = do newtype ExportLocation = ExportLocation FilePath deriving (Show, Eq) +newtype ExportDirectory = ExportDirectory FilePath + deriving (Show, Eq) + isExportSupported :: RemoteA a -> a Bool isExportSupported r = exportSupported (remotetype r) (config r) (gitconfig r) @@ -178,6 +182,13 @@ data ExportActions a = ExportActions , retrieveExport :: Key -> ExportLocation -> FilePath -> MeterUpdate -> a Bool -- Removes an exported file (succeeds if the contents are not present) , removeExport :: Key -> ExportLocation -> a Bool + -- Removes an exported directory. Typically the directory will be + -- empty, but it could possbly contain files or other directories, + -- and it's ok to delete those. If the remote does not use + -- directories, or automatically cleans up empty directories, + -- this can be Nothing. Should not fail if the directory was + -- already removed. + , removeExportDirectory :: Maybe (ExportDirectory -> a Bool) -- Checks if anything is exported to the remote at the specified -- ExportLocation. -- Throws an exception if the remote cannot be accessed. |