From dd136858f1ea40ad3c94191d647487fa4f31926c Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 18 Oct 2024 20:33:49 +0200 Subject: Adding upstream version 9.0.0. Signed-off-by: Daniel Baumann --- modules/analyze/code_language.go | 27 ++++++++++++++++++++++++++ modules/analyze/generated.go | 27 ++++++++++++++++++++++++++ modules/analyze/vendor.go | 13 +++++++++++++ modules/analyze/vendor_test.go | 41 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 modules/analyze/code_language.go create mode 100644 modules/analyze/generated.go create mode 100644 modules/analyze/vendor.go create mode 100644 modules/analyze/vendor_test.go (limited to 'modules/analyze') diff --git a/modules/analyze/code_language.go b/modules/analyze/code_language.go new file mode 100644 index 0000000..74e7a06 --- /dev/null +++ b/modules/analyze/code_language.go @@ -0,0 +1,27 @@ +// Copyright 2020 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package analyze + +import ( + "path/filepath" + + "github.com/go-enry/go-enry/v2" +) + +// GetCodeLanguage detects code language based on file name and content +func GetCodeLanguage(filename string, content []byte) string { + if language, ok := enry.GetLanguageByExtension(filename); ok { + return language + } + + if language, ok := enry.GetLanguageByFilename(filename); ok { + return language + } + + if len(content) == 0 { + return enry.OtherLanguage + } + + return enry.GetLanguage(filepath.Base(filename), content) +} diff --git a/modules/analyze/generated.go b/modules/analyze/generated.go new file mode 100644 index 0000000..f608387 --- /dev/null +++ b/modules/analyze/generated.go @@ -0,0 +1,27 @@ +// Copyright 2021 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package analyze + +import ( + "path/filepath" + "strings" + + "github.com/go-enry/go-enry/v2/data" +) + +// IsGenerated returns whether or not path is a generated path. +func IsGenerated(path string) bool { + ext := strings.ToLower(filepath.Ext(path)) + if _, ok := data.GeneratedCodeExtensions[ext]; ok { + return true + } + + for _, m := range data.GeneratedCodeNameMatchers { + if m(path) { + return true + } + } + + return false +} diff --git a/modules/analyze/vendor.go b/modules/analyze/vendor.go new file mode 100644 index 0000000..adcca92 --- /dev/null +++ b/modules/analyze/vendor.go @@ -0,0 +1,13 @@ +// Copyright 2021 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package analyze + +import ( + "github.com/go-enry/go-enry/v2" +) + +// IsVendor returns whether or not path is a vendor path. +func IsVendor(path string) bool { + return enry.IsVendor(path) +} diff --git a/modules/analyze/vendor_test.go b/modules/analyze/vendor_test.go new file mode 100644 index 0000000..aafd3c4 --- /dev/null +++ b/modules/analyze/vendor_test.go @@ -0,0 +1,41 @@ +// Copyright 2021 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package analyze + +import "testing" + +func TestIsVendor(t *testing.T) { + tests := []struct { + path string + want bool + }{ + {"cache/", true}, + {"random/cache/", true}, + {"cache", false}, + {"dependencies/", true}, + {"Dependencies/", true}, + {"dependency/", false}, + {"dist/", true}, + {"dist", false}, + {"random/dist/", true}, + {"random/dist", false}, + {"deps/", true}, + {"configure", true}, + {"a/configure", true}, + {"config.guess", true}, + {"config.guess/", false}, + {".vscode/", true}, + {"doc/_build/", true}, + {"a/docs/_build/", true}, + {"a/dasdocs/_build-vsdoc.js", true}, + {"a/dasdocs/_build-vsdoc.j", false}, + } + for _, tt := range tests { + t.Run(tt.path, func(t *testing.T) { + if got := IsVendor(tt.path); got != tt.want { + t.Errorf("IsVendor() = %v, want %v", got, tt.want) + } + }) + } +} -- cgit v1.2.3