From 114f1e8ed46dec4bdb9740db49aa192f68dfcf74 Mon Sep 17 00:00:00 2001 From: "Ian A. Mason" Date: Fri, 27 Apr 2018 19:29:45 -0700 Subject: [PATCH] reduce cyclomatic complexity for my GPA. Sucks. --- shared/filetypes.go | 66 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 14 deletions(-) diff --git a/shared/filetypes.go b/shared/filetypes.go index 8f54fe8..95eac1e 100644 --- a/shared/filetypes.go +++ b/shared/filetypes.go @@ -59,26 +59,64 @@ func getFileType(realPath string) (fileType int) { LogFatal("There was an error getting the type of %s. Make sure that the 'file' command is installed.", realPath) } - // Test the output - if fo := string(out); strings.Contains(fo, "ELF") && strings.Contains(fo, "executable") { - fileType = fileTypeELFEXECUTABLE - } else if strings.Contains(fo, "Mach-O") && strings.Contains(fo, "executable") { - fileType = fileTypeMACHEXECUTABLE - } else if strings.Contains(fo, "ELF") && strings.Contains(fo, "shared") { - fileType = fileTypeELFSHARED - } else if strings.Contains(fo, "Mach-O") && strings.Contains(fo, "dynamically linked shared") { - fileType = fileTypeMACHSHARED + fo := string(out) + + if strings.Contains(fo, "ELF") { + + if strings.Contains(fo, "executable") { + fileType = fileTypeELFEXECUTABLE + } else if strings.Contains(fo, "shared") { + fileType = fileTypeELFSHARED + } else if strings.Contains(fo, "relocatable") { + fileType = fileTypeELFOBJECT + } else { + fileType = fileTypeUNDEFINED + } + + + + } else if strings.Contains(fo, "Mach-O") { + + if strings.Contains(fo, "executable") { + fileType = fileTypeMACHEXECUTABLE + } else if strings.Contains(fo, "dynamically linked shared") { + fileType = fileTypeMACHSHARED + } else if strings.Contains(fo, "object") { + fileType = fileTypeMACHOBJECT + } else { + fileType = fileTypeUNDEFINED + } + } else if strings.Contains(fo, "current ar archive") { fileType = fileTypeARCHIVE } else if strings.Contains(fo, "thin archive") { fileType = fileTypeTHINARCHIVE - } else if strings.Contains(fo, "ELF") && strings.Contains(fo, "relocatable") { - fileType = fileTypeELFOBJECT - } else if strings.Contains(fo, "Mach-O") && strings.Contains(fo, "object") { - fileType = fileTypeMACHOBJECT - } else { + } else { fileType = fileTypeUNDEFINED } + + + // Test the output + // if fo := string(out); strings.Contains(fo, "ELF") && strings.Contains(fo, "executable") { + // fileType = fileTypeELFEXECUTABLE + // } else if strings.Contains(fo, "Mach-O") && strings.Contains(fo, "executable") { + // fileType = fileTypeMACHEXECUTABLE + // } else if strings.Contains(fo, "ELF") && strings.Contains(fo, "shared") { + // fileType = fileTypeELFSHARED + // } else if strings.Contains(fo, "Mach-O") && strings.Contains(fo, "dynamically linked shared") { + // fileType = fileTypeMACHSHARED + // } else if strings.Contains(fo, "current ar archive") { + // fileType = fileTypeARCHIVE + // } else if strings.Contains(fo, "thin archive") { + // fileType = fileTypeTHINARCHIVE + // } else if strings.Contains(fo, "ELF") && strings.Contains(fo, "relocatable") { + // fileType = fileTypeELFOBJECT + // } else if strings.Contains(fo, "Mach-O") && strings.Contains(fo, "object") { + // fileType = fileTypeMACHOBJECT + // } else { + // fileType = fileTypeUNDEFINED + // } + return }