biegunka-core-0.1.0.0: DSL definitions, interpreters, templating

Safe HaskellNone

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

Verbatim copy

Template FilePath FilePath (forall t. ToSElem t => t -> String -> 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

User (Maybe String) 
Reacting (Maybe React) 
Wait (Set Int) 
Chain 

data PatchSpec Source

Patch settings

Constructors

PatchSpec 

Fields

strip :: Int

How many leading slashes to strip

reversely :: Bool

Apply in reverse?

Instances

data React Source

Failure reaction

Constructors

Ignorant 
Abortive 
Retry