diff options
Diffstat (limited to 'Types/Export.hs')
-rw-r--r-- | Types/Export.hs | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/Types/Export.hs b/Types/Export.hs index cc1b8debf..0e86f9684 100644 --- a/Types/Export.hs +++ b/Types/Export.hs @@ -5,19 +5,41 @@ - Licensed under the GNU GPL version 3 or higher. -} -module Types.Export where +module Types.Export ( + ExportLocation, + mkExportLocation, + fromExportLocation, + ExportDirectory, + mkExportDirectory, + fromExportDirectory, + exportDirectories, +) where + +import Git.FilePath import qualified System.FilePath.Posix as Posix -- A location on a remote that a key can be exported to. -- The FilePath will be relative to the top of the export, --- and may contain unix-style path separators. +-- and uses unix-style path separators. newtype ExportLocation = ExportLocation FilePath deriving (Show, Eq) +mkExportLocation :: FilePath -> ExportLocation +mkExportLocation = ExportLocation . toInternalGitPath + +fromExportLocation :: ExportLocation -> FilePath +fromExportLocation (ExportLocation f) = f + newtype ExportDirectory = ExportDirectory FilePath deriving (Show, Eq) +mkExportDirectory :: FilePath -> ExportDirectory +mkExportDirectory = ExportDirectory . toInternalGitPath + +fromExportDirectory :: ExportDirectory -> FilePath +fromExportDirectory (ExportDirectory f) = f + -- | All subdirectories down to the ExportLocation, with the deepest ones -- last. Does not include the top of the export. exportDirectories :: ExportLocation -> [ExportDirectory] |