File psgo.go
has 685 lines of code (exceeds 500 allowed). Consider refactoring.
Function parseStatus
has 126 lines of code (exceeds 50 allowed). Consider refactoring.
func parseStatus(pid string, lines []string) (*Status, error) {
s := Status{}
errUnexpectedInput := fmt.Errorf(
"unexpected input from /proc/%s/status",
pid,
Function main
has 74 lines of code (exceeds 50 allowed). Consider refactoring.
func main() {
var (
descriptors []string
pidsList []string
data [][]string
Function JoinNamespaceAndProcessInfoWithOptions
has 68 lines of code (exceeds 50 allowed). Consider refactoring.
func JoinNamespaceAndProcessInfoWithOptions(
pid string,
descriptors []string,
options *JoinNamespaceOpts,
) ([][]string, error) {
Similar blocks of code found in 2 locations. Consider refactoring.
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],
Similar blocks of code found in 2 locations. Consider refactoring.
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],
Function JoinNamespaceAndProcessInfoWithOptions
has 10 return statements (exceeds 4 allowed).
func JoinNamespaceAndProcessInfoWithOptions(
pid string,
descriptors []string,
options *JoinNamespaceOpts,
) ([][]string, error) {
Function TTYs
has 6 return statements (exceeds 4 allowed).
func TTYs() (*[]TTY, error) {
devDir, err := os.Open("/dev/")
if err != nil {
return nil, err
}
Function New
has 6 return statements (exceeds 4 allowed).
func New(pid string, joinUserNS bool) (*Process, error) {
p := Process{Pid: pid}
if err := p.parseStat(); err != nil {
return nil, err
Function JoinNamespaceAndProcessInfoWithOptions
has a Cognitive Complexity of 22 (exceeds 20 allowed). Consider refactoring.
func JoinNamespaceAndProcessInfoWithOptions(
pid string,
descriptors []string,
options *JoinNamespaceOpts,
) ([][]string, error) {
Function findID
has 5 return statements (exceeds 4 allowed).
func findID(
idStr string,
mapping []IDMap,
lookupFunc func(uid string) (string, error),
overflowFile string,
Function ReadMappings
has 5 return statements (exceeds 4 allowed).
func ReadMappings(path string) ([]IDMap, error) {
file, err := os.Open(path)
if err != nil {
return nil, errors.Wrapf(err, "cannot open %s", path)
}
Function BootTime
has 5 return statements (exceeds 4 allowed).
func BootTime() (int64, error) {
if bootTime != nil {
return *bootTime, nil
}
Similar blocks of code found in 2 locations. Consider refactoring.
func LookupUID(uid string) (string, error) {
uidNum, err := strconv.Atoi(uid)
if err != nil {
return "", errors.Wrap(err, "error parsing user ID")
}
Similar blocks of code found in 2 locations. Consider refactoring.
func LookupGID(gid string) (string, error) {
gidNum, err := strconv.Atoi(gid)
if err != nil {
return "", errors.Wrap(err, "error parsing group ID")
}
2: cannot find package "github.com/johnsonjh/gfpsgo" in any of:
psgo "github.com/johnsonjh/gfpsgo"
Line length
- `psgo.JoinNamespaceAndProcessInfo(pid string, descriptors []string) ([][]string, error)`
Your code does not pass gofmt in 1 place. Go fmt your code!
Line length
- `psgo.JoinNamespaceAndProcessInfoByPids(pids []string, descriptors []string) ([][]string, error)`