{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE TemplateHaskell #-}
module Headroom.Embedded
( configFileStub
, defaultConfig
, licenseTemplate
)
where
import Headroom.Configuration.Types ( LicenseType(..) )
import Headroom.Embedded.TH ( embedConfigFile
, embedDefaultConfig
, embedTemplate
)
import Headroom.FileType.Types ( FileType(..) )
import RIO
configFileStub :: IsString a => a
configFileStub :: a
configFileStub = $([Char]
[Char] -> a
forall a. IsString a => [Char] -> a
embedConfigFile)
defaultConfig :: IsString a => a
defaultConfig :: a
defaultConfig = $([Char]
[Char] -> a
forall a. IsString a => [Char] -> a
embedDefaultConfig)
licenseTemplate :: IsString a
=> LicenseType
-> FileType
-> a
licenseTemplate :: LicenseType -> FileType -> a
licenseTemplate LicenseType
licenseType FileType
fileType = case LicenseType
licenseType of
LicenseType
Apache2 -> case FileType
fileType of
FileType
C -> $(embedTemplate Apache2 C)
FileType
CPP -> $(embedTemplate Apache2 CPP)
FileType
CSS -> $(embedTemplate Apache2 CSS)
FileType
Go -> $(embedTemplate Apache2 Go)
FileType
Haskell -> $(embedTemplate Apache2 Haskell)
FileType
HTML -> $(embedTemplate Apache2 HTML)
FileType
Java -> $(embedTemplate Apache2 Java)
FileType
JS -> $(embedTemplate Apache2 JS)
FileType
PureScript -> $(embedTemplate Apache2 PureScript)
FileType
Rust -> $(embedTemplate Apache2 Rust)
FileType
Scala -> $(embedTemplate Apache2 Scala)
FileType
Shell -> $(embedTemplate Apache2 Shell)
LicenseType
BSD3 -> case FileType
fileType of
FileType
C -> $(embedTemplate BSD3 C)
FileType
CPP -> $(embedTemplate BSD3 CPP)
FileType
CSS -> $(embedTemplate BSD3 CSS)
FileType
Go -> $(embedTemplate BSD3 Go)
FileType
Haskell -> $(embedTemplate BSD3 Haskell)
FileType
HTML -> $(embedTemplate BSD3 HTML)
FileType
Java -> $(embedTemplate BSD3 Java)
FileType
JS -> $(embedTemplate BSD3 JS)
FileType
PureScript -> $(embedTemplate BSD3 PureScript)
FileType
Rust -> $(embedTemplate BSD3 Rust)
FileType
Scala -> $(embedTemplate BSD3 Scala)
FileType
Shell -> $(embedTemplate BSD3 Shell)
LicenseType
GPL2 -> case FileType
fileType of
FileType
C -> $(embedTemplate GPL2 C)
FileType
CPP -> $(embedTemplate GPL2 CPP)
FileType
CSS -> $(embedTemplate GPL2 CSS)
FileType
Go -> $(embedTemplate GPL2 Go)
FileType
Haskell -> $(embedTemplate GPL2 Haskell)
FileType
HTML -> $(embedTemplate GPL2 HTML)
FileType
Java -> $(embedTemplate GPL2 Java)
FileType
JS -> $(embedTemplate GPL2 JS)
FileType
PureScript -> $(embedTemplate GPL2 PureScript)
FileType
Rust -> $(embedTemplate GPL2 Rust)
FileType
Scala -> $(embedTemplate GPL2 Scala)
FileType
Shell -> $(embedTemplate GPL2 Shell)
LicenseType
GPL3 -> case FileType
fileType of
FileType
C -> $(embedTemplate GPL3 C)
FileType
CPP -> $(embedTemplate GPL3 CPP)
FileType
CSS -> $(embedTemplate GPL3 CSS)
FileType
Go -> $(embedTemplate GPL3 Go)
FileType
Haskell -> $(embedTemplate GPL3 Haskell)
FileType
HTML -> $(embedTemplate GPL3 HTML)
FileType
Java -> $(embedTemplate GPL3 Java)
FileType
JS -> $(embedTemplate GPL3 JS)
FileType
PureScript -> $(embedTemplate GPL3 PureScript)
FileType
Rust -> $(embedTemplate GPL3 Rust)
FileType
Scala -> $(embedTemplate GPL3 Scala)
FileType
Shell -> $(embedTemplate GPL3 Shell)
LicenseType
MIT -> case FileType
fileType of
FileType
C -> $(embedTemplate MIT C)
FileType
CPP -> $(embedTemplate MIT CPP)
FileType
CSS -> $(embedTemplate MIT CSS)
FileType
Go -> $(embedTemplate MIT Go)
FileType
Haskell -> $(embedTemplate MIT Haskell)
FileType
HTML -> $(embedTemplate MIT HTML)
FileType
Java -> $(embedTemplate MIT Java)
FileType
JS -> $(embedTemplate MIT JS)
FileType
PureScript -> $(embedTemplate MIT PureScript)
FileType
Rust -> $(embedTemplate MIT Rust)
FileType
Scala -> $(embedTemplate MIT Scala)
FileType
Shell -> $(embedTemplate MIT Shell)
LicenseType
MPL2 -> case FileType
fileType of
FileType
C -> $(embedTemplate MPL2 C)
FileType
CPP -> $(embedTemplate MPL2 CPP)
FileType
CSS -> $(embedTemplate MPL2 CSS)
FileType
Go -> $(embedTemplate MPL2 Go)
FileType
Haskell -> $(embedTemplate MPL2 Haskell)
FileType
HTML -> $(embedTemplate MPL2 HTML)
FileType
Java -> $(embedTemplate MPL2 Java)
FileType
JS -> $(embedTemplate MPL2 JS)
FileType
PureScript -> $(embedTemplate MPL2 PureScript)
FileType
Rust -> $(embedTemplate MPL2 Rust)
FileType
Scala -> $(embedTemplate MPL2 Scala)
FileType
Shell -> $(embedTemplate MPL2 Shell)