nuclei/v2/pkg/utils/utils.go
forgedhallpass ed1dc103fe RES-84 # Improve Nuclei CLI interface (WIP)
* Merge from parent

# Conflicts:
#	v2/cmd/nuclei/main.go
#	v2/internal/runner/config.go
#	v2/internal/runner/templates.go
#	v2/internal/runner/update.go
#	v2/pkg/templates/compile.go
#	v2/pkg/templates/compile_test.go
#	v2/pkg/types/types.go
2021-07-12 17:20:01 +03:00

44 lines
808 B
Go

package utils
import (
"reflect"
"strings"
)
func isEmpty(value interface{}) bool {
if value == nil {
return true
}
reflectValue := reflect.ValueOf(value)
actualValueInterface := reflectValue.Interface()
switch reflect.TypeOf(value).Kind() {
case reflect.String:
reflectedValue := actualValueInterface.(string)
return strings.TrimSpace(reflectedValue) == ""
case reflect.Slice, reflect.Array:
return reflectValue.Len() == 0
case reflect.Int32:
return IsEmpty(string(actualValueInterface.(rune)))
default:
if reflectValue.IsZero() {
return true
}
return false
}
}
func IsEmpty(value ...interface{}) bool {
for _, current := range value {
if IsNotEmpty(current) {
return false
}
}
return true
}
func IsNotEmpty(value interface{}) bool {
return !isEmpty(value)
}