headroom-0.1.0.0: src/Headroom/Embedded.hs
{-|
Module : Headroom.Embedded
Description : Embedded resource files
Copyright : (c) 2019-2020 Vaclav Svejcar
License : BSD-3
Maintainer : vaclav.svejcar@gmail.com
Stability : experimental
Portability : POSIX
Contains resources that were embedded from the @embedded/@ source folder during
compile time, using the "Data.FileEmbed" module.
-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
module Headroom.Embedded
( configFileStub
, licenseTemplate
)
where
import Data.FileEmbed ( embedStringFile )
import Headroom.FileType ( FileType(..) )
import Headroom.License ( License(..)
, LicenseType(..)
)
import RIO
-- | Content of dummy /YAML/ configuration file for the application.
configFileStub :: IsString a => a
configFileStub = $(embedStringFile "embedded/config-file.yaml")
-- | License template for given 'License'.
licenseTemplate :: IsString a
=> License -- ^ 'License' for which to return the template
-> a -- ^ template text
licenseTemplate (License licenseType fileType) = case licenseType of
Apache2 -> case fileType of
CSS -> $(embedStringFile "embedded/license/apache2/css.mustache")
Haskell -> $(embedStringFile "embedded/license/apache2/haskell.mustache")
HTML -> $(embedStringFile "embedded/license/apache2/html.mustache")
Java -> $(embedStringFile "embedded/license/apache2/java.mustache")
JS -> $(embedStringFile "embedded/license/apache2/js.mustache")
Scala -> $(embedStringFile "embedded/license/apache2/scala.mustache")
BSD3 -> case fileType of
CSS -> $(embedStringFile "embedded/license/bsd3/css.mustache")
Haskell -> $(embedStringFile "embedded/license/bsd3/haskell.mustache")
HTML -> $(embedStringFile "embedded/license/bsd3/html.mustache")
Java -> $(embedStringFile "embedded/license/bsd3/java.mustache")
JS -> $(embedStringFile "embedded/license/bsd3/js.mustache")
Scala -> $(embedStringFile "embedded/license/bsd3/scala.mustache")
GPL2 -> case fileType of
CSS -> $(embedStringFile "embedded/license/gpl2/css.mustache")
Haskell -> $(embedStringFile "embedded/license/gpl2/haskell.mustache")
HTML -> $(embedStringFile "embedded/license/gpl2/html.mustache")
Java -> $(embedStringFile "embedded/license/gpl2/java.mustache")
JS -> $(embedStringFile "embedded/license/gpl2/js.mustache")
Scala -> $(embedStringFile "embedded/license/gpl2/scala.mustache")
GPL3 -> case fileType of
CSS -> $(embedStringFile "embedded/license/gpl3/css.mustache")
Haskell -> $(embedStringFile "embedded/license/gpl3/haskell.mustache")
HTML -> $(embedStringFile "embedded/license/gpl3/html.mustache")
Java -> $(embedStringFile "embedded/license/gpl3/java.mustache")
JS -> $(embedStringFile "embedded/license/gpl3/js.mustache")
Scala -> $(embedStringFile "embedded/license/gpl3/scala.mustache")
MIT -> case fileType of
CSS -> $(embedStringFile "embedded/license/mit/css.mustache")
Haskell -> $(embedStringFile "embedded/license/mit/haskell.mustache")
HTML -> $(embedStringFile "embedded/license/mit/html.mustache")
Java -> $(embedStringFile "embedded/license/mit/java.mustache")
JS -> $(embedStringFile "embedded/license/mit/js.mustache")
Scala -> $(embedStringFile "embedded/license/mit/scala.mustache")