github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/scanners/azure/functions/format.go (about) 1 package functions 2 3 import ( 4 "fmt" 5 "strings" 6 ) 7 8 func Format(args ...interface{}) interface{} { 9 formatter := generateFormatterString(args...) 10 11 return fmt.Sprintf(formatter, args[1:]...) 12 } 13 14 func generateFormatterString(args ...interface{}) string { 15 16 formatter, ok := args[0].(string) 17 if !ok { 18 return "" 19 } 20 for i, arg := range args[1:] { 21 switch arg.(type) { 22 case string: 23 formatter = strings.ReplaceAll(formatter, fmt.Sprintf("{%d}", i), "%s") 24 case int, int32, int64, uint, uint32, uint64: 25 formatter = strings.ReplaceAll(formatter, fmt.Sprintf("{%d}", i), "%d") 26 case float64, float32: 27 formatter = strings.ReplaceAll(formatter, fmt.Sprintf("{%d}", i), "%f") 28 } 29 } 30 return formatter 31 }