Remove mitchellh dependencies (#3748)

* remove mitchellh dependencies

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

* fix failing unit tests

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>

---------

Signed-off-by: Alex Goodman <wagoodman@users.noreply.github.com>
This commit is contained in:
Alex Goodman
2025-03-20 10:19:19 -04:00
committed by GitHub
parent 35d666b27d
commit e9b24a29d7
30 changed files with 132 additions and 119 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ import (
"time"
"github.com/adrg/xdg"
"github.com/mitchellh/go-homedir"
"github.com/anchore/go-homedir"
"github.com/anchore/clio"
"github.com/anchore/syft/internal/cache"
+35 -25
View File
@@ -9,7 +9,7 @@ import (
"time"
"github.com/adrg/xdg"
"github.com/mitchellh/go-homedir"
"github.com/anchore/go-homedir"
"github.com/stretchr/testify/require"
"github.com/anchore/syft/internal"
@@ -57,35 +57,13 @@ func Test_defaultDir(t *testing.T) {
env[k] = os.Getenv(k)
}
unsetEnv := func(t *testing.T) {
for k := range env {
t.Setenv(k, "")
}
}
resetEnv := func() {
for k, v := range env {
if v == "" {
_ = os.Unsetenv(k)
} else {
_ = os.Setenv(k, v)
}
}
homedir.Reset()
xdg.Reload()
}
t.Cleanup(resetEnv)
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
defer resetEnv()
restoreCache(t)
unsetEnv(t)
for k, v := range test.env {
t.Setenv(k, v)
patchEnv(t, k, v)
}
homedir.Reset()
xdg.Reload()
got := defaultDir()
@@ -311,3 +289,35 @@ func Test_durationToString(t *testing.T) {
})
}
}
// restoreCache ensures cache settings are restored after test
func restoreCache(t testing.TB) {
t.Helper()
origEnabled := homedir.CacheEnabled()
t.Cleanup(func() {
homedir.SetCacheEnable(origEnabled)
homedir.Reset()
})
}
// patchEnv modifies an environment variable for the duration of the test
func patchEnv(t testing.TB, key, value string) {
t.Helper()
original := os.Getenv(key)
if value != "" {
os.Setenv(key, value)
} else {
os.Unsetenv(key)
}
t.Cleanup(func() {
if original != "" {
os.Setenv(key, original)
} else {
os.Unsetenv(key)
}
xdg.Reload()
})
}
+1 -1
View File
@@ -3,7 +3,7 @@ package options
import (
"fmt"
"github.com/mitchellh/go-homedir"
"github.com/anchore/go-homedir"
"github.com/anchore/clio"
"github.com/anchore/fangs"
+1 -1
View File
@@ -9,8 +9,8 @@ import (
"sort"
"strings"
"github.com/anchore/go-homedir"
"github.com/hashicorp/go-multierror"
"github.com/mitchellh/go-homedir"
"github.com/scylladb/go-set/strset"
"github.com/anchore/syft/internal/bus"
+4 -2
View File
@@ -6,7 +6,7 @@ import (
"strings"
"testing"
"github.com/docker/docker/pkg/homedir"
"github.com/anchore/go-homedir"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
@@ -228,6 +228,8 @@ func Test_newSBOMMultiWriter(t *testing.T) {
}
func Test_newSBOMWriterDescription(t *testing.T) {
h, err := homedir.Dir()
require.NoError(t, err)
tests := []struct {
name string
path string
@@ -236,7 +238,7 @@ func Test_newSBOMWriterDescription(t *testing.T) {
{
name: "expand home dir",
path: "~/place.txt",
expected: filepath.Join(homedir.Get(), "place.txt"),
expected: filepath.Join(h, "place.txt"),
},
{
name: "passthrough other paths",