taskfile

package
v3.38.11 Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2024 License: MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Dotenv

func Dotenv(c *compiler.Compiler, tf *ast.Taskfile, dir string) (*ast.Vars, error)

func Exists

func Exists(l *logger.Logger, path string) (string, error)

Exists will check if a file at the given path Exists. If it does, it will return the path to it. If it does not, it will search for any files at the given path 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.

func ExistsWalk

func ExistsWalk(l *logger.Logger, path string) (string, error)

ExistsWalk will check if a file at the given path exists by calling the exists function. If a file is not found, it will walk up the directory tree calling the exists function until it finds a file or reaches the root directory. On supported operating systems, it will also check if the user ID of the directory changes and abort if it does.

func RemoteExists

func RemoteExists(ctx context.Context, l *logger.Logger, 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

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

func NewBaseNode(dir string, opts ...NodeOption) *BaseNode

func (*BaseNode) Dir

func (node *BaseNode) Dir() string

func (*BaseNode) Parent

func (node *BaseNode) Parent() Node

type Cache

type Cache struct {
	// contains filtered or unexported fields
}

func NewCache

func NewCache(dir string) (*Cache, error)

func (*Cache) Clear

func (c *Cache) Clear() error

type FileNode

type FileNode struct {
	*BaseNode
	Entrypoint string
}

A FileNode is a node that reads a taskfile from the local filesystem.

func NewFileNode

func NewFileNode(l *logger.Logger, entrypoint, dir string, opts ...NodeOption) (*FileNode, error)

func (*FileNode) FilenameAndLastDir

func (node *FileNode) FilenameAndLastDir() (string, string)

func (*FileNode) Location

func (node *FileNode) Location() string

func (*FileNode) Read

func (node *FileNode) Read(ctx context.Context) ([]byte, error)

func (*FileNode) Remote

func (node *FileNode) Remote() bool

func (*FileNode) ResolveDir

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

func (*FileNode) ResolveEntrypoint

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

type HTTPNode

type HTTPNode struct {
	*BaseNode
	URL *url.URL
}

An HTTPNode is a node that reads a Taskfile from a remote location via HTTP.

func NewHTTPNode

func NewHTTPNode(
	l *logger.Logger,
	entrypoint string,
	dir string,
	insecure bool,
	timeout time.Duration,
	opts ...NodeOption,
) (*HTTPNode, error)

func (*HTTPNode) FilenameAndLastDir

func (node *HTTPNode) FilenameAndLastDir() (string, string)

func (*HTTPNode) Location

func (node *HTTPNode) Location() string

func (*HTTPNode) Read

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

func (*HTTPNode) Remote

func (node *HTTPNode) Remote() bool

func (*HTTPNode) ResolveDir

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

func (*HTTPNode) ResolveEntrypoint

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

type Node

type Node interface {
	Read(ctx context.Context) ([]byte, error)
	Parent() Node
	Location() string
	Dir() string
	Remote() bool
	ResolveEntrypoint(entrypoint string) (string, error)
	ResolveDir(dir string) (string, error)
	FilenameAndLastDir() (string, string)
}

func NewNode

func NewNode(
	l *logger.Logger,
	entrypoint string,
	dir string,
	insecure bool,
	timeout time.Duration,
	opts ...NodeOption,
) (Node, error)

func NewRootNode

func NewRootNode(
	l *logger.Logger,
	entrypoint string,
	dir string,
	insecure bool,
	timeout time.Duration,
) (Node, error)

type NodeOption

type NodeOption func(*BaseNode)

func WithParent

func WithParent(parent Node) NodeOption

type Reader

type Reader struct {
	// contains filtered or unexported fields
}

A Reader will recursively read Taskfiles from a given source using a directed acyclic graph (DAG).

func NewReader

func NewReader(
	node Node,
	insecure bool,
	download bool,
	offline bool,
	timeout time.Duration,
	tempDir string,
	logger *logger.Logger,
) *Reader

func (*Reader) Read

func (r *Reader) Read() (*ast.TaskfileGraph, error)

type StdinNode

type StdinNode struct {
	*BaseNode
}

A StdinNode is a node that reads a taskfile from the standard input stream.

func NewStdinNode

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

func (*StdinNode) FilenameAndLastDir

func (node *StdinNode) FilenameAndLastDir() (string, string)

func (*StdinNode) Location

func (node *StdinNode) Location() string

func (*StdinNode) Read

func (node *StdinNode) Read(ctx context.Context) ([]byte, error)

func (*StdinNode) Remote

func (node *StdinNode) Remote() bool

func (*StdinNode) ResolveDir

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

func (*StdinNode) ResolveEntrypoint

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