1// +build darwin,cgo linux,cgo 2// +build amd64 3 4package main 5 6import "C" 7import "github.com/go-enry/go-enry/v2" 8 9//export GetLanguage 10func GetLanguage(filename string, content []byte) string { 11 return enry.GetLanguage(filename, content) 12} 13 14//export GetLanguageByContent 15func GetLanguageByContent(filename string, content []byte) (language string, safe bool) { 16 return enry.GetLanguageByContent(filename, content) 17} 18 19//export GetLanguageByEmacsModeline 20func GetLanguageByEmacsModeline(content []byte) (language string, safe bool) { 21 return enry.GetLanguageByModeline(content) 22} 23 24//export GetLanguageByExtension 25func GetLanguageByExtension(filename string) (language string, safe bool) { 26 return enry.GetLanguageByExtension(filename) 27} 28 29//export GetLanguageByFilename 30func GetLanguageByFilename(filename string) (language string, safe bool) { 31 return enry.GetLanguageByFilename(filename) 32} 33 34//export GetLanguageByModeline 35func GetLanguageByModeline(content []byte) (language string, safe bool) { 36 return enry.GetLanguageByModeline(content) 37} 38 39//export GetLanguageByShebang 40func GetLanguageByShebang(content []byte) (language string, safe bool) { 41 return enry.GetLanguageByShebang(content) 42} 43 44//export GetLanguageByVimModeline 45func GetLanguageByVimModeline(content []byte) (language string, safe bool) { 46 return enry.GetLanguageByVimModeline(content) 47} 48 49//export GetLanguageExtensions 50func GetLanguageExtensions(language string, result *[]*C.char) { 51 strSliceCopy(result, enry.GetLanguageExtensions(language)) 52} 53 54//export GetLanguages 55func GetLanguages(filename string, content []byte, result *[]*C.char) { 56 strSliceCopy(result, enry.GetLanguages(filename, content)) 57} 58 59//export GetLanguagesByContent 60func GetLanguagesByContent(filename string, content []byte, candidates []string, result *[]*C.char) { 61 strSliceCopy(result, enry.GetLanguagesByContent(filename, content, candidates)) 62} 63 64//export GetLanguagesByEmacsModeline 65func GetLanguagesByEmacsModeline(filename string, content []byte, candidates []string, result *[]*C.char) { 66 strSliceCopy(result, enry.GetLanguagesByEmacsModeline(filename, content, candidates)) 67} 68 69//export GetLanguagesByExtension 70func GetLanguagesByExtension(filename string, content []byte, candidates []string, result *[]*C.char) { 71 strSliceCopy(result, enry.GetLanguagesByExtension(filename, content, candidates)) 72} 73 74//export GetLanguagesByFilename 75func GetLanguagesByFilename(filename string, content []byte, candidates []string, result *[]*C.char) { 76 strSliceCopy(result, enry.GetLanguagesByFilename(filename, content, candidates)) 77} 78 79//export GetLanguagesByModeline 80func GetLanguagesByModeline(filename string, content []byte, candidates []string, result *[]*C.char) { 81 strSliceCopy(result, enry.GetLanguagesByModeline(filename, content, candidates)) 82} 83 84//export GetLanguagesByShebang 85func GetLanguagesByShebang(filename string, content []byte, candidates []string, result *[]*C.char) { 86 strSliceCopy(result, enry.GetLanguagesByShebang(filename, content, candidates)) 87} 88 89//export GetLanguagesByVimModeline 90func GetLanguagesByVimModeline(filename string, content []byte, candidates []string, result *[]*C.char) { 91 strSliceCopy(result, enry.GetLanguagesByVimModeline(filename, content, candidates)) 92} 93 94//export GetMimeType 95func GetMimeType(path string, language string) string { 96 return enry.GetMIMEType(path, language) 97} 98 99//export IsBinary 100func IsBinary(data []byte) bool { 101 return enry.IsBinary(data) 102} 103 104//export IsConfiguration 105func IsConfiguration(path string) bool { 106 return enry.IsConfiguration(path) 107} 108 109//export IsDocumentation 110func IsDocumentation(path string) bool { 111 return enry.IsDocumentation(path) 112} 113 114//export IsDotFile 115func IsDotFile(path string) bool { 116 return enry.IsDotFile(path) 117} 118 119//export IsImage 120func IsImage(path string) bool { 121 return enry.IsImage(path) 122} 123 124//export IsVendor 125func IsVendor(path string) bool { 126 return enry.IsVendor(path) 127} 128 129//export IsGenerated 130func IsGenerated(path string, content []byte) bool { 131 return enry.IsGenerated(path, content) 132} 133 134//export GetColor 135func GetColor(language string) string { 136 return enry.GetColor(language) 137} 138 139func strSliceCopy(result *[]*C.char, slice []string) { 140 for _, str := range slice { 141 *result = append(*result, C.CString(str)) 142 } 143} 144 145func main() {} 146