headroom-0.4.3.0: License Header Manager
Copyright(c) 2019-2022 Vaclav Svejcar
LicenseBSD-3-Clause
Maintainervaclav.svejcar@gmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Headroom.Config.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

Error Types

data ConfigurationKey Source #

Represents single key in the configuration.

Constructors

CkFileExtensions FileType

no configuration for file-extensions

CkHeaderSyntax FileType

no configuration for header syntax

CkMarginTopCode FileType

no configuration for margin between header top and preceding code

CkMarginTopFile FileType

no configuration for margin between header top and start of file

CkMarginBottomCode FileType

no configuration for margin between header bottom and following code

CkMarginBottomFile FileType

no configuration for margin between header bottom and end of file

CkPutAfter FileType

no configuration for put-after

CkPutBefore FileType

no configuration for put-before

CkRunMode

no configuration for run-mode

CkSourcePaths

no configuration for source-paths

CkExcludedPaths

no configuration for excluded-paths

CkExcludeIgnoredPaths

no configuration for exclude-ignored-paths

CkBuiltInTemplates

no configuration for built in templates

CkVariables

no configuration for variables

CkEnabled

no configuration for enabled

Type Families

data Phase Source #

Data type representing state of given configuration data type.

Constructors

Partial

partial configuration, could be combined with another or validated to produce the complete configuration

Complete

complete configuration, result of combining and validation of partial configuration

type family (p :: Phase) ::: a where ... Source #

Closed type family used to express the phase of given data type.

Equations

'Partial ::: a = Last a 
'Complete ::: a = a 

Data Types

Top Level Configuration

data AppConfig (p :: Phase) Source #

Application configuration.

Constructors

AppConfig 

Fields

Instances

Instances details
Eq PtAppConfig Source # 
Instance details

Defined in Headroom.Config.Types

Eq CtAppConfig Source # 
Instance details

Defined in Headroom.Config.Types

Show PtAppConfig Source # 
Instance details

Defined in Headroom.Config.Types

Show CtAppConfig Source # 
Instance details

Defined in Headroom.Config.Types

Generic PtAppConfig Source # 
Instance details

Defined in Headroom.Config.Types

Associated Types

type Rep PtAppConfig :: Type -> Type #

Semigroup PtAppConfig Source # 
Instance details

Defined in Headroom.Config.Types

Monoid PtAppConfig Source # 
Instance details

Defined in Headroom.Config.Types

FromJSON PtAppConfig Source # 
Instance details

Defined in Headroom.Config.Types

type Rep PtAppConfig Source # 
Instance details

Defined in Headroom.Config.Types

type CtAppConfig = AppConfig 'Complete Source #

Alias for complete variant of AppConfig.

type PtAppConfig = AppConfig 'Partial Source #

Alias for partial variant of AppConfig.

data HeadersConfig (p :: Phase) Source #

Group of HeaderConfig configurations for supported file types.

Constructors

HeadersConfig 

Fields

Instances

Instances details
Eq PtHeadersConfig Source # 
Instance details

Defined in Headroom.Config.Types

Eq CtHeadersConfig Source # 
Instance details

Defined in Headroom.Config.Types

Show PtHeadersConfig Source # 
Instance details

Defined in Headroom.Config.Types

Show CtHeadersConfig Source # 
Instance details

Defined in Headroom.Config.Types

Generic PtHeadersConfig Source # 
Instance details

Defined in Headroom.Config.Types

Associated Types

type Rep PtHeadersConfig :: Type -> Type #

Semigroup PtHeadersConfig Source # 
Instance details

Defined in Headroom.Config.Types

Monoid PtHeadersConfig Source # 
Instance details

Defined in Headroom.Config.Types

FromJSON PtHeadersConfig Source # 
Instance details

Defined in Headroom.Config.Types

type Rep PtHeadersConfig Source # 
Instance details

Defined in Headroom.Config.Types

