mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Update gitea-vet to v0.2.1 (#12282)
* change to new code location * vendor * tagged version v0.2.0 * gitea-vet v0.2.1 Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		
							
								
								
									
										73
									
								
								vendor/code.gitea.io/gitea-vet/checks/license.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								vendor/code.gitea.io/gitea-vet/checks/license.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,73 @@
 | 
			
		||||
// Copyright 2020 The Gitea Authors. All rights reserved.
 | 
			
		||||
// Use of this source code is governed by a MIT-style
 | 
			
		||||
// license that can be found in the LICENSE file.
 | 
			
		||||
 | 
			
		||||
package checks
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"regexp"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"golang.org/x/tools/go/analysis"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	header     = regexp.MustCompile(`.*Copyright.*\d{4}.*(Gitea|Gogs)`)
 | 
			
		||||
	goGenerate = "//go:generate"
 | 
			
		||||
	buildTag   = "// +build"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var License = &analysis.Analyzer{
 | 
			
		||||
	Name: "license",
 | 
			
		||||
	Doc:  "check for a copyright header",
 | 
			
		||||
	Run:  runLicense,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func runLicense(pass *analysis.Pass) (interface{}, error) {
 | 
			
		||||
	for _, file := range pass.Files {
 | 
			
		||||
		if len(file.Comments) == 0 {
 | 
			
		||||
			pass.Reportf(file.Pos(), "Copyright not found")
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if len(file.Comments[0].List) == 0 {
 | 
			
		||||
			pass.Reportf(file.Pos(), "Copyright not found or wrong")
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		commentGroup := 0
 | 
			
		||||
		if strings.HasPrefix(file.Comments[0].List[0].Text, goGenerate) {
 | 
			
		||||
			if len(file.Comments[0].List) > 1 {
 | 
			
		||||
				pass.Reportf(file.Pos(), "Must be an empty line between the go:generate and the Copyright")
 | 
			
		||||
				continue
 | 
			
		||||
			}
 | 
			
		||||
			commentGroup++
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if strings.HasPrefix(file.Comments[0].List[0].Text, buildTag) {
 | 
			
		||||
			commentGroup++
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if len(file.Comments) < commentGroup+1 {
 | 
			
		||||
			pass.Reportf(file.Pos(), "Copyright not found")
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if len(file.Comments[commentGroup].List) < 1 {
 | 
			
		||||
			pass.Reportf(file.Pos(), "Copyright not found or wrong")
 | 
			
		||||
			continue
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		var check bool
 | 
			
		||||
		for _, comment := range file.Comments[commentGroup].List {
 | 
			
		||||
			if header.MatchString(comment.Text) {
 | 
			
		||||
				check = true
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if !check {
 | 
			
		||||
			pass.Reportf(file.Pos(), "Copyright did not match check")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return nil, nil
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user