biegunka-0.2: DSL definitions, interpreters, templating, git support

Safe HaskellNone

Control.Biegunka.Language

Description

Specifies configuration language

Synopsis

Documentation

data Scope Source

Language terms scopes [kind]

Constructors

Actions 
Sources 

data Term whereSource

Language terms datatype.

Biegunka.Primitive contains DSL primitives constructed using these terms (and annotations).

User should *never* have a need to construct any DSL term using these manually.

Consists of 2 scopes (Actions and Sources) and also scope-agnostic modifiers.

Constructors

TS :: f Sources -> Source -> Free (Term f Actions) () -> x -> Term f Sources x 
TA :: f Actions -> Action -> x -> Term f Actions x 
TM :: Modifier -> x -> Term f s x 

Instances

Functor (Term f s) 
Foldable (Term f s) 
Traversable (Term f s) 
Copointed (Term f s)

Peek next Term

data Action Source

Actions scope terms data

Constructors

Link FilePath FilePath

Symbolic link

Copy FilePath FilePath CopySpec

Verbatim copy

Template FilePath FilePath (forall t. TemplateSystem t => t -> Text -> Text)

Copy with template substitutions

Command FilePath CmdSpec

External command

Patch FilePath FilePath PatchSpec

Patch

data Source Source

Sources scope terms data

Constructors

Source 

Fields

stype :: String

Source type

suri :: String

URI where source is located

spath :: FilePath

Where to emerge source on FS (relative to Biegunka root setting)

supdate :: FilePath -> IO ()

How to update source

data Modifier Source

Modificators for other datatypes

Constructors

Wait (Set Token) 

data PatchSpec Source

Patch settings

Constructors

PatchSpec 

Fields

strip :: Int

How many leading slashes to strip

reversely :: Bool

Apply in reverse?

Instances

data Token Source

Token.

Supposedly, the only way to get tokens is using tokens, so they are somewhat unique