Copyright | (c) 2019-2020 Vaclav Svejcar |
---|---|
License | BSD-3-Clause |
Maintainer | vaclav.svejcar@gmail.com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
Headroom.Configuration.Types
Description
This module contains data types representing Headroom configuration options. Related logic is available in Headroom.Configuration module.
Data types related to Headroom configuration uses the
partial options monoid
pattern, but instead of defining separate data type for each phase
(partial or complete configuration), the phase is expressed by the Phase
data type and related closed type family.
Synopsis
- data ConfigurationError
- data ConfigurationKey
- data Phase
- type family (p :: Phase) ::: a where ...
- data Configuration (p :: Phase) = Configuration {
- cRunMode :: p ::: RunMode
- cSourcePaths :: p ::: [FilePath]
- cExcludedPaths :: p ::: [Regex]
- cTemplateSource :: p ::: TemplateSource
- cVariables :: Variables
- cLicenseHeaders :: HeadersConfig p
- cHeaderFnConfigs :: HeaderFnConfigs p
- type CtConfiguration = Configuration 'Complete
- type PtConfiguration = Configuration 'Partial
- data HeadersConfig (p :: Phase) = HeadersConfig {
- hscC :: HeaderConfig p
- hscCpp :: HeaderConfig p
- hscCss :: HeaderConfig p
- hscHaskell :: HeaderConfig p
- hscHtml :: HeaderConfig p
- hscJava :: HeaderConfig p
- hscJs :: HeaderConfig p
- hscPureScript :: HeaderConfig p
- hscRust :: HeaderConfig p
- hscScala :: HeaderConfig p
- hscShell :: HeaderConfig p
- type CtHeadersConfig = HeadersConfig 'Complete
- type PtHeadersConfig = HeadersConfig 'Partial
- data HeaderConfig (p :: Phase) = HeaderConfig {
- hcFileExtensions :: p ::: [Text]
- hcMarginAfter :: p ::: Int
- hcMarginBefore :: p ::: Int
- hcPutAfter :: p ::: [Regex]
- hcPutBefore :: p ::: [Regex]
- hcHeaderSyntax :: p ::: HeaderSyntax
- type CtHeaderConfig = HeaderConfig 'Complete
- type PtHeaderConfig = HeaderConfig 'Partial
- type CtUpdateCopyrightConfig = UpdateCopyrightConfig 'Complete
- type PtUpdateCopyrightConfig = UpdateCopyrightConfig 'Partial
- data UpdateCopyrightConfig (p :: Phase) = UpdateCopyrightConfig {
- uccSelectedAuthors :: p ::: Maybe (NonEmpty Text)
- type CtHeaderFnConfig c = HeaderFnConfig 'Complete c
- type PtHeaderFnConfig c = HeaderFnConfig 'Partial c
- data HeaderFnConfig (p :: Phase) c = HeaderFnConfig {
- hfcEnabled :: p ::: Bool
- hfcConfig :: c p
- type CtHeaderFnConfigs = HeaderFnConfigs 'Complete
- type PtHeaderFnConfigs = HeaderFnConfigs 'Partial
- data HeaderFnConfigs (p :: Phase) = HeaderFnConfigs {}
- data HeaderSyntax
- data GenMode
- data LicenseType
- data RunMode
- data TemplateSource
Error Types
data ConfigurationError Source #
Exception specific to the Headroom.Configuration module.
Constructors
MissingConfiguration ConfigurationKey | some of the required configuration keys has not been specified |
MixedHeaderSyntax | illegal configuration for |
Instances
Eq ConfigurationError Source # | |
Defined in Headroom.Configuration.Types Methods (==) :: ConfigurationError -> ConfigurationError -> Bool # (/=) :: ConfigurationError -> ConfigurationError -> Bool # | |
Show ConfigurationError Source # | |
Defined in Headroom.Configuration.Types Methods showsPrec :: Int -> ConfigurationError -> ShowS # show :: ConfigurationError -> String # showList :: [ConfigurationError] -> ShowS # | |
Exception ConfigurationError Source # | |
Defined in Headroom.Configuration.Types Methods toException :: ConfigurationError -> SomeException # fromException :: SomeException -> Maybe ConfigurationError # |
data ConfigurationKey Source #
Represents single key in the configuration.
Constructors
CkFileExtensions FileType | no configuration for |
CkHeaderSyntax FileType | no configuration for header syntax |
CkMarginAfter FileType | no configuration for |
CkMarginBefore FileType | no configuration for |
CkPutAfter FileType | no configuration for |
CkPutBefore FileType | no configuration for |
CkRunMode | no configuration for |
CkSourcePaths | no configuration for |
CkExcludedPaths | no configuration for |
CkTemplateSource | no configuration for template source |
CkVariables | no configuration for |
CkEnabled | no configuration for |
Instances
Eq ConfigurationKey Source # | |
Defined in Headroom.Configuration.Types Methods (==) :: ConfigurationKey -> ConfigurationKey -> Bool # (/=) :: ConfigurationKey -> ConfigurationKey -> Bool # | |
Show ConfigurationKey Source # | |
Defined in Headroom.Configuration.Types Methods showsPrec :: Int -> ConfigurationKey -> ShowS # show :: ConfigurationKey -> String # showList :: [ConfigurationKey] -> ShowS # |
Type Families
Data type representing state of given configuration data type.
type family (p :: Phase) ::: a where ... Source #
Closed type family used to express the phase of given data type.
Data Types
Top Level Configuration
data Configuration (p :: Phase) Source #
Application configuration.
Constructors
Configuration | |
Fields
|
Instances
type CtConfiguration = Configuration 'Complete Source #
Alias for complete variant of Configuration
.
type PtConfiguration = Configuration 'Partial Source #
Alias for partial variant of Configuration
.
data HeadersConfig (p :: Phase) Source #
Group of HeaderConfig
configurations for supported file types.
Constructors
HeadersConfig | |
Fields
|
Instances
type CtHeadersConfig = HeadersConfig 'Complete Source #
Alias for complete variant of HeadersConfig
.
type PtHeadersConfig = HeadersConfig 'Partial Source #
Alias for partial variant of HeadersConfig
.
data HeaderConfig (p :: Phase) Source #
Configuration for specific license header.
Constructors
HeaderConfig | |
Fields
|
Instances
type CtHeaderConfig = HeaderConfig 'Complete Source #
Alias for complete variant of HeaderConfig
.
type PtHeaderConfig = HeaderConfig 'Partial Source #
Alias for partial variant of HeaderConfig
.
Header Functions
type CtUpdateCopyrightConfig = UpdateCopyrightConfig 'Complete Source #
Alias for complete variant of UpdateCopyrightConfig
.
type PtUpdateCopyrightConfig = UpdateCopyrightConfig 'Partial Source #
Alias for partial variant of UpdateCopyrightConfig
.
data UpdateCopyrightConfig (p :: Phase) Source #
Main configuration for the Headroom.HeaderFn.UpdateCopyright license header function.
Constructors
UpdateCopyrightConfig | |
Fields
|
Instances
type CtHeaderFnConfig c = HeaderFnConfig 'Complete c Source #
Alias for complete variant of HeaderFnConfig
.
type PtHeaderFnConfig c = HeaderFnConfig 'Partial c Source #
Alias for partial variant of HeaderFnConfig
.
data HeaderFnConfig (p :: Phase) c Source #
Configuration for selected license header function.
Constructors
HeaderFnConfig | |
Fields
|
Instances
type CtHeaderFnConfigs = HeaderFnConfigs 'Complete Source #
Alias for complete variant of HeaderFnConfigs
.
type PtHeaderFnConfigs = HeaderFnConfigs 'Partial Source #
Alias for partial variant of HeaderFnConfigs
.
data HeaderFnConfigs (p :: Phase) Source #
Configuration of all known license header functions.
Constructors
HeaderFnConfigs | |
Fields
|
Instances
Additional Data Types
data HeaderSyntax Source #
Syntax of the license header comment.
Constructors
BlockComment Text Text | block (multi-line) comment syntax (e.g. |
LineComment Text | single line comment syntax (e.g. |
Instances
Eq HeaderSyntax Source # | |
Defined in Headroom.Configuration.Types | |
Show HeaderSyntax Source # | |
Defined in Headroom.Configuration.Types Methods showsPrec :: Int -> HeaderSyntax -> ShowS # show :: HeaderSyntax -> String # showList :: [HeaderSyntax] -> ShowS # |
Represents what action should the gen
command perform.
Constructors
GenConfigFile | generate YAML config file stub |
GenLicense (LicenseType, FileType) | generate license header template |
data LicenseType Source #
Supported type of open source license.
Constructors
Apache2 | support for Apache-2.0 license |
BSD3 | support for BSD-3-Clause license |
GPL2 | support for GNU GPL2 license |
GPL3 | support for GNU GPL3 license |
MIT | support for MIT license |
MPL2 | support for MPL2 license |
Instances
Represents what action should the run
command perform.
Constructors
Add | add mode for |
Check | check mode for |
Drop | drop mode for |
Replace | replace mode for |
data TemplateSource Source #
Source of license templates
Constructors
TemplateFiles [FilePath] | templates are stored as local files |
BuiltInTemplates LicenseType | use built-in templates for selected license |
Instances
Eq TemplateSource Source # | |
Defined in Headroom.Configuration.Types Methods (==) :: TemplateSource -> TemplateSource -> Bool # (/=) :: TemplateSource -> TemplateSource -> Bool # | |
Show TemplateSource Source # | |
Defined in Headroom.Configuration.Types Methods showsPrec :: Int -> TemplateSource -> ShowS # show :: TemplateSource -> String # showList :: [TemplateSource] -> ShowS # |