From bd9636f1cb886829703ec218156a91213f443234 Mon Sep 17 00:00:00 2001 From: ehsan shariati Date: Tue, 11 Jul 2023 16:55:43 -0400 Subject: [PATCH 1/9] Added BloxFreeSpace code for Windows and Mac on Windows it is tested but on Mac it is untested --- wap/pkg/wifi/properties.go | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/wap/pkg/wifi/properties.go b/wap/pkg/wifi/properties.go index 0fe5153a..217d694b 100644 --- a/wap/pkg/wifi/properties.go +++ b/wap/pkg/wifi/properties.go @@ -6,14 +6,18 @@ import ( "crypto/sha256" "encoding/base64" "fmt" + "os" "os/exec" + "runtime" "strconv" "strings" + "syscall" "github.com/docker/docker/api/types" "github.com/docker/docker/client" "github.com/libp2p/go-libp2p/core/crypto" "golang.org/x/crypto/ed25519" + "golang.org/x/sys/windows" ) // Assuming config.ReadProperties() and config.PROJECT_NAME are defined in your code @@ -94,6 +98,76 @@ func GenerateRandomString(length int) (string, error) { } func GetBloxFreeSpace() (BloxFreeSpaceResponse, error) { + switch runtime.GOOS { + case "windows": + return GetBloxFreeSpaceWindows() + case "linux": // Unix-like systems (including macOS) + return GetBloxFreeSpaceLinux() + case "darwin": + return GetBloxFreeSpaceMac() + default: + return BloxFreeSpaceResponse{}, fmt.Errorf("unsupported operating system: %s", runtime.GOOS) + } +} + +func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { + wd, err := os.Getwd() + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting current directory: %v", err) + } + + fs := syscall.Statfs_t{} + err = syscall.Statfs(wd, &fs) + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting file system statistics: %v", err) + } + + total := fs.Blocks * uint64(fs.Bsize) + free := fs.Bfree * uint64(fs.Bsize) + used := total - free + usedPercentage := (float32(used) / float32(total)) * 100 + + return BloxFreeSpaceResponse{ + DeviceCount: 1, // assuming that the current directory is on a single device + Size: float32(total), + Used: float32(used), + Avail: float32(free), + UsedPercentage: usedPercentage, + }, nil +} + +func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { + wd, err := os.Getwd() + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting current directory: %v", err) + } + + lpFreeBytesAvailable := uint64(0) + lpTotalNumberOfBytes := uint64(0) + lpTotalNumberOfFreeBytes := uint64(0) + + disk := windows.StringToUTF16Ptr(wd) + + err = windows.GetDiskFreeSpaceEx(disk, &lpFreeBytesAvailable, &lpTotalNumberOfBytes, &lpTotalNumberOfFreeBytes) + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk space details: %v", err) + } + + total := lpTotalNumberOfBytes + free := lpFreeBytesAvailable + used := total - free + usedPercentage := (float32(used) / float32(total)) * 100 + + return BloxFreeSpaceResponse{ + DeviceCount: 1, // assuming that the current directory is on a single device + Size: float32(total), + Used: float32(used), + Avail: float32(free), + UsedPercentage: usedPercentage, + }, nil +} + +func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { cmd := `df -B1 2>/dev/null | grep -nE '/storage/(usb|sd[a-z]|nvme)' | awk '{sum2+=$2; sum3+=$3; sum4+=$4; sum5+=$5} END { print NR "," sum2 "," sum3 "," sum4 "," sum5}'` out, err := exec.Command("sh", "-c", cmd).Output() if err != nil { From 7ac8f327ff93db3aa5c4240cd295b63cffca51c0 Mon Sep 17 00:00:00 2001 From: ehsan shariati Date: Tue, 11 Jul 2023 17:12:00 -0400 Subject: [PATCH 2/9] separated windows and unix from linux --- go.mod | 3 + go.sum | 13 ++++ wap/pkg/wifi/properties.go | 110 ----------------------------- wap/pkg/wifi/properties_unix.go | 76 ++++++++++++++++++++ wap/pkg/wifi/properties_windows.go | 39 ++++++++++ 5 files changed, 131 insertions(+), 110 deletions(-) create mode 100644 wap/pkg/wifi/properties_unix.go create mode 100644 wap/pkg/wifi/properties_windows.go diff --git a/go.mod b/go.mod index 9298155d..fc97ab49 100644 --- a/go.mod +++ b/go.mod @@ -72,6 +72,7 @@ require ( github.com/functionland/anet v0.0.2-0.20230705144238-d8b3b0a8532c // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect github.com/godbus/dbus/v5 v5.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -145,11 +146,13 @@ require ( github.com/quic-go/webtransport-go v0.5.3 // indirect github.com/raulk/go-watchdog v1.3.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/shirou/gopsutil v3.21.11+incompatible // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/twmb/murmur3 v1.1.6 // indirect github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect github.com/whyrusleeping/cbor-gen v0.0.0-20230418232409-daab9ece03a0 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect + github.com/yusufpapurcu/wmi v1.2.3 // indirect go.opentelemetry.io/otel v1.13.0 // indirect go.opentelemetry.io/otel/trace v1.13.0 // indirect go.uber.org/atomic v1.11.0 // indirect diff --git a/go.sum b/go.sum index fce045ed..39fc81f9 100644 --- a/go.sum +++ b/go.sum @@ -139,11 +139,14 @@ github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclK github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= @@ -327,11 +330,13 @@ github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -414,6 +419,7 @@ github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= @@ -450,6 +456,7 @@ github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXS github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/onsi/ginkgo/v2 v2.9.7 h1:06xGQy5www2oN160RtEZoTvnP2sPhEfePYmCDc2szss= @@ -512,6 +519,8 @@ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= +github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= @@ -596,6 +605,8 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -754,6 +765,7 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -903,6 +915,7 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/wap/pkg/wifi/properties.go b/wap/pkg/wifi/properties.go index 217d694b..34c24cc3 100644 --- a/wap/pkg/wifi/properties.go +++ b/wap/pkg/wifi/properties.go @@ -6,18 +6,14 @@ import ( "crypto/sha256" "encoding/base64" "fmt" - "os" "os/exec" "runtime" - "strconv" "strings" - "syscall" "github.com/docker/docker/api/types" "github.com/docker/docker/client" "github.com/libp2p/go-libp2p/core/crypto" "golang.org/x/crypto/ed25519" - "golang.org/x/sys/windows" ) // Assuming config.ReadProperties() and config.PROJECT_NAME are defined in your code @@ -110,112 +106,6 @@ func GetBloxFreeSpace() (BloxFreeSpaceResponse, error) { } } -func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { - wd, err := os.Getwd() - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error getting current directory: %v", err) - } - - fs := syscall.Statfs_t{} - err = syscall.Statfs(wd, &fs) - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error getting file system statistics: %v", err) - } - - total := fs.Blocks * uint64(fs.Bsize) - free := fs.Bfree * uint64(fs.Bsize) - used := total - free - usedPercentage := (float32(used) / float32(total)) * 100 - - return BloxFreeSpaceResponse{ - DeviceCount: 1, // assuming that the current directory is on a single device - Size: float32(total), - Used: float32(used), - Avail: float32(free), - UsedPercentage: usedPercentage, - }, nil -} - -func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { - wd, err := os.Getwd() - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error getting current directory: %v", err) - } - - lpFreeBytesAvailable := uint64(0) - lpTotalNumberOfBytes := uint64(0) - lpTotalNumberOfFreeBytes := uint64(0) - - disk := windows.StringToUTF16Ptr(wd) - - err = windows.GetDiskFreeSpaceEx(disk, &lpFreeBytesAvailable, &lpTotalNumberOfBytes, &lpTotalNumberOfFreeBytes) - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk space details: %v", err) - } - - total := lpTotalNumberOfBytes - free := lpFreeBytesAvailable - used := total - free - usedPercentage := (float32(used) / float32(total)) * 100 - - return BloxFreeSpaceResponse{ - DeviceCount: 1, // assuming that the current directory is on a single device - Size: float32(total), - Used: float32(used), - Avail: float32(free), - UsedPercentage: usedPercentage, - }, nil -} - -func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { - cmd := `df -B1 2>/dev/null | grep -nE '/storage/(usb|sd[a-z]|nvme)' | awk '{sum2+=$2; sum3+=$3; sum4+=$4; sum5+=$5} END { print NR "," sum2 "," sum3 "," sum4 "," sum5}'` - out, err := exec.Command("sh", "-c", cmd).Output() - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error executing shell command: %v", err) - } - - parts := strings.Split(strings.TrimSpace(string(out)), ",") - - if len(parts) != 5 { - return BloxFreeSpaceResponse{}, fmt.Errorf("unexpected output format") - } - - deviceCount, errCount := strconv.Atoi(parts[0]) - size, errSize := strconv.ParseFloat(parts[1], 32) - used, errUsed := strconv.ParseFloat(parts[2], 32) - avail, errAvail := strconv.ParseFloat(parts[3], 32) - usedPercentage, errUsedPercentage := strconv.ParseFloat(parts[4], 32) - - var errors []string - if errCount != nil { - errors = append(errors, fmt.Sprintf("error parsing count: %v", errCount)) - } - if errSize != nil { - errors = append(errors, fmt.Sprintf("error parsing size: %v", errSize)) - } - if errUsed != nil { - errors = append(errors, fmt.Sprintf("error parsing used: %v", errUsed)) - } - if errAvail != nil { - errors = append(errors, fmt.Sprintf("error parsing avail: %v", errAvail)) - } - if errUsedPercentage != nil { - errors = append(errors, fmt.Sprintf("error parsing used_percentage: %v", errUsedPercentage)) - } - - if len(errors) > 0 { - return BloxFreeSpaceResponse{}, fmt.Errorf(strings.Join(errors, "; ")) - } - - return BloxFreeSpaceResponse{ - DeviceCount: deviceCount, - Size: float32(size), - Used: float32(used), - Avail: float32(avail), - UsedPercentage: float32(usedPercentage), - }, nil -} - func GetContainerInfo(containerName string) (DockerInfo, error) { cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) if err != nil { diff --git a/wap/pkg/wifi/properties_unix.go b/wap/pkg/wifi/properties_unix.go new file mode 100644 index 00000000..e36034b5 --- /dev/null +++ b/wap/pkg/wifi/properties_unix.go @@ -0,0 +1,76 @@ +package wifi + +import ( + "fmt" + "os/exec" + "strconv" + "strings" + + "github.com/shirou/gopsutil/disk" +) + +func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { + usage, err := disk.Usage("/") + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk usage: %v", err) + } + + usedPercentage := usage.UsedPercent + + return BloxFreeSpaceResponse{ + DeviceCount: 1, // assuming that the current directory is on a single device + Size: float32(usage.Total), + Used: float32(usage.Used), + Avail: float32(usage.Free), + UsedPercentage: float32(usedPercentage), + }, nil +} + +func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { + cmd := `df -B1 2>/dev/null | grep -nE '/storage/(usb|sd[a-z]|nvme)' | awk '{sum2+=$2; sum3+=$3; sum4+=$4; sum5+=$5} END { print NR "," sum2 "," sum3 "," sum4 "," sum5}'` + out, err := exec.Command("sh", "-c", cmd).Output() + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error executing shell command: %v", err) + } + + parts := strings.Split(strings.TrimSpace(string(out)), ",") + + if len(parts) != 5 { + return BloxFreeSpaceResponse{}, fmt.Errorf("unexpected output format") + } + + deviceCount, errCount := strconv.Atoi(parts[0]) + size, errSize := strconv.ParseFloat(parts[1], 32) + used, errUsed := strconv.ParseFloat(parts[2], 32) + avail, errAvail := strconv.ParseFloat(parts[3], 32) + usedPercentage, errUsedPercentage := strconv.ParseFloat(parts[4], 32) + + var errors []string + if errCount != nil { + errors = append(errors, fmt.Sprintf("error parsing count: %v", errCount)) + } + if errSize != nil { + errors = append(errors, fmt.Sprintf("error parsing size: %v", errSize)) + } + if errUsed != nil { + errors = append(errors, fmt.Sprintf("error parsing used: %v", errUsed)) + } + if errAvail != nil { + errors = append(errors, fmt.Sprintf("error parsing avail: %v", errAvail)) + } + if errUsedPercentage != nil { + errors = append(errors, fmt.Sprintf("error parsing used_percentage: %v", errUsedPercentage)) + } + + if len(errors) > 0 { + return BloxFreeSpaceResponse{}, fmt.Errorf(strings.Join(errors, "; ")) + } + + return BloxFreeSpaceResponse{ + DeviceCount: deviceCount, + Size: float32(size), + Used: float32(used), + Avail: float32(avail), + UsedPercentage: float32(usedPercentage), + }, nil +} diff --git a/wap/pkg/wifi/properties_windows.go b/wap/pkg/wifi/properties_windows.go new file mode 100644 index 00000000..690d4872 --- /dev/null +++ b/wap/pkg/wifi/properties_windows.go @@ -0,0 +1,39 @@ +package wifi + +import ( + "fmt" + "os" + + "golang.org/x/sys/windows" +) + +func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { + wd, err := os.Getwd() + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting current directory: %v", err) + } + + lpFreeBytesAvailable := uint64(0) + lpTotalNumberOfBytes := uint64(0) + lpTotalNumberOfFreeBytes := uint64(0) + + disk := windows.StringToUTF16Ptr(wd) + + err = windows.GetDiskFreeSpaceEx(disk, &lpFreeBytesAvailable, &lpTotalNumberOfBytes, &lpTotalNumberOfFreeBytes) + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk space details: %v", err) + } + + total := lpTotalNumberOfBytes + free := lpFreeBytesAvailable + used := total - free + usedPercentage := (float32(used) / float32(total)) * 100 + + return BloxFreeSpaceResponse{ + DeviceCount: 1, // assuming that the current directory is on a single device + Size: float32(total), + Used: float32(used), + Avail: float32(free), + UsedPercentage: usedPercentage, + }, nil +} From 4adbdc1a3fbf69471dddf9c209c7fbdb0fbd22e6 Mon Sep 17 00:00:00 2001 From: ehsan shariati Date: Tue, 11 Jul 2023 17:13:14 -0400 Subject: [PATCH 3/9] added top tags for each OS --- wap/pkg/wifi/properties_unix.go | 3 +++ wap/pkg/wifi/properties_windows.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/wap/pkg/wifi/properties_unix.go b/wap/pkg/wifi/properties_unix.go index e36034b5..18dffa46 100644 --- a/wap/pkg/wifi/properties_unix.go +++ b/wap/pkg/wifi/properties_unix.go @@ -1,3 +1,6 @@ +//go:build linux || darwin +// +build linux darwin + package wifi import ( diff --git a/wap/pkg/wifi/properties_windows.go b/wap/pkg/wifi/properties_windows.go index 690d4872..27c5069e 100644 --- a/wap/pkg/wifi/properties_windows.go +++ b/wap/pkg/wifi/properties_windows.go @@ -1,3 +1,6 @@ +//go:build windows +// +build windows + package wifi import ( From c33d615ea5d78645a7d3e66c094133d21732db7f Mon Sep 17 00:00:00 2001 From: ehsan shariati Date: Tue, 11 Jul 2023 17:33:22 -0400 Subject: [PATCH 4/9] added dummy methods for different platforms --- wap/pkg/wifi/properties_darwin.go | 37 +++++++++++++++++++ ...properties_unix.go => properties_linux.go} | 22 +++-------- wap/pkg/wifi/properties_windows.go | 8 ++++ 3 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 wap/pkg/wifi/properties_darwin.go rename wap/pkg/wifi/{properties_unix.go => properties_linux.go} (78%) diff --git a/wap/pkg/wifi/properties_darwin.go b/wap/pkg/wifi/properties_darwin.go new file mode 100644 index 00000000..63df4644 --- /dev/null +++ b/wap/pkg/wifi/properties_darwin.go @@ -0,0 +1,37 @@ +//go:build darwin +// +build darwin + +package wifi + +import ( + "fmt" + "os/exec" + "strconv" + "strings" + + "github.com/shirou/gopsutil/disk" +) + +func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { + return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") +} +func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { + return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") +} + +func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { + usage, err := disk.Usage("/") + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk usage: %v", err) + } + + usedPercentage := usage.UsedPercent + + return BloxFreeSpaceResponse{ + DeviceCount: 1, // assuming that the current directory is on a single device + Size: float32(usage.Total), + Used: float32(usage.Used), + Avail: float32(usage.Free), + UsedPercentage: float32(usedPercentage), + }, nil +} diff --git a/wap/pkg/wifi/properties_unix.go b/wap/pkg/wifi/properties_linux.go similarity index 78% rename from wap/pkg/wifi/properties_unix.go rename to wap/pkg/wifi/properties_linux.go index 18dffa46..3c33ef45 100644 --- a/wap/pkg/wifi/properties_unix.go +++ b/wap/pkg/wifi/properties_linux.go @@ -1,5 +1,5 @@ -//go:build linux || darwin -// +build linux darwin +//go:build linux +// +build linux package wifi @@ -12,21 +12,11 @@ import ( "github.com/shirou/gopsutil/disk" ) +func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { + return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") +} func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { - usage, err := disk.Usage("/") - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk usage: %v", err) - } - - usedPercentage := usage.UsedPercent - - return BloxFreeSpaceResponse{ - DeviceCount: 1, // assuming that the current directory is on a single device - Size: float32(usage.Total), - Used: float32(usage.Used), - Avail: float32(usage.Free), - UsedPercentage: float32(usedPercentage), - }, nil + return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") } func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { diff --git a/wap/pkg/wifi/properties_windows.go b/wap/pkg/wifi/properties_windows.go index 27c5069e..72d08cdf 100644 --- a/wap/pkg/wifi/properties_windows.go +++ b/wap/pkg/wifi/properties_windows.go @@ -10,6 +10,14 @@ import ( "golang.org/x/sys/windows" ) +func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { + return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") +} + +func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { + return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") +} + func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { wd, err := os.Getwd() if err != nil { From e1ff7aefe4b9be7179011eb029d01564668c296a Mon Sep 17 00:00:00 2001 From: ehsan shariati Date: Tue, 11 Jul 2023 17:50:13 -0400 Subject: [PATCH 5/9] removed unused import --- wap/pkg/wifi/properties_linux.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/wap/pkg/wifi/properties_linux.go b/wap/pkg/wifi/properties_linux.go index 3c33ef45..482065cf 100644 --- a/wap/pkg/wifi/properties_linux.go +++ b/wap/pkg/wifi/properties_linux.go @@ -8,8 +8,6 @@ import ( "os/exec" "strconv" "strings" - - "github.com/shirou/gopsutil/disk" ) func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { From ba74ac1de900c437f7d5515d398f0b3a0c32b9b2 Mon Sep 17 00:00:00 2001 From: ehsan shariati Date: Tue, 11 Jul 2023 18:05:42 -0400 Subject: [PATCH 6/9] merged all in one file --- go.mod | 4 +- go.sum | 20 +++++++ wap/pkg/wifi/properties.go | 84 ++++++++++++++++++++++++++++++ wap/pkg/wifi/properties_darwin.go | 37 ------------- wap/pkg/wifi/properties_linux.go | 67 ------------------------ wap/pkg/wifi/properties_windows.go | 50 ------------------ 6 files changed, 107 insertions(+), 155 deletions(-) delete mode 100644 wap/pkg/wifi/properties_darwin.go delete mode 100644 wap/pkg/wifi/properties_linux.go delete mode 100644 wap/pkg/wifi/properties_windows.go diff --git a/go.mod b/go.mod index fc97ab49..beda3859 100644 --- a/go.mod +++ b/go.mod @@ -40,7 +40,7 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.0.2 // indirect - golang.org/x/sys v0.8.0 // indirect + golang.org/x/sys v0.9.0 // indirect gotest.tools/v3 v3.4.0 // indirect ) @@ -135,6 +135,7 @@ require ( github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/polydawn/refmt v0.89.0 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect github.com/prometheus/client_golang v1.14.0 // indirect github.com/prometheus/client_model v0.4.0 // indirect github.com/prometheus/common v0.42.0 // indirect @@ -147,6 +148,7 @@ require ( github.com/raulk/go-watchdog v1.3.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/shirou/gopsutil v3.21.11+incompatible // indirect + github.com/shirou/gopsutil/v3 v3.23.6 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/twmb/murmur3 v1.1.6 // indirect github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect diff --git a/go.sum b/go.sum index 39fc81f9..707e4a12 100644 --- a/go.sum +++ b/go.sum @@ -188,8 +188,10 @@ github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= @@ -380,6 +382,7 @@ github.com/libp2p/go-reuseport v0.3.0 h1:iiZslO5byUYZEg9iCwJGf5h+sf1Agmqx2V2FDjP github.com/libp2p/go-reuseport v0.3.0/go.mod h1:laea40AimhtfEqysZ71UpYj4S+R9VpH8PgqLo7L+SwI= github.com/libp2p/go-yamux/v4 v4.0.0 h1:+Y80dV2Yx/kv7Y7JKu0LECyVdMXm1VUoko+VQ9rBfZQ= github.com/libp2p/go-yamux/v4 v4.0.0/go.mod h1:NWjl8ZTLOGlozrXSOZ/HlfG++39iKNnM5wwmtQP1YB4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= @@ -486,6 +489,8 @@ github.com/polydawn/refmt v0.0.0-20190221155625-df39d6c2d992/go.mod h1:uIp+gprXx github.com/polydawn/refmt v0.0.0-20190809202753-05966cbd336a/go.mod h1:uIp+gprXxxrWSjjklXD+mN4wed/tMfjMMmN/9+JsA9o= github.com/polydawn/refmt v0.89.0 h1:ADJTApkvkeBZsN0tBTx8QjpD9JkmxbKp0cxfr9qszm4= github.com/polydawn/refmt v0.89.0/go.mod h1:/zvteZs/GwLtCgZ4BL6CBsk9IKIlexP43ObX9AxTqTw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= @@ -521,6 +526,10 @@ github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0 github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil/v3 v3.23.6 h1:5y46WPI9QBKBbK7EEccUPNXpJpNrvPuTD0O2zHEHT08= +github.com/shirou/gopsutil/v3 v3.23.6/go.mod h1:j7QX50DrXYggrpN30W0Mo+I4/8U2UUIQrnrhqUeWrAU= +github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= +github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= github.com/shurcooL/github_flavored_markdown v0.0.0-20181002035957-2122de532470/go.mod h1:2dOwnU2uBioM+SGy2aZoq1f/Sd1l9OkAeAUvjSyvgU0= @@ -565,15 +574,22 @@ github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb6 github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= +github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= +github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= github.com/twmb/murmur3 v1.1.6 h1:mqrRot1BRxm+Yct+vavLMou2/iJt0tNVTTC0QoIjaZg= github.com/twmb/murmur3 v1.1.6/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -776,6 +792,7 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -785,10 +802,13 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= +golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= diff --git a/wap/pkg/wifi/properties.go b/wap/pkg/wifi/properties.go index 34c24cc3..8e0513cf 100644 --- a/wap/pkg/wifi/properties.go +++ b/wap/pkg/wifi/properties.go @@ -8,11 +8,13 @@ import ( "fmt" "os/exec" "runtime" + "strconv" "strings" "github.com/docker/docker/api/types" "github.com/docker/docker/client" "github.com/libp2p/go-libp2p/core/crypto" + "github.com/shirou/gopsutil/v3/disk" "golang.org/x/crypto/ed25519" ) @@ -106,6 +108,88 @@ func GetBloxFreeSpace() (BloxFreeSpaceResponse, error) { } } +func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { + usage, err := disk.Usage("/") + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk usage: %v", err) + } + + usedPercentage := usage.UsedPercent + + return BloxFreeSpaceResponse{ + DeviceCount: 1, // assuming that the current directory is on a single device + Size: float32(usage.Total), + Used: float32(usage.Used), + Avail: float32(usage.Free), + UsedPercentage: float32(usedPercentage), + }, nil +} +func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { + usage, err := disk.Usage("/") + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk usage: %v", err) + } + + usedPercentage := usage.UsedPercent + + return BloxFreeSpaceResponse{ + DeviceCount: 1, // assuming that the current directory is on a single device + Size: float32(usage.Total), + Used: float32(usage.Used), + Avail: float32(usage.Free), + UsedPercentage: float32(usedPercentage), + }, nil +} + +func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { + cmd := `df -B1 2>/dev/null | grep -nE '/storage/(usb|sd[a-z]|nvme)' | awk '{sum2+=$2; sum3+=$3; sum4+=$4; sum5+=$5} END { print NR "," sum2 "," sum3 "," sum4 "," sum5}'` + out, err := exec.Command("sh", "-c", cmd).Output() + if err != nil { + return BloxFreeSpaceResponse{}, fmt.Errorf("error executing shell command: %v", err) + } + + parts := strings.Split(strings.TrimSpace(string(out)), ",") + + if len(parts) != 5 { + return BloxFreeSpaceResponse{}, fmt.Errorf("unexpected output format") + } + + deviceCount, errCount := strconv.Atoi(parts[0]) + size, errSize := strconv.ParseFloat(parts[1], 32) + used, errUsed := strconv.ParseFloat(parts[2], 32) + avail, errAvail := strconv.ParseFloat(parts[3], 32) + usedPercentage, errUsedPercentage := strconv.ParseFloat(parts[4], 32) + + var errors []string + if errCount != nil { + errors = append(errors, fmt.Sprintf("error parsing count: %v", errCount)) + } + if errSize != nil { + errors = append(errors, fmt.Sprintf("error parsing size: %v", errSize)) + } + if errUsed != nil { + errors = append(errors, fmt.Sprintf("error parsing used: %v", errUsed)) + } + if errAvail != nil { + errors = append(errors, fmt.Sprintf("error parsing avail: %v", errAvail)) + } + if errUsedPercentage != nil { + errors = append(errors, fmt.Sprintf("error parsing used_percentage: %v", errUsedPercentage)) + } + + if len(errors) > 0 { + return BloxFreeSpaceResponse{}, fmt.Errorf(strings.Join(errors, "; ")) + } + + return BloxFreeSpaceResponse{ + DeviceCount: deviceCount, + Size: float32(size), + Used: float32(used), + Avail: float32(avail), + UsedPercentage: float32(usedPercentage), + }, nil +} + func GetContainerInfo(containerName string) (DockerInfo, error) { cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation()) if err != nil { diff --git a/wap/pkg/wifi/properties_darwin.go b/wap/pkg/wifi/properties_darwin.go deleted file mode 100644 index 63df4644..00000000 --- a/wap/pkg/wifi/properties_darwin.go +++ /dev/null @@ -1,37 +0,0 @@ -//go:build darwin -// +build darwin - -package wifi - -import ( - "fmt" - "os/exec" - "strconv" - "strings" - - "github.com/shirou/gopsutil/disk" -) - -func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { - return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") -} -func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { - return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") -} - -func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { - usage, err := disk.Usage("/") - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk usage: %v", err) - } - - usedPercentage := usage.UsedPercent - - return BloxFreeSpaceResponse{ - DeviceCount: 1, // assuming that the current directory is on a single device - Size: float32(usage.Total), - Used: float32(usage.Used), - Avail: float32(usage.Free), - UsedPercentage: float32(usedPercentage), - }, nil -} diff --git a/wap/pkg/wifi/properties_linux.go b/wap/pkg/wifi/properties_linux.go deleted file mode 100644 index 482065cf..00000000 --- a/wap/pkg/wifi/properties_linux.go +++ /dev/null @@ -1,67 +0,0 @@ -//go:build linux -// +build linux - -package wifi - -import ( - "fmt" - "os/exec" - "strconv" - "strings" -) - -func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { - return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") -} -func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { - return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") -} - -func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { - cmd := `df -B1 2>/dev/null | grep -nE '/storage/(usb|sd[a-z]|nvme)' | awk '{sum2+=$2; sum3+=$3; sum4+=$4; sum5+=$5} END { print NR "," sum2 "," sum3 "," sum4 "," sum5}'` - out, err := exec.Command("sh", "-c", cmd).Output() - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error executing shell command: %v", err) - } - - parts := strings.Split(strings.TrimSpace(string(out)), ",") - - if len(parts) != 5 { - return BloxFreeSpaceResponse{}, fmt.Errorf("unexpected output format") - } - - deviceCount, errCount := strconv.Atoi(parts[0]) - size, errSize := strconv.ParseFloat(parts[1], 32) - used, errUsed := strconv.ParseFloat(parts[2], 32) - avail, errAvail := strconv.ParseFloat(parts[3], 32) - usedPercentage, errUsedPercentage := strconv.ParseFloat(parts[4], 32) - - var errors []string - if errCount != nil { - errors = append(errors, fmt.Sprintf("error parsing count: %v", errCount)) - } - if errSize != nil { - errors = append(errors, fmt.Sprintf("error parsing size: %v", errSize)) - } - if errUsed != nil { - errors = append(errors, fmt.Sprintf("error parsing used: %v", errUsed)) - } - if errAvail != nil { - errors = append(errors, fmt.Sprintf("error parsing avail: %v", errAvail)) - } - if errUsedPercentage != nil { - errors = append(errors, fmt.Sprintf("error parsing used_percentage: %v", errUsedPercentage)) - } - - if len(errors) > 0 { - return BloxFreeSpaceResponse{}, fmt.Errorf(strings.Join(errors, "; ")) - } - - return BloxFreeSpaceResponse{ - DeviceCount: deviceCount, - Size: float32(size), - Used: float32(used), - Avail: float32(avail), - UsedPercentage: float32(usedPercentage), - }, nil -} diff --git a/wap/pkg/wifi/properties_windows.go b/wap/pkg/wifi/properties_windows.go deleted file mode 100644 index 72d08cdf..00000000 --- a/wap/pkg/wifi/properties_windows.go +++ /dev/null @@ -1,50 +0,0 @@ -//go:build windows -// +build windows - -package wifi - -import ( - "fmt" - "os" - - "golang.org/x/sys/windows" -) - -func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { - return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") -} - -func GetBloxFreeSpaceLinux() (BloxFreeSpaceResponse, error) { - return BloxFreeSpaceResponse{}, fmt.Errorf("GetBloxFreeSpaceWindows not supported on this platform") -} - -func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { - wd, err := os.Getwd() - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error getting current directory: %v", err) - } - - lpFreeBytesAvailable := uint64(0) - lpTotalNumberOfBytes := uint64(0) - lpTotalNumberOfFreeBytes := uint64(0) - - disk := windows.StringToUTF16Ptr(wd) - - err = windows.GetDiskFreeSpaceEx(disk, &lpFreeBytesAvailable, &lpTotalNumberOfBytes, &lpTotalNumberOfFreeBytes) - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk space details: %v", err) - } - - total := lpTotalNumberOfBytes - free := lpFreeBytesAvailable - used := total - free - usedPercentage := (float32(used) / float32(total)) * 100 - - return BloxFreeSpaceResponse{ - DeviceCount: 1, // assuming that the current directory is on a single device - Size: float32(total), - Used: float32(used), - Avail: float32(free), - UsedPercentage: usedPercentage, - }, nil -} From 09e091803a64e8f5e6108fdfc111e8d261e0d41f Mon Sep 17 00:00:00 2001 From: ehsan shariati Date: Tue, 11 Jul 2023 19:19:11 -0400 Subject: [PATCH 7/9] Update properties.go --- wap/pkg/wifi/properties.go | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/wap/pkg/wifi/properties.go b/wap/pkg/wifi/properties.go index 8e0513cf..65db32f5 100644 --- a/wap/pkg/wifi/properties.go +++ b/wap/pkg/wifi/properties.go @@ -98,33 +98,17 @@ func GenerateRandomString(length int) (string, error) { func GetBloxFreeSpace() (BloxFreeSpaceResponse, error) { switch runtime.GOOS { case "windows": - return GetBloxFreeSpaceWindows() + return GetBloxFreeSpaceOther() case "linux": // Unix-like systems (including macOS) return GetBloxFreeSpaceLinux() case "darwin": - return GetBloxFreeSpaceMac() + return GetBloxFreeSpaceOther() default: return BloxFreeSpaceResponse{}, fmt.Errorf("unsupported operating system: %s", runtime.GOOS) } } -func GetBloxFreeSpaceMac() (BloxFreeSpaceResponse, error) { - usage, err := disk.Usage("/") - if err != nil { - return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk usage: %v", err) - } - - usedPercentage := usage.UsedPercent - - return BloxFreeSpaceResponse{ - DeviceCount: 1, // assuming that the current directory is on a single device - Size: float32(usage.Total), - Used: float32(usage.Used), - Avail: float32(usage.Free), - UsedPercentage: float32(usedPercentage), - }, nil -} -func GetBloxFreeSpaceWindows() (BloxFreeSpaceResponse, error) { +func GetBloxFreeSpaceOther() (BloxFreeSpaceResponse, error) { usage, err := disk.Usage("/") if err != nil { return BloxFreeSpaceResponse{}, fmt.Errorf("error getting disk usage: %v", err) From 6441a562a009c5e8ddddf8d5218f67f928cd73b3 Mon Sep 17 00:00:00 2001 From: ehsan shariati Date: Tue, 11 Jul 2023 19:31:24 -0400 Subject: [PATCH 8/9] Update properties.go --- wap/pkg/wifi/properties.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wap/pkg/wifi/properties.go b/wap/pkg/wifi/properties.go index 65db32f5..9aca1f2f 100644 --- a/wap/pkg/wifi/properties.go +++ b/wap/pkg/wifi/properties.go @@ -115,7 +115,7 @@ func GetBloxFreeSpaceOther() (BloxFreeSpaceResponse, error) { } usedPercentage := usage.UsedPercent - + log.Infow("GetBloxFreeSpaceOther", "usage", usage) return BloxFreeSpaceResponse{ DeviceCount: 1, // assuming that the current directory is on a single device Size: float32(usage.Total), From a7c74bce712954a3c95ca98064dd0f37723cd9e9 Mon Sep 17 00:00:00 2001 From: ehsan shariati Date: Tue, 11 Jul 2023 19:32:39 -0400 Subject: [PATCH 9/9] go mod tidy --- go.mod | 5 ++--- go.sum | 14 ++------------ 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/go.mod b/go.mod index beda3859..c6e56089 100644 --- a/go.mod +++ b/go.mod @@ -25,6 +25,7 @@ require ( github.com/multiformats/go-multicodec v0.9.0 github.com/multiformats/go-multihash v0.2.3 github.com/multiformats/go-varint v0.0.7 + github.com/shirou/gopsutil/v3 v3.23.6 github.com/urfave/cli/v2 v2.23.7 golang.org/x/crypto v0.7.0 gopkg.in/ini.v1 v1.67.0 @@ -69,7 +70,7 @@ require ( github.com/filecoin-project/go-statestore v0.2.0 // indirect github.com/flynn/noise v1.0.0 // indirect github.com/francoispqt/gojay v1.2.13 // indirect - github.com/functionland/anet v0.0.2-0.20230705144238-d8b3b0a8532c // indirect + github.com/functionland/anet v1.0.0 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect @@ -147,8 +148,6 @@ require ( github.com/quic-go/webtransport-go v0.5.3 // indirect github.com/raulk/go-watchdog v1.3.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/shirou/gopsutil v3.21.11+incompatible // indirect - github.com/shirou/gopsutil/v3 v3.23.6 // indirect github.com/spaolacci/murmur3 v1.1.0 // indirect github.com/twmb/murmur3 v1.1.6 // indirect github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect diff --git a/go.sum b/go.sum index 707e4a12..96b2d1ff 100644 --- a/go.sum +++ b/go.sum @@ -131,15 +131,14 @@ github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiD github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/functionland/anet v0.0.0-20230705195452-f4d9eba7e361/go.mod h1:UbNIaApWNzGf9w7Afkg1SEHvgmxyKFVdYYRQHQG6u70= -github.com/functionland/anet v0.0.2-0.20230705144238-d8b3b0a8532c h1:YN2DQr+2mptqAGEGPlO886a+5zdp1Drnk7coLjAVOVw= -github.com/functionland/anet v0.0.2-0.20230705144238-d8b3b0a8532c/go.mod h1:UbNIaApWNzGf9w7Afkg1SEHvgmxyKFVdYYRQHQG6u70= +github.com/functionland/anet v1.0.0 h1:JpLXbsjgHBO6LDCiNYcl02iSXSUWMwltYNzTG2fQYxM= +github.com/functionland/anet v1.0.0/go.mod h1:UbNIaApWNzGf9w7Afkg1SEHvgmxyKFVdYYRQHQG6u70= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -332,13 +331,11 @@ github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwA github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -422,7 +419,6 @@ github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mr-tron/base58 v1.1.0/go.mod h1:xcD2VGqlgYjBdcBLw+TuYLr8afG+Hj8g2eTVqeSzSU8= @@ -459,7 +455,6 @@ github.com/multiformats/go-varint v0.0.5/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXS github.com/multiformats/go-varint v0.0.6/go.mod h1:3Ls8CIEsrijN6+B7PbrXRPxHRPuXSrVKRY101jdMZYE= github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86/go.mod h1:kHJEU3ofeGjhHklVoIGuVj85JJwZ6kWPaJwCIxgnFmo= github.com/neelance/sourcemap v0.0.0-20151028013722-8c68805598ab/go.mod h1:Qr6/a/Q4r9LP1IltGz7tA7iOK1WonHEYhu1HRBA7ZiM= github.com/onsi/ginkgo/v2 v2.9.7 h1:06xGQy5www2oN160RtEZoTvnP2sPhEfePYmCDc2szss= @@ -524,8 +519,6 @@ github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd/go.mod h1:hPqNNc0+uJM6H+SuU8sEs5K5IQeKccPqeSjfgcKGgPk= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= -github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/shirou/gopsutil/v3 v3.23.6 h1:5y46WPI9QBKBbK7EEccUPNXpJpNrvPuTD0O2zHEHT08= github.com/shirou/gopsutil/v3 v3.23.6/go.mod h1:j7QX50DrXYggrpN30W0Mo+I4/8U2UUIQrnrhqUeWrAU= github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= @@ -805,8 +798,6 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -935,7 +926,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=