type Rep PtHeadersConfig = D1 ('MetaData "HeadersConfig" "Headroom.Config.Types" "headroom-0.4.3.0-CM44re29obUF0crFUQ0ru0" 'False) (C1 ('MetaCons "HeadersConfig" 'PrefixI 'True) (((S1 ('MetaSel ('Just "hscC") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)) :*: (S1 ('MetaSel ('Just "hscCpp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)) :*: S1 ('MetaSel ('Just "hscCss") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)))) :*: ((S1 ('MetaSel ('Just "hscDart") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)) :*: S1 ('MetaSel ('Just "hscGo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial))) :*: (S1 ('MetaSel ('Just "hscHaskell") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)) :*: S1 ('MetaSel ('Just "hscHtml") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial))))) :*: (((S1 ('MetaSel ('Just "hscJava") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)) :*: S1 ('MetaSel ('Just "hscJs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial))) :*: (S1 ('MetaSel ('Just "hscKotlin") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)) :*: S1 ('MetaSel ('Just "hscPhp") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)))) :*: ((S1 ('MetaSel ('Just "hscPureScript") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)) :*: S1 ('MetaSel ('Just "hscRust") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial))) :*: (S1 ('MetaSel ('Just "hscScala") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)) :*: S1 ('MetaSel ('Just "hscShell") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (HeaderConfig 'Partial)))))))

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

Instances details
Eq PtHeaderConfig Source # 
Instance details

Defined in Headroom.Config.Types

Eq CtHeaderConfig Source # 
Instance details

Defined in Headroom.Config.Types

Show PtHeaderConfig Source # 
Instance details

Defined in Headroom.Config.Types

Show CtHeaderConfig Source # 
Instance details

Defined in Headroom.Config.Types

Generic PtHeaderConfig Source # 
Instance details

Defined in Headroom.Config.Types

Associated Types

type Rep PtHeaderConfig :: Type -> Type #

Semigroup PtHeaderConfig Source # 
Instance details

Defined in Headroom.Config.Types

Monoid PtHeaderConfig Source # 
Instance details

Defined in Headroom.Config.Types

FromJSON PtHeaderConfig Source # 
Instance details

Defined in Headroom.Config.Types

type Rep PtHeaderConfig Source # 
Instance details

Defined in Headroom.Config.Types

type CtHeaderConfig = HeaderConfig 'Complete Source #

Alias for complete variant of HeaderConfig.

type PtHeaderConfig = HeaderConfig 'Partial Source #

Alias for partial variant of HeaderConfig.

Header Functions

data UpdateCopyrightConfig (p :: Phase) Source #

Main configuration for the Headroom.PostProcess.UpdateCopyright post-processor.

Constructors

UpdateCopyrightConfig 

Fields

Instances

Instances details
Eq PtUpdateCopyrightConfig Source # 
Instance details

Defined in Headroom.Config.Types

Eq CtUpdateCopyrightConfig Source # 
Instance details

Defined in Headroom.Config.Types

Show PtUpdateCopyrightConfig Source # 
Instance details

Defined in Headroom.Config.Types

Show CtUpdateCopyrightConfig Source # 
Instance details

Defined in Headroom.Config.Types

Generic PtUpdateCopyrightConfig Source # 
Instance details

Defined in Headroom.Config.Types

Associated Types

type Rep PtUpdateCopyrightConfig :: Type -> Type #

Semigroup PtUpdateCopyrightConfig Source # 
Instance details

Defined in Headroom.Config.Types

Monoid PtUpdateCopyrightConfig Source # 
Instance details

Defined in Headroom.Config.Types

FromJSON PtUpdateCopyrightConfig Source # 
Instance details

Defined in Headroom.Config.Types

type Rep PtUpdateCopyrightConfig Source # 
Instance details

Defined in Headroom.Config.Types

type Rep PtUpdateCopyrightConfig = D1 ('MetaData "UpdateCopyrightConfig" "Headroom.Config.Types" "headroom-0.4.3.0-CM44re29obUF0crFUQ0ru0" 'False) (C1 ('MetaCons "UpdateCopyrightConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "uccSelectedAuthors") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ('Partial ::: Maybe (NonEmpty Text)))))

type CtPostProcessConfig c = PostProcessConfig 'Complete c Source #

Alias for complete variant of PostProcessConfig.

type PtPostProcessConfig c = PostProcessConfig 'Partial c Source #

Alias for partial variant of PostProcessConfig.

data PostProcessConfig (p :: Phase) c Source #

Configuration for selected post-processor.

Constructors

PostProcessConfig 

Fields

Instances

Instances details
Eq (c 'Partial) => Eq (PtPostProcessConfig c) Source # 
Instance details

Defined in Headroom.Config.Types

Eq (c 'Complete) => Eq (CtPostProcessConfig c) Source # 
Instance details

Defined in Headroom.Config.Types

Show (c 'Partial) => Show (PtPostProcessConfig c) Source # 
Instance details

Defined in Headroom.Config.Types

Show (c 'Complete) => Show (CtPostProcessConfig c) Source # 
Instance details

Defined in Headroom.Config.Types

Generic (PtPostProcessConfig c) Source # 
Instance details

Defined in Headroom.Config.Types

Associated Types

type Rep (PtPostProcessConfig c) :: Type -> Type #

Semigroup (c 'Partial) => Semigroup (PtPostProcessConfig c) Source # 
Instance details

Defined in Headroom.Config.Types

Monoid (c 'Partial) => Monoid (PtPostProcessConfig c) Source # 
Instance details

Defined in Headroom.Config.Types

(FromJSON (c 'Partial), Monoid (c 'Partial)) => FromJSON (PtPostProcessConfig c) Source # 
Instance details

Defined in Headroom.Config.Types

type Rep (PtPostProcessConfig c) Source # 
Instance details

Defined in Headroom.Config.Types

type Rep (PtPostProcessConfig c) = D1 ('MetaData "PostProcessConfig" "Headroom.Config.Types" "headroom-0.4.3.0-CM44re29obUF0crFUQ0ru0" 'False) (C1 ('MetaCons "PostProcessConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "ppcEnabled") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ('Partial ::: Bool)) :*: S1 ('MetaSel ('Just "ppcConfig") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (c 'Partial))))

data PostProcessConfigs (p :: Phase) Source #

Configuration of all known post-processors.

Instances

Instances details
Eq PtPostProcessConfigs Source # 
Instance details

Defined in Headroom.Config.Types

Eq CtPostProcessConfigs Source # 
Instance details

Defined in Headroom.Config.Types

Show PtPostProcessConfigs Source # 
Instance details

Defined in Headroom.Config.Types

Show CtPostProcessConfigs Source # 
Instance details

Defined in Headroom.Config.Types

Generic PtPostProcessConfigs Source # 
Instance details

Defined in Headroom.Config.Types

Associated Types

type Rep PtPostProcessConfigs :: Type -> Type #

Semigroup PtPostProcessConfigs Source # 
Instance details

Defined in Headroom.Config.Types

Monoid PtPostProcessConfigs Source # 
Instance details

Defined in Headroom.Config.Types

FromJSON PtPostProcessConfigs Source # 
Instance details

Defined in Headroom.Config.Types

type Rep PtPostProcessConfigs Source # 
Instance details

Defined in Headroom.Config.Types

type Rep PtPostProcessConfigs = D1 ('MetaData "PostProcessConfigs" "Headroom.Config.Types" "headroom-0.4.3.0-CM44re29obUF0crFUQ0ru0" 'False) (C1 ('MetaCons "PostProcessConfigs" 'PrefixI 'True) (S1 ('MetaSel ('Just "ppcsUpdateCopyright") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (PostProcessConfig 'Partial UpdateCopyrightConfig))))

Additional Data Types

data HeaderSyntax Source #

Syntax of the license header comment.

Constructors

BlockComment Regex Regex (Maybe Text)

block (multi-line) comment syntax (e.g. * *)

LineComment Regex (Maybe Text)

single line comment syntax (e.g. //)

Instances

Instances details
Eq HeaderSyntax Source # 
Instance details

Defined in Headroom.Config.Types

Show HeaderSyntax Source # 
Instance details

Defined in Headroom.Config.Types

data GenMode Source #

Represents what action should the gen command perform.

Constructors

GenConfigFile

generate YAML config file stub

GenLicense (LicenseType, FileType)

generate license header template

Instances

Instances details
Eq GenMode Source # 
Instance details

Defined in Headroom.Config.Types

Methods

(==) :: GenMode -> GenMode -> Bool #

(/=) :: GenMode -> GenMode -> Bool #

Show GenMode Source # 
Instance details

Defined in Headroom.Config.Types

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

Instances details
Bounded LicenseType Source # 
Instance details

Defined in Headroom.Types

Enum LicenseType Source # 
Instance details

Defined in Headroom.Types

Eq LicenseType Source # 
Instance details

Defined in Headroom.Types

Ord LicenseType Source # 
Instance details

Defined in Headroom.Types

Show LicenseType Source # 
Instance details

Defined in Headroom.Types

FromJSON LicenseType Source # 
Instance details

Defined in Headroom.Types

EnumExtra LicenseType Source # 
Instance details

Defined in Headroom.Types

data RunMode Source #

Represents what action should the run command perform.

Constructors

Add

add mode for run command

Check

check mode for run command

Drop

drop mode for run command

Replace

replace mode for run command

Instances

Instances details
Eq RunMode Source # 
Instance details

Defined in Headroom.Config.Types

Methods

(==) :: RunMode -> RunMode -> Bool #

(/=) :: RunMode -> RunMode -> Bool #

Show RunMode Source # 
Instance details

Defined in Headroom.Config.Types

FromJSON RunMode Source # 
Instance details

Defined in Headroom.Config.Types