Skip to content

Commit 9c750e2

Browse files
authored
Merge pull request #31 from nxtcoder17/feat/parallel-commands-execution-flow
feat: adds parallel commands execution flow
2 parents 39eb4df + 5bf4bf0 commit 9c750e2

17 files changed

+204
-331
lines changed

Runfile.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ tasks:
1010
cmd:
1111
- |+
1212
echo "building ..."
13-
go build -o bin/run-dev -ldflags="-s -w" -tags urfave_cli_no_docs ./cmd/run
13+
go build -o bin/run -ldflags="-s -w" -tags urfave_cli_no_docs ./cmd/run
1414
echo "DONE"
1515
1616
example:

cmd/run/main.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import (
1212
"syscall"
1313
"time"
1414

15+
"github.com/nxtcoder17/go.pkgs/log"
1516
"github.com/nxtcoder17/runfile/errors"
16-
"github.com/nxtcoder17/runfile/logging"
1717
"github.com/nxtcoder17/runfile/runner"
1818

1919
"github.com/nxtcoder17/runfile/parser"
@@ -191,11 +191,10 @@ func main() {
191191
return fmt.Errorf("parallel and watch can't be set together")
192192
}
193193

194-
logger := logging.New(logging.Options{
195-
ShowCaller: false,
196-
SlogKeyAsPrefix: "task",
197-
ShowDebugLogs: debug,
198-
SetAsDefaultLogger: true,
194+
logger := log.New(log.Options{
195+
ShowCaller: true,
196+
ShowLogLevel: true,
197+
ShowDebugLogs: debug,
199198
})
200199

201200
return runner.Run(runner.NewContext(ctx, logger), rf, runner.RunArgs{

examples/Runfile.yml

+33
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,36 @@ tasks:
9191
cmd:
9292
- echo "writing to stdout"
9393
- echo "writing to stderr" 1>&2
94+
95+
failing:
96+
cmd:
97+
- echo "hi"
98+
- exit 1
99+
- echo "hello"
100+
101+
first:
102+
cmd:
103+
- sleep 1
104+
- echo "from first"
105+
106+
second:
107+
cmd:
108+
- echo "from second"
109+
110+
first-and-second:
111+
parallel: true
112+
cmd:
113+
- run: first
114+
- run: second
115+
116+
first-second-and-cmds:
117+
cmd:
118+
- run: first-and-second
119+
- echo "Hello World"
120+
121+
first-second-and-cmds:all-parallel:
122+
# parallel: true
123+
cmd:
124+
- run: first-and-second
125+
- echo "Hello World"
126+

flake.lock

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
pre-commit
2424

2525
# programming tools
26-
go_1_22
26+
go_1_24
2727

2828
upx
2929

go.mod

+9-5
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,30 @@
11
module github.com/nxtcoder17/runfile
22

3-
go 1.22.7
3+
go 1.24
44

55
require (
6-
github.com/charmbracelet/lipgloss v1.0.0
76
github.com/joho/godotenv v1.5.1
87
github.com/muesli/termenv v0.15.2
9-
github.com/nxtcoder17/fwatcher v1.1.0
10-
github.com/phuslu/log v1.0.112
8+
github.com/nxtcoder17/fwatcher v1.2.0
9+
github.com/nxtcoder17/go.pkgs v0.0.0-20250216034729-39e2d2cd48da
1110
github.com/urfave/cli/v3 v3.0.0-beta1
1211
golang.org/x/sync v0.10.0
1312
sigs.k8s.io/yaml v1.4.0
1413
)
1514

1615
require (
1716
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
18-
github.com/charmbracelet/x/ansi v0.6.0 // indirect
1917
github.com/fsnotify/fsnotify v1.8.0 // indirect
2018
github.com/google/go-cmp v0.6.0 // indirect
2119
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
20+
github.com/mattn/go-colorable v0.1.13 // indirect
2221
github.com/mattn/go-isatty v0.0.20 // indirect
2322
github.com/mattn/go-runewidth v0.0.16 // indirect
2423
github.com/rivo/uniseg v0.4.7 // indirect
24+
github.com/rs/zerolog v1.33.0 // indirect
25+
github.com/samber/lo v1.47.0 // indirect
26+
github.com/samber/slog-common v0.18.1 // indirect
27+
github.com/samber/slog-zerolog/v2 v2.7.3 // indirect
2528
golang.org/x/sys v0.28.0 // indirect
29+
golang.org/x/text v0.16.0 // indirect
2630
)

go.sum

+24-8
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,62 @@
11
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
22
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
3-
github.com/charmbracelet/lipgloss v1.0.0 h1:O7VkGDvqEdGi93X+DeqsQ7PKHDgtQfF8j8/O2qFMQNg=
4-
github.com/charmbracelet/lipgloss v1.0.0/go.mod h1:U5fy9Z+C38obMs+T+tJqst9VGzlOYGj4ri9reL3qUlo=
5-
github.com/charmbracelet/x/ansi v0.6.0 h1:qOznutrb93gx9oMiGf7caF7bqqubh6YIM0SWKyA08pA=
6-
github.com/charmbracelet/x/ansi v0.6.0/go.mod h1:KBUFw1la39nl0dLl10l5ORDAqGXaeurTQmwyyVKse/Q=
3+
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
74
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
85
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
96
github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
107
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
8+
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
119
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1210
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
1311
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
1412
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
1513
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
1614
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
1715
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
16+
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
17+
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
18+
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
19+
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
1820
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
1921
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
2022
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
2123
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
2224
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
2325
github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8=
24-
github.com/nxtcoder17/fwatcher v1.0.5-0.20250117101009-2217d37d1bbd h1:c7QZjT/zcdMqHUaB85oCpXs6cdjJD2N1qFcHjYwoNL8=
25-
github.com/nxtcoder17/fwatcher v1.0.5-0.20250117101009-2217d37d1bbd/go.mod h1:50dOLE7lHu6bwGtBM7lZ5m6b8wKKMUZDPgBKM2pgdEA=
2626
github.com/nxtcoder17/fwatcher v1.1.0 h1:boRQ1zyN7SDnRYqrEUMJTKpf/j3sQ3YMY0FQKkUIQ0o=
2727
github.com/nxtcoder17/fwatcher v1.1.0/go.mod h1:50dOLE7lHu6bwGtBM7lZ5m6b8wKKMUZDPgBKM2pgdEA=
28-
github.com/phuslu/log v1.0.112 h1:vQ0ZFd5O+in/0IQAcjuEl6wRkHiQPw7T0sqwmOjpL0U=
29-
github.com/phuslu/log v1.0.112/go.mod h1:F8osGJADo5qLK/0F88djWwdyoZZ9xDJQL1HYRHFEkS0=
28+
github.com/nxtcoder17/fwatcher v1.2.0 h1:Nn5NQZrd6tnY0aFIUmpHCysLDbIsUYn4oyHaxEaVj60=
29+
github.com/nxtcoder17/fwatcher v1.2.0/go.mod h1:SMwIdCpyi5fBygrkCX8hIIUeILzgoxJFaDSlhFBOWWQ=
30+
github.com/nxtcoder17/go.pkgs v0.0.0-20250216034729-39e2d2cd48da h1:Y6GILHFlrihVfDqDPQ98y2kdUeI0SQc8tnoXh2NbEIA=
31+
github.com/nxtcoder17/go.pkgs v0.0.0-20250216034729-39e2d2cd48da/go.mod h1:raSGHj5CMHNHZf4fCV9CWpFk0hsb2CSKFZSPd4zW8JM=
32+
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
3033
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
3134
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
3235
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
3336
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
3437
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
38+
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
39+
github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8=
40+
github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss=
41+
github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc=
42+
github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU=
43+
github.com/samber/slog-common v0.18.1 h1:c0EipD/nVY9HG5shgm/XAs67mgpWDMF+MmtptdJNCkQ=
44+
github.com/samber/slog-common v0.18.1/go.mod h1:QNZiNGKakvrfbJ2YglQXLCZauzkI9xZBjOhWFKS3IKk=
45+
github.com/samber/slog-zerolog/v2 v2.7.3 h1:/MkPDl/tJhijN2GvB1MWwBn2FU8RiL3rQ8gpXkQm2EY=
46+
github.com/samber/slog-zerolog/v2 v2.7.3/go.mod h1:oWU7WHof4Xp8VguiNO02r1a4VzkgoOyOZhY5CuRke60=
3547
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
3648
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
3749
github.com/urfave/cli/v3 v3.0.0-beta1 h1:6DTaaUarcM0wX7qj5Hcvs+5Dm3dyUTBbEwIWAjcw9Zg=
3850
github.com/urfave/cli/v3 v3.0.0-beta1/go.mod h1:FnIeEMYu+ko8zP1F9Ypr3xkZMIDqW3DR92yUtY39q1Y=
3951
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
4052
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
53+
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4154
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
55+
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4256
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
4357
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
58+
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
59+
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
4460
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
4561
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
4662
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

logging/logger.go

-124
This file was deleted.

0 commit comments

Comments
 (0)