domain

package
v2.0.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 7, 2018 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Package domain is the domain layer. It provides common structs and interfaces for other layers and reduces dependencies between other layers. It must not depend on other layers.

Index

Constants

View Source
const Version = "2.0.0"

Version is the go-gencfg's version.

Variables

This section is empty.

Functions

This section is empty.

Types

type CLIContext

type CLIContext interface {
	String(string) string
	Bool(string) bool
	Args() cli.Args
}

CLIContext represents a urfave.cli interface.

type Cfg

type Cfg struct {
	Formatters   []string               `yaml:"formatters"`
	Dest         string                 `yaml:"dest"`
	Pkg          string                 `yaml:"package"`
	PkgName      string                 `yaml:"package_name"`
	TemplatePath string                 `yaml:"template"`
	CfgFileParam Param                  `yaml:"config_file_param"`
	Default      Default                `yaml:"default"`
	Params       []Param                `yaml:"params"`
	Ext          map[string]interface{} `yaml:"ext"`
}

Cfg represents the configuration.

type CfgReader

type CfgReader interface {
	Read(src string) (Cfg, error)
}

CfgReader represents the command configuration reader.

type CfgUsecase

type CfgUsecase interface {
	HasFlag(FlagUsecase, Cfg) bool
	GetPkg(Cfg) string
	GetPkgName(Cfg) string
	Update(*Cfg)
}

CfgUsecase represents application logic about Cfg

type CmdExecuter

type CmdExecuter interface {
	Exec(cmd, dest string) error
}

CmdExecuter executes a command.

type CodeGenerater

type CodeGenerater interface {
	Exec(dest, tmpl string, config TemplateData) error
}

CodeGenerater generates code at files with a template and data.

type CompareArgs

type CompareArgs struct {
	Src          string
	Dest         string
	TmplPath     string
	IsQuiet      bool
	IsFailure    bool
	Reader       FileReader
	Renderer     TemplateRenderer
	CfgReader    CfgReader
	Executer     CmdExecuter
	StrFormatter StrFormatter
	CfgUC        CfgUsecase
	EnvUC        EnvUsecase
	FlagUC       FlagUsecase
	ParamUC      ParamUsecase
}

CompareArgs is an argument of usecase.Compare .

type Default

type Default struct {
	Env  Env                    `yaml:"env"`
	Flag Flag                   `yaml:"flag"`
	Ext  map[string]interface{} `yaml:"ext"`
}

Default represents a default configuration.

type DirMaker

type DirMaker interface {
	Make(dest string) error
}

DirMaker makes a directory.

type Env

type Env struct {
	Name   *string                `yaml:"name"`
	Prefix *string                `yaml:"prefix"`
	Bind   *bool                  `yaml:"bind"`
	Ext    map[string]interface{} `yaml:"ext"`
}

Env represents environment variable.

type EnvUsecase

type EnvUsecase interface {
	IsBind(e Env, def *bool) bool
	GetPrefix(e Env, gPrefix *string) string
	GetName(e Env, pName string, gPrefix *string) string
}

EnvUsecase represents application logic about Env

type FileExist

type FileExist interface {
	Exist(src string) bool
}

FileExist checks whether a file exists.

type FileReader

type FileReader interface {
	Read(src string) (string, error)
}

FileReader reads a file.

type FileWriter

type FileWriter interface {
	Write(dest string, data []byte) error
}

FileWriter writes data to a file.

type Flag

type Flag struct {
	Description *string                `yaml:"description"`
	Name        *string                `yaml:"name"`
	Short       *string                `yaml:"short"`
	Bind        *bool                  `yaml:"bind"`
	Ext         map[string]interface{} `yaml:"ext"`
}

Flag represents a command line flag.

type FlagUsecase

type FlagUsecase interface {
	IsBind(f Flag, def *bool) bool
}

FlagUsecase represents application logic about Env

type GenCfgFileArgs

type GenCfgFileArgs struct {
	Src       string
	Dest      string
	TmplPath  string
	Reader    FileReader
	CfgReader CfgReader
	Generater CodeGenerater
	Executer  CmdExecuter
	CfgUC     CfgUsecase
	EnvUC     EnvUsecase
	FlagUC    FlagUsecase
	ParamUC   ParamUsecase
}

GenCfgFileArgs is an argument of usecase.GenCfgFile .

type InitGenCfgFileArgs

type InitGenCfgFileArgs struct {
	Dest     string
	TmplDest string
	PNames   []string
	Renderer TemplateRenderer
	Writer   FileWriter
	Exist    FileExist
}

InitGenCfgFileArgs is an argument of usecase.InitGenCfgFile .

type Param

type Param struct {
	Name          string                 `yaml:"name"`
	CamelCaseName string                 `yaml:"camel_case_name"`
	Type          string                 `yaml:"type"`
	Description   string                 `yaml:"description"`
	Default       interface{}            `yaml:"default"`
	Flag          Flag                   `yaml:"flag"`
	Env           Env                    `yaml:"env"`
	Ext           map[string]interface{} `yaml:"ext"`
}

Param represents a parameter.

type ParamUsecase

type ParamUsecase interface {
	IsSetDefault(p Param) bool
	GetDefaultStr(p Param) string
	GetFlagName(p Param) string
	GetFlagDescription(p Param) string
	GetEnvName(p Param) string
	CamelCaseName(p Param) string
	CamelCaseLowerName(p Param) string
	GetType(p Param) string
	GetPFlagName(p Param) string
	GetViperGetterName(p Param) string
}

ParamUsecase represents application logic about Env

type Params

type Params []Param

Params is array of Param which can be sorted by param's name.

func (Params) Len

func (p Params) Len() int

Len is the implementation of the sort.Interface interface.

func (Params) Less

func (p Params) Less(i, j int) bool

Less is the implementation of the sort.Interface interface.

func (Params) Swap

func (p Params) Swap(i, j int)

Swap is the implementation of the sort.Interface interface.

type StrFormatter

type StrFormatter interface {
	Format(dest, text string, formatters []string, reader FileReader, executer CmdExecuter) (string, error)
}

StrFormatter formats a string running commands.

type TemplateData

type TemplateData struct {
	Cfg     Cfg
	CfgUC   CfgUsecase
	EnvUC   EnvUsecase
	FlagUC  FlagUsecase
	ParamUC ParamUsecase
}

TemplateData is the argument of domain.TemplateRenderer.Render .

type TemplateRenderer

type TemplateRenderer interface {
	Render(txt string, data interface{}) (string, error)
}

TemplateRenderer renders a template with data.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL