Documentation
¶
Index ¶
- func Dotenv(vars *ast.Vars, tf *ast.Taskfile, dir string) (*ast.Vars, error)
- func RemoteExists(ctx context.Context, u *url.URL) (*url.URL, error)
- type BaseNode
- type CacheNode
- func (node *CacheNode) ChecksumPrompt(checksum string) string
- func (node *CacheNode) CreateCacheDir() error
- func (node *CacheNode) Location() string
- func (node *CacheNode) Read() ([]byte, error)
- func (node *CacheNode) ReadChecksum() string
- func (node *CacheNode) ReadTimestamp() time.Time
- func (node *CacheNode) Write(data []byte) error
- func (node *CacheNode) WriteChecksum(checksum string) error
- func (node *CacheNode) WriteTimestamp(t time.Time) error
- type DebugFunc
- type FileNode
- type GitNode
- func (node *GitNode) CacheKey() string
- func (node *GitNode) Location() string
- func (node *GitNode) Read() ([]byte, error)
- func (node *GitNode) ReadContext(_ context.Context) ([]byte, error)
- func (node *GitNode) Remote() bool
- func (node *GitNode) ResolveDir(dir string) (string, error)
- func (node *GitNode) ResolveEntrypoint(entrypoint string) (string, error)
- type HTTPNode
- func (node *HTTPNode) CacheKey() string
- func (node *HTTPNode) Location() string
- func (node *HTTPNode) Read() ([]byte, error)
- func (node *HTTPNode) ReadContext(ctx context.Context) ([]byte, error)
- func (node *HTTPNode) ResolveDir(dir string) (string, error)
- func (node *HTTPNode) ResolveEntrypoint(entrypoint string) (string, error)
- type Node
- type NodeOption
- type PromptFunc
- type Reader
- type ReaderOption
- func WithCacheExpiryDuration(duration time.Duration) ReaderOption
- func WithDebugFunc(debugFunc DebugFunc) ReaderOption
- func WithDownload(download bool) ReaderOption
- func WithInsecure(insecure bool) ReaderOption
- func WithOffline(offline bool) ReaderOption
- func WithPromptFunc(promptFunc PromptFunc) ReaderOption
- func WithTempDir(tempDir string) ReaderOption
- type RemoteNode
- type Snippet
- type SnippetOption
- type StdinNode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RemoteExists ¶ added in v3.36.0
RemoteExists will check if a file at the given URL Exists. If it does, it will return its URL. If it does not, it will search the search for any files at the given URL with any of the default Taskfile files names. If any of these match a file, the first matching path will be returned. If no files are found, an error will be returned.
Types ¶
type BaseNode ¶ added in v3.34.0
type BaseNode struct {
// contains filtered or unexported fields
}
BaseNode is a generic node that implements the Parent() methods of the NodeReader interface. It does not implement the Read() method and it designed to be embedded in other node types so that this boilerplate code does not need to be repeated.
func NewBaseNode ¶ added in v3.34.0
func NewBaseNode(dir string, opts ...NodeOption) *BaseNode
type CacheNode ¶ added in v3.43.0
type CacheNode struct { *BaseNode // contains filtered or unexported fields }
func NewCacheNode ¶ added in v3.43.0
func NewCacheNode(source RemoteNode, dir string) *CacheNode
func (*CacheNode) ChecksumPrompt ¶ added in v3.43.0
func (*CacheNode) CreateCacheDir ¶ added in v3.43.0
func (*CacheNode) ReadChecksum ¶ added in v3.43.0
func (*CacheNode) ReadTimestamp ¶ added in v3.43.0
func (*CacheNode) WriteChecksum ¶ added in v3.43.0
type DebugFunc ¶ added in v3.43.0
type DebugFunc func(string)
DebugFunc is a function that can be called to log debug messages.
type FileNode ¶ added in v3.34.0
A FileNode is a node that reads a taskfile from the local filesystem.
func NewFileNode ¶ added in v3.34.0
func NewFileNode(entrypoint, dir string, opts ...NodeOption) (*FileNode, error)
func (*FileNode) ResolveDir ¶ added in v3.36.0
type GitNode ¶ added in v3.40.0
An GitNode is a node that reads a Taskfile from a remote location via Git.
func NewGitNode ¶ added in v3.40.0
func (*GitNode) ReadContext ¶ added in v3.43.0
func (*GitNode) ResolveDir ¶ added in v3.40.0
type HTTPNode ¶ added in v3.34.0
type HTTPNode struct { *BaseNode URL *url.URL // stores url pointing actual remote file. (e.g. with Taskfile.yml) // contains filtered or unexported fields }
An HTTPNode is a node that reads a Taskfile from a remote location via HTTP.
func NewHTTPNode ¶ added in v3.34.0
func (*HTTPNode) ReadContext ¶ added in v3.43.0
func (*HTTPNode) ResolveDir ¶ added in v3.36.0
type Node ¶ added in v3.34.0
type Node interface { Read() ([]byte, error) Parent() Node Location() string Dir() string ResolveEntrypoint(entrypoint string) (string, error) ResolveDir(dir string) (string, error) }
type NodeOption ¶ added in v3.34.0
type NodeOption func(*BaseNode)
func WithParent ¶ added in v3.34.0
func WithParent(parent Node) NodeOption
type PromptFunc ¶ added in v3.43.0
PromptFunc is a function that can be called to prompt the user for input.
type Reader ¶ added in v3.37.0
type Reader struct {
// contains filtered or unexported fields
}
A Reader will recursively read Taskfiles from a given Node and build a ast.TaskfileGraph from them.
func NewReader ¶ added in v3.37.0
func NewReader(opts ...ReaderOption) *Reader
NewReader constructs a new Taskfile Reader using the given Node and options.
func (*Reader) Options ¶ added in v3.43.0
func (r *Reader) Options(opts ...ReaderOption)
Options loops through the given ReaderOption functions and applies them to the Reader.
func (*Reader) Read ¶ added in v3.37.0
Read will read the Taskfile defined by the Reader's Node and recurse through any ast.Includes it finds, reading each included Taskfile and building an ast.TaskfileGraph as it goes. If any errors occur, they will be returned immediately.
type ReaderOption ¶ added in v3.42.0
type ReaderOption interface {
ApplyToReader(*Reader)
}
A ReaderOption is any type that can apply a configuration to a Reader.
func WithCacheExpiryDuration ¶ added in v3.43.0
func WithCacheExpiryDuration(duration time.Duration) ReaderOption
WithCacheExpiryDuration sets the duration after which the cache is considered expired. By default, the cache is considered expired after 24 hours.
func WithDebugFunc ¶ added in v3.42.0
func WithDebugFunc(debugFunc DebugFunc) ReaderOption
WithDebugFunc sets the debug function to be used by the Reader. If set, this function will be called with debug messages. This can be useful if the caller wants to log debug messages from the Reader. By default, no debug function is set and the logs are not written.
func WithDownload ¶ added in v3.42.0
func WithDownload(download bool) ReaderOption
WithDownload forces the Reader to download a fresh copy of the taskfile from the remote source.
func WithInsecure ¶ added in v3.42.0
func WithInsecure(insecure bool) ReaderOption
WithInsecure allows the Reader to make insecure connections when reading remote taskfiles. By default, insecure connections are rejected.
func WithOffline ¶ added in v3.42.0
func WithOffline(offline bool) ReaderOption
WithOffline stops the Reader from being able to make network connections. It will still be able to read local files and cached copies of remote files.
func WithPromptFunc ¶ added in v3.42.0
func WithPromptFunc(promptFunc PromptFunc) ReaderOption
WithPromptFunc sets the prompt function to be used by the Reader. If set, this function will be called with prompt messages. The function should optionally log the message to the user and return nil if the prompt is accepted and the execution should continue. Otherwise, it should return an error which describes why the prompt was rejected. This can then be caught and used later when calling the Reader.Read method. By default, no prompt function is set and all prompts are automatically accepted.
func WithTempDir ¶ added in v3.42.0
func WithTempDir(tempDir string) ReaderOption
WithTempDir sets the temporary directory that will be used by the Reader. By default, the reader uses os.TempDir.
type RemoteNode ¶ added in v3.43.0
type Snippet ¶ added in v3.42.0
type Snippet struct {
// contains filtered or unexported fields
}
A Snippet is a syntax highlighted snippet of a Taskfile with optional padding and a line and column indicator.
func NewSnippet ¶ added in v3.42.0
func NewSnippet(b []byte, opts ...SnippetOption) *Snippet
NewSnippet creates a new Snippet from a byte slice and a line and column number. The line and column numbers should be 1-indexed. For example, the first character in the file would be 1:1 (line 1, column 1). The padding determines the number of lines to include before and after the chosen line.
func (*Snippet) Options ¶ added in v3.43.0
func (s *Snippet) Options(opts ...SnippetOption)
Options loops through the given SnippetOption functions and applies them to the Snippet.
type SnippetOption ¶ added in v3.42.0
type SnippetOption interface {
ApplyToSnippet(*Snippet)
}
A SnippetOption is any type that can apply a configuration to a Snippet.
func WithColumn ¶ added in v3.43.0
func WithColumn(column int) SnippetOption
WithColumn specifies the column number that the Snippet should point to.
func WithLine ¶ added in v3.43.0
func WithLine(line int) SnippetOption
WithLine specifies the line number that the Snippet should center around and point to.
func WithNoIndicators ¶ added in v3.43.0
func WithNoIndicators() SnippetOption
WithNoIndicators specifies that the Snippet should not include line or column indicators.
func WithPadding ¶ added in v3.43.0
func WithPadding(padding int) SnippetOption
WithPadding specifies the number of lines to include before and after the selected line in the Snippet.
type StdinNode ¶ added in v3.35.0
type StdinNode struct {
*BaseNode
}
A StdinNode is a node that reads a taskfile from the standard input stream.