diff options
| author | mo khan <mo@mokhan.ca> | 2025-05-14 13:18:54 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-05-14 13:18:54 -0600 |
| commit | 4b2d609a0efcc1d9b2f1a08f954d067ad1d9cd1e (patch) | |
| tree | 0afacf9217b0569130da6b97d4197331681bf119 /vendor/github.com/lufia | |
| parent | ab373d1fe698cd3f53258c09bc8515d88a6d0b9e (diff) | |
test: use playwright to test out an OIDC login
Diffstat (limited to 'vendor/github.com/lufia')
| -rw-r--r-- | vendor/github.com/lufia/plan9stats/README.md | 8 | ||||
| -rw-r--r-- | vendor/github.com/lufia/plan9stats/cpu.go | 5 | ||||
| -rw-r--r-- | vendor/github.com/lufia/plan9stats/disk.go | 116 | ||||
| -rw-r--r-- | vendor/github.com/lufia/plan9stats/host.go | 82 | ||||
| -rw-r--r-- | vendor/github.com/lufia/plan9stats/int.go | 9 |
5 files changed, 138 insertions, 82 deletions
diff --git a/vendor/github.com/lufia/plan9stats/README.md b/vendor/github.com/lufia/plan9stats/README.md index a21700c..70e5386 100644 --- a/vendor/github.com/lufia/plan9stats/README.md +++ b/vendor/github.com/lufia/plan9stats/README.md @@ -1,2 +1,10 @@ # plan9stats A module for retrieving statistics of Plan 9 + +[![GoDev][godev-image]][godev-url] +[![Actions Status][actions-image]][actions-url] + +[godev-image]: https://pkg.go.dev/badge/github.com/lufia/plan9stats +[godev-url]: https://pkg.go.dev/github.com/lufia/plan9stats +[actions-image]: https://github.com/lufia/plan9stats/workflows/Test/badge.svg?branch=main +[actions-url]: https://github.com/lufia/plan9stats/actions?workflow=Test diff --git a/vendor/github.com/lufia/plan9stats/cpu.go b/vendor/github.com/lufia/plan9stats/cpu.go index a101b91..eaff362 100644 --- a/vendor/github.com/lufia/plan9stats/cpu.go +++ b/vendor/github.com/lufia/plan9stats/cpu.go @@ -178,9 +178,12 @@ func ReadCPUStats(ctx context.Context, opts ...Option) (*CPUStats, error) { var up uint32parser pids := make([]uint32, len(names)) for i, s := range names { + if s == "trace" { + continue + } pids[i] = up.Parse(s) } - if up.err != nil { + if err := up.err; err != nil { return nil, err } sort.Slice(pids, func(i, j int) bool { diff --git a/vendor/github.com/lufia/plan9stats/disk.go b/vendor/github.com/lufia/plan9stats/disk.go new file mode 100644 index 0000000..4a4fa0c --- /dev/null +++ b/vendor/github.com/lufia/plan9stats/disk.go @@ -0,0 +1,116 @@ +package stats + +import ( + "bufio" + "bytes" + "context" + "os" + "path/filepath" + "strings" +) + +// Storage represents /dev/sdXX/ctl. +type Storage struct { + Name string + Model string + Capacity int64 + Partitions []*Partition +} + +// Partition represents a part of /dev/sdXX/ctl. +type Partition struct { + Name string + Start uint64 + End uint64 +} + +func ReadStorages(ctx context.Context, opts ...Option) ([]*Storage, error) { + cfg := newConfig(opts...) + sdctl := filepath.Join(cfg.rootdir, "/dev/sdctl") + f, err := os.Open(sdctl) + if err != nil { + return nil, err + } + defer f.Close() + + var a []*Storage + scanner := bufio.NewScanner(f) + for scanner.Scan() { + fields := bytes.Split(scanner.Bytes(), delim) + if len(fields) == 0 { + continue + } + exp := string(fields[0]) + "*" + if !strings.HasPrefix(exp, "sd") { + continue + } + dir := filepath.Join(cfg.rootdir, "/dev", exp) + m, err := filepath.Glob(dir) + if err != nil { + return nil, err + } + for _, dir := range m { + s, err := readStorage(dir) + if err != nil { + return nil, err + } + a = append(a, s) + } + } + if err := scanner.Err(); err != nil { + return nil, err + } + return a, nil +} + +func readStorage(dir string) (*Storage, error) { + ctl := filepath.Join(dir, "ctl") + f, err := os.Open(ctl) + if err != nil { + return nil, err + } + defer f.Close() + + var s Storage + s.Name = filepath.Base(dir) + scanner := bufio.NewScanner(f) + for scanner.Scan() { + line := scanner.Bytes() + switch { + case bytes.HasPrefix(line, []byte("inquiry ")): + s.Model = string(bytes.TrimSpace(line[7:])) + case bytes.HasPrefix(line, []byte("geometry ")): + fields := bytes.Split(line, delim) + if len(fields) < 3 { + continue + } + var p intParser + sec := p.ParseInt64(string(fields[1]), 10) + size := p.ParseInt64(string(fields[2]), 10) + if err := p.Err(); err != nil { + return nil, err + } + s.Capacity = sec * size + case bytes.HasPrefix(line, []byte("part ")): + fields := bytes.Split(line, delim) + if len(fields) < 4 { + continue + } + var p intParser + start := p.ParseUint64(string(fields[2]), 10) + end := p.ParseUint64(string(fields[3]), 10) + if err := p.Err(); err != nil { + return nil, err + } + s.Partitions = append(s.Partitions, &Partition{ + Name: string(fields[1]), + Start: start, + End: end, + }) + } + } + if err := scanner.Err(); err != nil { + return nil, err + } + return &s, nil +} diff --git a/vendor/github.com/lufia/plan9stats/host.go b/vendor/github.com/lufia/plan9stats/host.go index 957e903..a3921c0 100644 --- a/vendor/github.com/lufia/plan9stats/host.go +++ b/vendor/github.com/lufia/plan9stats/host.go @@ -109,12 +109,6 @@ func parseGauge(s string, r *Gauge) error { return nil } -type Storage struct { - Name string - Model string - Capacity int64 -} - type Interface struct { Name string Addr string @@ -177,7 +171,7 @@ func ReadHost(ctx context.Context, opts ...Option) (*Host, error) { } h.Sysname = name - a, err := readStorages(cfg.rootdir) + a, err := ReadStorages(ctx, opts...) if err != nil { return nil, err } @@ -203,80 +197,6 @@ func readSysname(rootdir string) (string, error) { return string(bytes.TrimSpace(b)), nil } -func readStorages(rootdir string) ([]*Storage, error) { - sdctl := filepath.Join(rootdir, "/dev/sdctl") - f, err := os.Open(sdctl) - if err != nil { - return nil, err - } - defer f.Close() - - var a []*Storage - scanner := bufio.NewScanner(f) - for scanner.Scan() { - fields := bytes.Split(scanner.Bytes(), delim) - if len(fields) == 0 { - continue - } - exp := string(fields[0]) + "*" - if !strings.HasPrefix(exp, "sd") { - continue - } - dir := filepath.Join(rootdir, "/dev", exp) - m, err := filepath.Glob(dir) - if err != nil { - return nil, err - } - for _, dir := range m { - s, err := readStorage(dir) - if err != nil { - return nil, err - } - a = append(a, s) - } - } - if err := scanner.Err(); err != nil { - return nil, err - } - return a, nil -} - -func readStorage(dir string) (*Storage, error) { - ctl := filepath.Join(dir, "ctl") - f, err := os.Open(ctl) - if err != nil { - return nil, err - } - defer f.Close() - - var s Storage - s.Name = filepath.Base(dir) - scanner := bufio.NewScanner(f) - for scanner.Scan() { - line := scanner.Bytes() - switch { - case bytes.HasPrefix(line, []byte("inquiry")): - s.Model = string(bytes.TrimSpace(line[7:])) - case bytes.HasPrefix(line, []byte("geometry")): - fields := bytes.Split(line, delim) - if len(fields) < 3 { - continue - } - var p intParser - sec := p.ParseInt64(string(fields[1]), 10) - size := p.ParseInt64(string(fields[2]), 10) - if err := p.Err(); err != nil { - return nil, err - } - s.Capacity = sec * size - } - } - if err := scanner.Err(); err != nil { - return nil, err - } - return &s, nil -} - type IPStats struct { ID int // number of interface in ipifc dir Device string // associated physical device diff --git a/vendor/github.com/lufia/plan9stats/int.go b/vendor/github.com/lufia/plan9stats/int.go index db133c4..e3c9dc8 100644 --- a/vendor/github.com/lufia/plan9stats/int.go +++ b/vendor/github.com/lufia/plan9stats/int.go @@ -26,6 +26,15 @@ func (p *intParser) ParseInt64(s string, base int) int64 { return n } +func (p *intParser) ParseUint64(s string, base int) uint64 { + if p.err != nil { + return 0 + } + var n uint64 + n, p.err = strconv.ParseUint(s, base, 64) + return n +} + func (p *intParser) Err() error { return p.err } |
