This repository has been archived on 2024-10-24. You can view files and clone it, but cannot push or open issues or pull requests.
fradrive-old/src/Settings/Mime.hs
2022-10-12 09:35:16 +02:00

37 lines
894 B
Haskell

-- SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>
--
-- SPDX-License-Identifier: AGPL-3.0-or-later
module Settings.Mime
( mimeMap
, mimeLookup
, mimeExtensions
, archiveTypes, videoTypes
, module Network.Mime
) where
import ClassyPrelude
import qualified Data.Map as Map
import qualified Data.Set as Set
import Network.Mime
( FileName, MimeType, MimeMap, Extension
, mimeByExt, defaultMimeType
)
import Network.Mime.TH
mimeMap :: MimeMap
mimeMap = $(mimeMapFile "config/mimetypes")
mimeLookup :: FileName -> MimeType
mimeLookup = mimeByExt mimeMap defaultMimeType
mimeExtensions :: MimeType -> Set Extension
mimeExtensions needle = Set.fromList [ ext | (ext, typ) <- Map.toList mimeMap, typ == needle ]
archiveTypes, videoTypes :: Set MimeType
archiveTypes = $(mimeSetFile "config/archive-types")
videoTypes = $(mimeSetFile "config/video-types")