Skip to content

Commit 9472489

Browse files
committed
refactor: cleanups
1 parent db127b0 commit 9472489

File tree

5 files changed

+69
-101
lines changed

5 files changed

+69
-101
lines changed

README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,34 @@ tasks:
5050
- echo "value of key3 is '$key3'"
5151
- echo "value of key4 is '$key4'" # assuming key4 is defined in .secrets/env
5252
```
53+
54+
## Updates with example runfile with all the features
55+
56+
```yaml
57+
version: 0.0.1
58+
59+
tasks:
60+
test:
61+
env:
62+
key1: value1
63+
key2: value2
64+
key3:
65+
sh: echo -n "hello"
66+
key4:
67+
required: true
68+
dotenv:
69+
- .secrets/env # load dotenv file
70+
cmd:
71+
- echo "value of key1 is '$key1'"
72+
- echo "value of key2 is '$key2'"
73+
- echo "value of key3 is '$key3'"
74+
- echo "value of key4 is '$key4'" # assuming key4 is defined in .secrets/env
75+
build:
76+
dir: cmd/app
77+
cmd:
78+
- go build -o app
79+
run:
80+
dir: cmd/app
81+
cmd:
82+
- go run .
83+
```

Runfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,7 @@ tasks:
1919
test:
2020
cmd:
2121
- go test -json ./pkg/runfile | gotestfmt
22+
23+
test:only-failing:
24+
cmd:
25+
- go test -json ./pkg/runfile | gotestfmt --hide successful-tests

pkg/runfile/run.go

Lines changed: 0 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -151,102 +151,6 @@ func runTask(ctx Context, rf *Runfile, args runTaskArgs) *Error {
151151
return nil
152152
}
153153

154-
// func (rf *Runfile) runTask(ctx Context, args runTaskArgs) *Error {
155-
// runfilePath := fn.Must(filepath.Rel(rf.attrs.RootRunfilePath, rf.attrs.RunfilePath))
156-
//
157-
// trail := append(args.taskTrail, args.taskName)
158-
//
159-
// formatErr := func(err *Error) *Error {
160-
// if runfilePath != "." {
161-
// return err.WithTask(strings.Join(trail, "/")).WithRunfile(runfilePath)
162-
// }
163-
// return err.WithTask(strings.Join(trail, "/"))
164-
// }
165-
//
166-
// logger := ctx.With("task", args.taskName, "runfile", runfilePath)
167-
// logger.Debug("running task")
168-
// task, ok := rf.Tasks[args.taskName]
169-
// if !ok {
170-
// return formatErr(TaskNotFound)
171-
// }
172-
//
173-
// task.Name = args.taskName
174-
// if task.Env == nil {
175-
// task.Env = make(EnvVar)
176-
// }
177-
//
178-
// for k, v := range args.envOverrides {
179-
// task.Env[k] = v
180-
// }
181-
//
182-
// pt, err := ParseTask(ctx, rf, task)
183-
// if err != nil {
184-
// return formatErr(err)
185-
// }
186-
//
187-
// logger.Debug("debugging env", "pt.environ", pt.Env, "overrides", args.envOverrides)
188-
// for _, command := range pt.Commands {
189-
// logger.Debug("running command task", "command.run", command.Run, "parent.task", args.taskName)
190-
// if command.Run != "" {
191-
// if err := rf.runTask(ctx, runTaskArgs{
192-
// taskTrail: trail,
193-
// taskName: command.Run,
194-
// envOverrides: pt.Env,
195-
// }); err != nil {
196-
// return err
197-
// // return NewError("", "").WithTask(fmt.Sprintf("%s/%s", err.TaskName, command.Run)).WithRunfile(rf.attrs.RunfilePath).WithErr(err.WithMetadata())
198-
// // e := formatErr(err).WithTask(fmt.Sprintf("%s/%s", err.TaskName, command.Run))
199-
// // return e
200-
// }
201-
// continue
202-
// }
203-
//
204-
// stdoutR, stdoutW := io.Pipe()
205-
// stderrR, stderrW := io.Pipe()
206-
//
207-
// go func() {
208-
// r := bufio.NewReader(stdoutR)
209-
// for {
210-
// b, err := r.ReadBytes('\n')
211-
// if err != nil {
212-
// logger.Info("stdout", "msg", string(b), "err", err)
213-
// // return
214-
// break
215-
// }
216-
// fmt.Fprintf(os.Stdout, "%s %s", ctx.theme.TaskPrefixStyle.Render(fmt.Sprintf("[%s]", args.taskName)), b)
217-
// }
218-
// }()
219-
//
220-
// go func() {
221-
// r := bufio.NewReader(stderrR)
222-
// for {
223-
// b, err := r.ReadBytes('\n')
224-
// if err != nil {
225-
// fmt.Printf("hello err: %+v\n", err)
226-
// logger.Info("stderr", "err", err)
227-
// // return
228-
// break
229-
// }
230-
// fmt.Fprintf(os.Stderr, "%s %s", ctx.theme.TaskPrefixStyle.Render(fmt.Sprintf("[%s]", args.taskName)), b)
231-
// }
232-
// }()
233-
//
234-
// cmd := createCommand(ctx, cmdArgs{
235-
// shell: pt.Shell,
236-
// env: ToEnviron(pt.Env),
237-
// cmd: command.Command,
238-
// workingDir: pt.WorkingDir,
239-
// stdout: stdoutW,
240-
// stderr: stderrW,
241-
// })
242-
// if err := cmd.Run(); err != nil {
243-
// return formatErr(CommandFailed).WithErr(err)
244-
// }
245-
// }
246-
//
247-
// return nil
248-
// }
249-
250154
type RunArgs struct {
251155
Tasks []string
252156
ExecuteInParallel bool

pkg/runfile/run_test.go

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package runfile
22

33
import (
4+
"context"
5+
"log/slog"
46
"reflect"
57
"testing"
8+
"time"
69
)
710

811
func Test_runTask(t *testing.T) {
912
type args struct {
10-
ctx Context
1113
rf *Runfile
1214
args runTaskArgs
1315
}
@@ -16,12 +18,40 @@ func Test_runTask(t *testing.T) {
1618
args args
1719
want *Error
1820
}{
19-
// TODO: Add test cases.
21+
{
22+
name: "1. Task Not Found",
23+
args: args{
24+
rf: &Runfile{
25+
Tasks: map[string]Task{},
26+
},
27+
args: runTaskArgs{
28+
taskName: "sample",
29+
},
30+
},
31+
want: TaskNotFound,
32+
},
33+
34+
{
35+
name: "1. Task Not Found",
36+
args: args{
37+
rf: &Runfile{
38+
Tasks: map[string]Task{},
39+
},
40+
args: runTaskArgs{
41+
taskName: "sample",
42+
},
43+
},
44+
want: TaskNotFound,
45+
},
2046
}
2147
for _, tt := range tests {
2248
t.Run(tt.name, func(t *testing.T) {
23-
if got := runTask(tt.args.ctx, tt.args.rf, tt.args.args); !reflect.DeepEqual(got, tt.want) {
24-
t.Errorf("runTask() = %v, want %v", got, tt.want)
49+
ctx, cf := context.WithTimeout(context.TODO(), 2*time.Second)
50+
defer cf()
51+
52+
err := runTask(NewContext(ctx, slog.Default()), tt.args.rf, tt.args.args)
53+
if !reflect.DeepEqual(err, tt.want) {
54+
t.Errorf("runTask() = %v, want %v", err, tt.want)
2555
}
2656
})
2757
}

pkg/runfile/task-parser.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ type ParsedTask struct {
1919
Commands []CommandJson `json:"commands"`
2020
}
2121

22-
// func ParseTask(ctx Context, rf *Runfile, taskName string) (*ParsedTask, error) {
2322
func ParseTask(ctx Context, rf *Runfile, task Task) (*ParsedTask, *Error) {
2423
globalEnv := make(map[string]string)
2524

0 commit comments

Comments
 (0)