taskfile

package
v3.43.3 Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2025 License: MIT Imports: 36 Imported by: 8

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Dotenv added in v3.34.0

func Dotenv(vars *ast.Vars, tf *ast.Taskfile, dir string) (*ast.Vars, error)

func RemoteExists added in v3.36.0

func RemoteExists(ctx context.Context, u *url.URL) (*url.URL, error)

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

func (*BaseNode) Dir added in v3.36.0

func (node *BaseNode) Dir() string

func (*BaseNode) Parent added in v3.34.0

func (node *BaseNode) Parent() Node

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 (node *CacheNode) ChecksumPrompt(checksum string) string

func (*CacheNode) CreateCacheDir added in v3.43.0

func (node *CacheNode) CreateCacheDir() error

func (*CacheNode) Location added in v3.43.0

func (node *CacheNode) Location() string

func (*CacheNode) Read added in v3.43.0

func (node *CacheNode) Read() ([]byte, error)

func (*CacheNode) ReadChecksum added in v3.43.0

func (node *CacheNode) ReadChecksum() string

func (*CacheNode) ReadTimestamp added in v3.43.0

func (node *CacheNode) ReadTimestamp() time.Time

func (*CacheNode) Write added in v3.43.0

func (node *CacheNode) Write(data []byte) error

func (*CacheNode) WriteChecksum added in v3.43.0

func (node *CacheNode) WriteChecksum(checksum string) error

func (*CacheNode) WriteTimestamp added in v3.43.0

func (node *CacheNode) WriteTimestamp(t time.Time) error

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

type FileNode struct {
	*BaseNode
	Entrypoint string
}

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) Location added in v3.34.0

func (node *FileNode) Location() string

func (*FileNode) Read added in v3.34.0

func (node *FileNode) Read() ([]byte, error)

func (*FileNode) ResolveDir added in v3.36.0

func (node *FileNode) ResolveDir(dir string) (string, error)

func (*FileNode) ResolveEntrypoint added in v3.36.0

func (node *FileNode) ResolveEntrypoint(entrypoint string) (string, error)

type GitNode added in v3.40.0

type GitNode struct {
	*BaseNode
	URL *url.URL
	// contains filtered or unexported fields
}

An GitNode is a node that reads a Taskfile from a remote location via Git.

func NewGitNode added in v3.40.0

func NewGitNode(
	entrypoint string,
	dir string,
	insecure bool,
	opts ...NodeOption,
) (*GitNode, error)

func (*GitNode) CacheKey added in v3.43.0

func (node *GitNode) CacheKey() string

func (*GitNode) Location added in v3.40.0

func (node *GitNode) Location() string

func (*GitNode) Read added in v3.40.0

func (node *GitNode) Read() ([]byte, error)

func (*GitNode) ReadContext added in v3.43.0

func (node *GitNode) ReadContext(_ context.Context) ([]byte, error)

func (*GitNode) Remote added in v3.40.0

func (node *GitNode) Remote() bool

func (*GitNode) ResolveDir added in v3.40.0

func (node *GitNode) ResolveDir(dir string) (string, error)

func (*GitNode) ResolveEntrypoint added in v3.40.0

func (node *GitNode) ResolveEntrypoint(entrypoint string) (string, error)

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 NewHTTPNode(
	entrypoint string,
	dir string,
	insecure bool,
	opts ...NodeOption,
) (*HTTPNode, error)

func (*HTTPNode) CacheKey added in v3.43.0

func (node *HTTPNode) CacheKey() string

func (*HTTPNode) Location added in v3.34.0

func (node *HTTPNode) Location() string

func (*HTTPNode) Read added in v3.34.0

func (node *HTTPNode) Read() ([]byte, error)

func (*HTTPNode) ReadContext added in v3.43.0

func (node *HTTPNode) ReadContext(ctx context.Context) ([]byte, error)

func (*HTTPNode) ResolveDir added in v3.36.0

func (node *HTTPNode) ResolveDir(dir string) (string, error)

func (*HTTPNode) ResolveEntrypoint added in v3.36.0

func (node *HTTPNode) ResolveEntrypoint(entrypoint string) (string, error)

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)
}

func NewNode added in v3.34.0

func NewNode(
	entrypoint string,
	dir string,
	insecure bool,
	opts ...NodeOption,
) (Node, error)

func NewRootNode added in v3.35.0

func NewRootNode(
	entrypoint string,
	dir string,
	insecure bool,
	timeout time.Duration,
) (Node, 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

type PromptFunc func(string) error

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

func (r *Reader) Read(ctx context.Context, node Node) (*ast.TaskfileGraph, error)

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 RemoteNode interface {
	Node
	ReadContext(ctx context.Context) ([]byte, error)
	CacheKey() string
}

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.

func (*Snippet) String added in v3.42.0

func (s *Snippet) String() string

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.

func NewStdinNode added in v3.35.0

func NewStdinNode(dir string) (*StdinNode, error)

func (*StdinNode) Location added in v3.35.0

func (node *StdinNode) Location() string

func (*StdinNode) Read added in v3.35.0

func (node *StdinNode) Read() ([]byte, error)

func (*StdinNode) Remote added in v3.35.0

func (node *StdinNode) Remote() bool

func (*StdinNode) ResolveDir added in v3.36.0

func (node *StdinNode) ResolveDir(dir string) (string, error)

func (*StdinNode) ResolveEntrypoint added in v3.36.0

func (node *StdinNode) ResolveEntrypoint(entrypoint string) (string, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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