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