packages feed

hydra-build-0.17.5: src/main/haskell/Hydra/Encode/Build/Assembly.hs

-- Note: this is an automatically generated file. Do not edit.

-- | Term encoders for hydra.build.assembly

module Hydra.Encode.Build.Assembly where

import qualified Hydra.Build.Assembly as Assembly
import qualified Hydra.Core as Core
import qualified Hydra.Overlay.Haskell.Lib.Lists as Lists
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)
import qualified Data.Scientific as Sci

-- | Encoder for hydra.build.assembly.AssemblyEntry
assemblyEntry :: Assembly.AssemblyEntry -> Core.Term
assemblyEntry x =
    Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.build.assembly.AssemblyEntry"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "sourceTree"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Assembly.assemblyEntrySourceTree x))},
        Core.Field {
          Core.fieldName = (Core.Name "destTree"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Assembly.assemblyEntryDestTree x))},
        Core.Field {
          Core.fieldName = (Core.Name "kind"),
          Core.fieldTerm = (assemblyEntryKind (Assembly.assemblyEntryKind x))},
        Core.Field {
          Core.fieldName = (Core.Name "exclude"),
          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map (\x2 -> Core.TermLiteral (Core.LiteralString x2)) xs)) (Assembly.assemblyEntryExclude x))}]})

-- | Encoder for hydra.build.assembly.AssemblyEntryKind
assemblyEntryKind :: Assembly.AssemblyEntryKind -> Core.Term
assemblyEntryKind x =
    case x of
      Assembly.AssemblyEntryKindMerge -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.build.assembly.AssemblyEntryKind"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "merge"),
          Core.fieldTerm = Core.TermUnit}})
      Assembly.AssemblyEntryKindWipeThenCopy -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.build.assembly.AssemblyEntryKind"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "wipeThenCopy"),
          Core.fieldTerm = Core.TermUnit}})
      Assembly.AssemblyEntryKindSymlinkTree -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.build.assembly.AssemblyEntryKind"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "symlinkTree"),
          Core.fieldTerm = Core.TermUnit}})
      Assembly.AssemblyEntryKindSymlinkDir -> Core.TermInject (Core.Injection {
        Core.injectionTypeName = (Core.Name "hydra.build.assembly.AssemblyEntryKind"),
        Core.injectionField = Core.Field {
          Core.fieldName = (Core.Name "symlinkDir"),
          Core.fieldTerm = Core.TermUnit}})

-- | Encoder for hydra.build.assembly.AssemblyPlan
assemblyPlan :: Assembly.AssemblyPlan -> Core.Term
assemblyPlan x =
    Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.build.assembly.AssemblyPlan"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "entries"),
          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map assemblyEntry xs)) (Assembly.assemblyPlanEntries x))},
        Core.Field {
          Core.fieldName = (Core.Name "keepPaths"),
          Core.fieldTerm = ((\xs -> Core.TermList (Lists.map keepPathEntry xs)) (Assembly.assemblyPlanKeepPaths x))}]})

-- | Encoder for hydra.build.assembly.KeepPathEntry
keepPathEntry :: Assembly.KeepPathEntry -> Core.Term
keepPathEntry x =
    Core.TermRecord (Core.Record {
      Core.recordTypeName = (Core.Name "hydra.build.assembly.KeepPathEntry"),
      Core.recordFields = [
        Core.Field {
          Core.fieldName = (Core.Name "sourceSetDir"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Assembly.keepPathEntrySourceSetDir x))},
        Core.Field {
          Core.fieldName = (Core.Name "relPath"),
          Core.fieldTerm = ((\x2 -> Core.TermLiteral (Core.LiteralString x2)) (Assembly.keepPathEntryRelPath x))}]})