1
0
mirror of https://github.com/go-task/task.git synced 2025-06-23 00:38:19 +02:00

feat: remote taskfiles (HTTP) (#1152)

* feat: remote taskfiles over http

* feat: allow insecure connections when --insecure flag is provided

* feat: better error handling for fetch errors

* fix: ensure cache directory always exists

* fix: setup logger before everything else

* feat: put remote taskfiles behind an experiment

* feat: --download and --offline flags for remote taskfiles

* feat: node.Read accepts a context

* feat: experiment docs

* chore: changelog

* chore: remove unused optional param from Node interface

* chore: tidy up and generalise NewNode function

* fix: use sha256 in remote checksum

* feat: --download by itself will not run a task

* feat: custom error if remote taskfiles experiment is not enabled

* refactor: BaseNode functional options and simplified FileNode

* fix: use hex encoding for checksum instead of b64
This commit is contained in:
Pete Davison
2023-09-12 16:42:54 -05:00
committed by GitHub
parent 84ad0056e4
commit 22ce67c5e5
19 changed files with 611 additions and 120 deletions

View File

@ -23,21 +23,18 @@ import (
)
func (e *Executor) Setup() error {
e.setupLogger()
if err := e.setCurrentDir(); err != nil {
return err
}
if err := e.readTaskfile(); err != nil {
return err
}
e.setupFuzzyModel()
if err := e.setupTempDir(); err != nil {
return err
}
if err := e.readTaskfile(); err != nil {
return err
}
e.setupFuzzyModel()
e.setupStdFiles()
e.setupLogger()
if err := e.setupOutput(); err != nil {
return err
}
@ -75,15 +72,22 @@ func (e *Executor) setCurrentDir() error {
}
func (e *Executor) readTaskfile() error {
var err error
e.Taskfile, err = read.Taskfile(&read.FileNode{
Dir: e.Dir,
Entrypoint: e.Entrypoint,
})
uri := filepath.Join(e.Dir, e.Entrypoint)
node, err := read.NewNode(uri, e.Insecure)
if err != nil {
return err
}
e.Taskfile, err = read.Taskfile(
node,
e.Insecure,
e.Download,
e.Offline,
e.TempDir,
e.Logger,
)
if err != nil {
return err
}
e.Dir = filepath.Dir(e.Taskfile.Location)
return nil
}