johnsonjh/gfpsgo

View on GitHub

Showing 20 of 20 total issues

File psgo.go has 685 lines of code (exceeds 500 allowed). Consider refactoring.
Open

// Copyright 2021 Jeffery H. Johnson <trnsz@pobox.com>
// Copyright 2021 Gridfinity, LLC.
// Copyright 2020 The psgo authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
Severity: Minor
Found in psgo.go - About 6 hrs to fix

    Function parseStatus has 126 lines of code (exceeds 50 allowed). Consider refactoring.
    Open

    func parseStatus(pid string, lines []string) (*Status, error) {
    s := Status{}
    errUnexpectedInput := fmt.Errorf(
    "unexpected input from /proc/%s/status",
    pid,
    Severity: Major
    Found in internal/proc/status.go - About 4 hrs to fix

      Function main has 74 lines of code (exceeds 50 allowed). Consider refactoring.
      Open

      func main() {
      var (
      descriptors []string
      pidsList []string
      data [][]string
      Severity: Minor
      Found in cmd/sample.go - About 1 hr to fix

        Function JoinNamespaceAndProcessInfoWithOptions has 68 lines of code (exceeds 50 allowed). Consider refactoring.
        Open

        func JoinNamespaceAndProcessInfoWithOptions(
        pid string,
        descriptors []string,
        options *JoinNamespaceOpts,
        ) ([][]string, error) {
        Severity: Minor
        Found in psgo.go - About 1 hr to fix

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

          func processHUSER(p *process.Process, ctx *psContext) (string, error) {
          if hp := findHostProcess(p, ctx); hp != nil {
          if ctx.opts != nil && len(ctx.opts.UIDMap) > 0 {
          return findID(
          hp.Status.Uids[1],
          Severity: Major
          Found in psgo.go and 1 other location - About 1 hr to fix
          psgo.go on lines 933..946

          Similar blocks of code found in 2 locations. Consider refactoring.
          Open

          func processHGROUP(p *process.Process, ctx *psContext) (string, error) {
          if hp := findHostProcess(p, ctx); hp != nil {
          if ctx.opts != nil && len(ctx.opts.GIDMap) > 0 {
          return findID(
          hp.Status.Gids[1],
          Severity: Major
          Found in psgo.go and 1 other location - About 1 hr to fix
          psgo.go on lines 915..928

          Function JoinNamespaceAndProcessInfoWithOptions has 10 return statements (exceeds 4 allowed).
          Open

          func JoinNamespaceAndProcessInfoWithOptions(
          pid string,
          descriptors []string,
          options *JoinNamespaceOpts,
          ) ([][]string, error) {
          Severity: Major
          Found in psgo.go - About 1 hr to fix

            Function TTYs has 6 return statements (exceeds 4 allowed).
            Open

            func TTYs() (*[]TTY, error) {
            devDir, err := os.Open("/dev/")
            if err != nil {
            return nil, err
            }
            Severity: Major
            Found in internal/dev/tty.go - About 40 mins to fix

              Function New has 6 return statements (exceeds 4 allowed).
              Open

              func New(pid string, joinUserNS bool) (*Process, error) {
              p := Process{Pid: pid}
               
              if err := p.parseStat(); err != nil {
              return nil, err
              Severity: Major
              Found in internal/process/process.go - About 40 mins to fix

                Function JoinNamespaceAndProcessInfoWithOptions has a Cognitive Complexity of 22 (exceeds 20 allowed). Consider refactoring.
                Open

                func JoinNamespaceAndProcessInfoWithOptions(
                pid string,
                descriptors []string,
                options *JoinNamespaceOpts,
                ) ([][]string, error) {
                Severity: Minor
                Found in psgo.go - About 35 mins to fix

                Function findID has 5 return statements (exceeds 4 allowed).
                Open

                func findID(
                idStr string,
                mapping []IDMap,
                lookupFunc func(uid string) (string, error),
                overflowFile string,
                Severity: Major
                Found in psgo.go - About 35 mins to fix

                  Function ReadMappings has 5 return statements (exceeds 4 allowed).
                  Open

                  func ReadMappings(path string) ([]IDMap, error) {
                  file, err := os.Open(path)
                  if err != nil {
                  return nil, errors.Wrapf(err, "cannot open %s", path)
                  }
                  Severity: Major
                  Found in internal/proc/ns.go - About 35 mins to fix

                    Function BootTime has 5 return statements (exceeds 4 allowed).
                    Open

                    func BootTime() (int64, error) {
                    if bootTime != nil {
                    return *bootTime, nil
                    }
                     
                     
                    Severity: Major
                    Found in internal/host/host.go - About 35 mins to fix

                      Similar blocks of code found in 2 locations. Consider refactoring.
                      Open

                      func LookupUID(uid string) (string, error) {
                      uidNum, err := strconv.Atoi(uid)
                      if err != nil {
                      return "", errors.Wrap(err, "error parsing user ID")
                      }
                      Severity: Minor
                      Found in internal/process/process.go and 1 other location - About 35 mins to fix
                      internal/process/process.go on lines 51..61

                      Similar blocks of code found in 2 locations. Consider refactoring.
                      Open

                      func LookupGID(gid string) (string, error) {
                      gidNum, err := strconv.Atoi(gid)
                      if err != nil {
                      return "", errors.Wrap(err, "error parsing group ID")
                      }
                      Severity: Minor
                      Found in internal/process/process.go and 1 other location - About 35 mins to fix
                      internal/process/process.go on lines 65..75

                      2: cannot find package "github.com/johnsonjh/gfpsgo" in any of:
                      Open

                      psgo "github.com/johnsonjh/gfpsgo"
                      Severity: Minor
                      Found in cmd/sample.go by govet

                      Line length
                      Open

                      - `psgo.JoinNamespaceAndProcessInfo(pid string, descriptors []string) ([][]string, error)`
                      Severity: Info
                      Found in README.md by markdownlint

                      Your code does not pass gofmt in 1 place. Go fmt your code!
                      Open

                      // Copyright 2021 Jeffery H. Johnson <trnsz@pobox.com>
                      Severity: Minor
                      Found in psgo.go by gofmt

                      Line length
                      Open

                      - `psgo.JoinNamespaceAndProcessInfoByPids(pids []string, descriptors []string) ([][]string, error)`
                      Severity: Info
                      Found in README.md by markdownlint

                      XXX found
                      Open

                      .XXX
                      Severity: Minor
                      Found in .gitignore by fixme
                      Severity
                      Category
                      Status
                      Source
                      Language