-- |
-- Module: BDCS.Export.Types
-- Copyright: (c) 2018 Red Hat, Inc.
-- License: LGPL
--
-- Maintainer: https://github.com/weldr
-- Stability: alpha
-- Portability: portable
--
-- Types related to exporting.

{-# LANGUAGE OverloadedStrings #-}

module BDCS.Export.Types(ExportType(..),
                         exportTypeText,
                         exportTypeFromText,
                         supportedExportTypes)
 where

import qualified Data.Text as T

data ExportType = ExportDirectory
                | ExportOstree
                | ExportQcow2
                | ExportTar
 deriving(Eq, Show)

exportTypeText :: ExportType -> T.Text
exportTypeText ExportDirectory = "directory"
exportTypeText ExportOstree    = "ostree"
exportTypeText ExportQcow2     = "qcow2"
exportTypeText ExportTar       = "tar"

exportTypeFromText :: T.Text -> Maybe ExportType
exportTypeFromText t = case T.toLower (T.strip t) of
    "directory" -> Just ExportDirectory
    "ostree"    -> Just ExportOstree
    "qcow2"     -> Just ExportQcow2
    "tar"       -> Just ExportTar
    _           -> Nothing

supportedExportTypes :: [ExportType]
supportedExportTypes = [ExportDirectory, ExportOstree, ExportQcow2, ExportTar]