Skip to content

Commit 8da3985

Browse files
authored
Merge pull request #398 from numtide/relative-program
fix: resolve commands relative to the root
2 parents 881edaf + 5306a5e commit 8da3985

File tree

8 files changed

+98
-27
lines changed

8 files changed

+98
-27
lines changed

Diff for: cli/format.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515

1616
"git.numtide.com/numtide/treefmt/format"
1717
"git.numtide.com/numtide/treefmt/stats"
18+
"mvdan.cc/sh/v3/expand"
1819

1920
"git.numtide.com/numtide/treefmt/cache"
2021
"git.numtide.com/numtide/treefmt/config"
@@ -136,8 +137,10 @@ func (f *Format) Run() (err error) {
136137
// initialise formatters
137138
f.formatters = make(map[string]*format.Formatter)
138139

140+
env := expand.ListEnviron(os.Environ()...)
141+
139142
for name, formatterCfg := range cfg.Formatters {
140-
formatter, err := format.NewFormatter(name, f.TreeRoot, formatterCfg)
143+
formatter, err := format.NewFormatter(name, f.TreeRoot, env, formatterCfg)
141144

142145
if errors.Is(err, format.ErrCommandNotFound) && f.AllowMissingFormatter {
143146
log.Debugf("formatter command not found: %v", name)

Diff for: cli/format_test.go

+50-3
Original file line numberDiff line numberDiff line change
@@ -571,17 +571,17 @@ func TestPathsArg(t *testing.T) {
571571
test.WriteConfig(t, configPath, cfg)
572572

573573
// without any path args
574-
_, err = cmd(t, "-C", tempDir)
574+
_, err = cmd(t)
575575
as.NoError(err)
576576
assertStats(t, as, 32, 32, 32, 0)
577577

578578
// specify some explicit paths
579-
_, err = cmd(t, "-C", tempDir, "-c", "elm/elm.json", "haskell/Nested/Foo.hs")
579+
_, err = cmd(t, "-c", "elm/elm.json", "haskell/Nested/Foo.hs")
580580
as.NoError(err)
581581
assertStats(t, as, 2, 2, 2, 0)
582582

583583
// specify a bad path
584-
_, err = cmd(t, "-C", tempDir, "-c", "elm/elm.json", "haskell/Nested/Bar.hs")
584+
_, err = cmd(t, "-c", "elm/elm.json", "haskell/Nested/Bar.hs")
585585
as.ErrorContains(err, "no such file or directory")
586586
}
587587

@@ -702,3 +702,50 @@ func TestDeterministicOrderingInPipeline(t *testing.T) {
702702
}
703703
}
704704
}
705+
706+
func TestRunInSubdir(t *testing.T) {
707+
as := require.New(t)
708+
709+
// capture current cwd, so we can replace it after the test is finished
710+
cwd, err := os.Getwd()
711+
as.NoError(err)
712+
713+
t.Cleanup(func() {
714+
// return to the previous working directory
715+
as.NoError(os.Chdir(cwd))
716+
})
717+
718+
tempDir := test.TempExamples(t)
719+
configPath := filepath.Join(tempDir, "/treefmt.toml")
720+
721+
// Also test that formatters are resolved relative to the treefmt root
722+
echoPath, err := exec.LookPath("echo")
723+
as.NoError(err)
724+
echoRel := path.Join(tempDir, "echo")
725+
err = os.Symlink(echoPath, echoRel)
726+
as.NoError(err)
727+
728+
// change working directory to sub directory
729+
as.NoError(os.Chdir(filepath.Join(tempDir, "elm")))
730+
731+
// basic config
732+
cfg := config.Config{
733+
Formatters: map[string]*config.Formatter{
734+
"echo": {
735+
Command: "./echo",
736+
Includes: []string{"*"},
737+
},
738+
},
739+
}
740+
test.WriteConfig(t, configPath, cfg)
741+
742+
// without any path args, should reformat the whole tree
743+
_, err = cmd(t)
744+
as.NoError(err)
745+
assertStats(t, as, 32, 32, 32, 0)
746+
747+
// specify some explicit paths, relative to the elm/ sub-folder
748+
_, err = cmd(t, "-c", "elm.json", "../haskell/Nested/Foo.hs")
749+
as.NoError(err)
750+
assertStats(t, as, 2, 2, 2, 0)
751+
}

Diff for: docs/contributing.md

+9
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,15 @@ If you need to create an issue, make sure to clearly describe it, including:
3030

3131
The cache database is stored in a `.db` file in the `~/.cache/treefmt/eval-cache` directory.
3232

33+
## Updating go.mod/go.sum/gomod2nix.toml
34+
35+
Whenever the go.mod or go.sum file changes, the Nix tooling also needs an
36+
updated `nix/packages/treefmt/gomod2nix.toml`.
37+
38+
To sync it up, run `nix develop .#renovate -c gomod2nix:update`.
39+
40+
41+
3342
## Making changes
3443

3544
If you want to introduce changes to the project, please follow these steps:

Diff for: format/formatter.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@ import (
88
"os/exec"
99
"time"
1010

11-
"git.numtide.com/numtide/treefmt/walk"
12-
1311
"git.numtide.com/numtide/treefmt/config"
12+
"git.numtide.com/numtide/treefmt/walk"
1413

1514
"github.com/charmbracelet/log"
1615
"github.com/gobwas/glob"
16+
"mvdan.cc/sh/v3/expand"
17+
"mvdan.cc/sh/v3/interp"
1718
)
1819

1920
// ErrCommandNotFound is returned when the Command for a Formatter is not available.
@@ -101,6 +102,7 @@ func (f *Formatter) Wants(file *walk.File) bool {
101102
func NewFormatter(
102103
name string,
103104
treeRoot string,
105+
env expand.Environ,
104106
cfg *config.Formatter,
105107
) (*Formatter, error) {
106108
var err error
@@ -113,11 +115,9 @@ func NewFormatter(
113115
f.workingDir = treeRoot
114116

115117
// test if the formatter is available
116-
executable, err := exec.LookPath(cfg.Command)
117-
if errors.Is(err, exec.ErrNotFound) {
118+
executable, err := interp.LookPathDir(treeRoot, env, cfg.Command)
119+
if err != nil {
118120
return nil, ErrCommandNotFound
119-
} else if err != nil {
120-
return nil, err
121121
}
122122
f.executable = executable
123123

Diff for: go.mod

+3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ require (
1515
github.com/vmihailenco/msgpack/v5 v5.4.1
1616
go.etcd.io/bbolt v1.3.11
1717
golang.org/x/sync v0.8.0
18+
mvdan.cc/sh/v3 v3.9.0
1819
)
1920

2021
require (
@@ -35,6 +36,7 @@ require (
3536
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
3637
github.com/mattn/go-isatty v0.0.20 // indirect
3738
github.com/mattn/go-runewidth v0.0.15 // indirect
39+
github.com/muesli/cancelreader v0.2.2 // indirect
3840
github.com/muesli/reflow v0.3.0 // indirect
3941
github.com/muesli/termenv v0.15.2 // indirect
4042
github.com/pjbgf/sha1cd v0.3.0 // indirect
@@ -48,6 +50,7 @@ require (
4850
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
4951
golang.org/x/net v0.28.0 // indirect
5052
golang.org/x/sys v0.24.0 // indirect
53+
golang.org/x/term v0.23.0 // indirect
5154
gopkg.in/warnings.v0 v0.1.2 // indirect
5255
gopkg.in/yaml.v3 v3.0.1 // indirect
5356
)

Diff for: go.sum

+10-16
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ github.com/charmbracelet/log v0.4.0/go.mod h1:63bXt/djrizTec0l11H20t8FDSvA4CRZJ1
2929
github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA=
3030
github.com/cloudflare/circl v1.3.8 h1:j+V8jJt09PoeMFIu2uh5JUyEaIHTXVOHslFoLNAKqwI=
3131
github.com/cloudflare/circl v1.3.8/go.mod h1:PDRU+oXvdD7KCtgKxW95M5Z8BpSCJXQORiZFnBQS5QU=
32+
github.com/creack/pty v1.1.21 h1:1/QdRyBaHHJP61QkWMXlOIBfsgdDeeKfK8SYVUWJKf0=
33+
github.com/creack/pty v1.1.21/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
3234
github.com/cyphar/filepath-securejoin v0.2.5 h1:6iR5tXJ/e6tJZzzdMc1km3Sa7RRIVBKAK32O2s7AYfo=
3335
github.com/cyphar/filepath-securejoin v0.2.5/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
3436
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -42,26 +44,18 @@ github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE=
4244
github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8=
4345
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
4446
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
45-
github.com/go-git/go-billy/v5 v5.5.1-0.20240805213603-fac749f7395a h1:E7kbQRzNItbtGVcgXR8HtmtOiyTGIjD3s/LX9e89kcA=
46-
github.com/go-git/go-billy/v5 v5.5.1-0.20240805213603-fac749f7395a/go.mod h1:X5ZGvb06udYfe+YUV3Hml7eWViUhjq98lqGLz53viVc=
47-
github.com/go-git/go-billy/v5 v5.5.1-0.20240814154544-eaed248167f1 h1:MGoBSiT4C9k32pmVplTXDBGupItZle84QUa9pVTuOSQ=
48-
github.com/go-git/go-billy/v5 v5.5.1-0.20240814154544-eaed248167f1/go.mod h1:sFDq7xD3fn3E0GOwUSZqHo9lrkmx8xJhA0ZrfvjBRGM=
4947
github.com/go-git/go-billy/v5 v5.5.1-0.20240819193939-9b484184bdcc h1:fpw3vn8skBvfPwsKRq6K2o/55ZcwAid/9lubG/NyNNE=
5048
github.com/go-git/go-billy/v5 v5.5.1-0.20240819193939-9b484184bdcc/go.mod h1:sFDq7xD3fn3E0GOwUSZqHo9lrkmx8xJhA0ZrfvjBRGM=
5149
github.com/go-git/go-billy/v5 v5.5.1-0.20240828070317-59c50b000c7a h1:CDPmu0p7gv6zJn35T/RtZyIq98I2SwHtLrp697pM3KI=
5250
github.com/go-git/go-billy/v5 v5.5.1-0.20240828070317-59c50b000c7a/go.mod h1:sFDq7xD3fn3E0GOwUSZqHo9lrkmx8xJhA0ZrfvjBRGM=
5351
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4=
5452
github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399/go.mod h1:1OCfN199q1Jm3HZlxleg+Dw/mwps2Wbk9frAWm+4FII=
55-
github.com/go-git/go-git/v5 v5.12.1-0.20240807144107-c594bae8d75d h1:hJt4GF2BxUI1X20p6APebYu4T7TG4t3HWNwEbgFVilU=
56-
github.com/go-git/go-git/v5 v5.12.1-0.20240807144107-c594bae8d75d/go.mod h1:HxWls9Nx+4sukm5KsYVOz6rR+YJBB4QaVDFaXzG/weQ=
57-
github.com/go-git/go-git/v5 v5.12.1-0.20240809133458-4fd9979d5c29 h1:ziylW6O1GsEiHK+i7/F0ZlFRV3b6bodRsVtzdaom6EM=
58-
github.com/go-git/go-git/v5 v5.12.1-0.20240809133458-4fd9979d5c29/go.mod h1:tTeL/MQl8Pjm1QfKA/x/F0E04y9g5EynnXfV52kvvTw=
59-
github.com/go-git/go-git/v5 v5.12.1-0.20240821090644-6d583524d3e1 h1:ggoxUMCVjbfxO/CqzeYCUdUyVgCBoXjlN7aeksTylSQ=
60-
github.com/go-git/go-git/v5 v5.12.1-0.20240821090644-6d583524d3e1/go.mod h1:tTeL/MQl8Pjm1QfKA/x/F0E04y9g5EynnXfV52kvvTw=
6153
github.com/go-git/go-git/v5 v5.12.1-0.20240821195137-5c762aefcd8d h1:+KOoJFltZdLrtMrrOqaTYr8LWc7q296l6Y/+/bS9At0=
6254
github.com/go-git/go-git/v5 v5.12.1-0.20240821195137-5c762aefcd8d/go.mod h1:tTeL/MQl8Pjm1QfKA/x/F0E04y9g5EynnXfV52kvvTw=
6355
github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4=
6456
github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs=
57+
github.com/go-quicktest/qt v1.101.0 h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI=
58+
github.com/go-quicktest/qt v1.101.0/go.mod h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow=
6559
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
6660
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
6761
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
@@ -88,6 +82,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D
8882
github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
8983
github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U=
9084
github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
85+
github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA=
86+
github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo=
9187
github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
9288
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
9389
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
@@ -108,8 +104,8 @@ github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ
108104
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
109105
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
110106
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
111-
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
112-
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
107+
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
108+
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
113109
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
114110
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
115111
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
@@ -127,8 +123,6 @@ github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV
127123
github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM=
128124
github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw=
129125
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
130-
go.etcd.io/bbolt v1.3.10 h1:+BqfJTcCzTItrop8mq/lbzL8wSGtj94UO/3U31shqG0=
131-
go.etcd.io/bbolt v1.3.10/go.mod h1:bK3UQLPJZly7IlNmV7uVHJDxfe5aK9Ll93e/74Y9oEQ=
132126
go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0=
133127
go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I=
134128
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -169,8 +163,6 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
169163
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
170164
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
171165
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
172-
golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
173-
golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
174166
golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
175167
golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
176168
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -204,3 +196,5 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
204196
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
205197
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
206198
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
199+
mvdan.cc/sh/v3 v3.9.0 h1:it14fyjCdQUk4jf/aYxLO3FG8jFarR9GzMCtnlvvD7c=
200+
mvdan.cc/sh/v3 v3.9.0/go.mod h1:cdBk8bgoiBI7lSZqK5JhUuq7OB64VQ7fgm85xelw3Nk=

Diff for: nix/devshells/renovate.nix

+6-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ pkgs.mkShellNoCC {
1010
(pkgs.writeShellApplication {
1111
name = "gomod2nix:update";
1212
runtimeInputs = [pkgs.git perSystem.gomod2nix.default];
13-
text = "gomod2nix --outdir nix/packages/treefmt";
13+
text = ''
14+
set -eu
15+
gomod2nix --outdir nix/packages/treefmt
16+
# shellcheck disable=SC2016
17+
sed -i '1i # Generated with `nix develop .#renovate -c gomod2nix:update`' nix/packages/treefmt/gomod2nix.toml
18+
'';
1419
})
1520
];
1621
}

Diff for: nix/packages/treefmt/gomod2nix.toml

+10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# Generated with `nix develop .#renovate -c gomod2nix:update`
12
schema = 3
23

34
[mod]
@@ -73,6 +74,9 @@ schema = 3
7374
[mod."github.com/mattn/go-runewidth"]
7475
version = "v0.0.15"
7576
hash = "sha256-WP39EU2UrQbByYfnwrkBDoKN7xzXsBssDq3pNryBGm0="
77+
[mod."github.com/muesli/cancelreader"]
78+
version = "v0.2.2"
79+
hash = "sha256-uEPpzwRJBJsQWBw6M71FDfgJuR7n55d/7IV8MO+rpwQ="
7680
[mod."github.com/muesli/reflow"]
7781
version = "v0.3.0"
7882
hash = "sha256-Pou2ybE9SFSZG6YfZLVV1Eyfm+X4FuVpDPLxhpn47Cc="
@@ -127,9 +131,15 @@ schema = 3
127131
[mod."golang.org/x/sys"]
128132
version = "v0.24.0"
129133
hash = "sha256-P0fsA+qy9taYHWPTtCs5XmrJ1i8tWfvkno+PNuc2elw="
134+
[mod."golang.org/x/term"]
135+
version = "v0.23.0"
136+
hash = "sha256-ECmmK3Wc0g/zUy5wAokj7ItRsUi6eoqSe9s9Uhcwu90="
130137
[mod."gopkg.in/warnings.v0"]
131138
version = "v0.1.2"
132139
hash = "sha256-ATVL9yEmgYbkJ1DkltDGRn/auGAjqGOfjQyBYyUo8s8="
133140
[mod."gopkg.in/yaml.v3"]
134141
version = "v3.0.1"
135142
hash = "sha256-FqL9TKYJ0XkNwJFnq9j0VvJ5ZUU1RvH/52h/f5bkYAU="
143+
[mod."mvdan.cc/sh/v3"]
144+
version = "v3.9.0"
145+
hash = "sha256-yTQXBY9TSqRmS1Vx7k1rtiwK7xQwTPTv37dR8D4/zdU="

0 commit comments

Comments
 (0)