mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-31 08:29:33 +08:00 
			
		
		
		
	* feat: support openim prom enbels Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: support openim prom enbels Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: support openim prom enbels Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: support openim prom enbels Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: support openim prom enbels Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: support openim prom enbels Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: support openim prom enbels Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: support openim prom enbels Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add go formity checker Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim offline deployment docs Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim offline deployment docs Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim offline deployment docs Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim support arm arch Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: fox openim support arm arch Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: fox openim support arm arch Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim v3.4 and v3.5 changelog Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add devcontainer.json file Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim v3.4 and v3.5 changelog Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: add openim v3.4 and v3.5 changelog Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * Update util.sh amend shell get pid command fd on mac. * feat: Add To start developing OpenIM Docs Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * docs: update openim readme and dov container Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: set openim lint Signed-off-by: Xinwei Xiong(cubxxw) <3293172751nss@gmail.com> * feat: fix go release scripts Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: fix go release scripts Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * docs(changelog): add CHANGELOG-3.5.0+6.a09200e.md * docs(changelog): add CHANGELOG-3.5.0+2.e0bd54f.md * docs(changelog): add CHANGELOG-3.5.0+2.e0bd54f-1-g4ce6a0fa6.md * feat: set openim lint Signed-off-by: Xinwei Xiong(cubxxw) <3293172751nss@gmail.com> * docs(changelog): add CHANGELOG-3.5.0+2.e0bd54f-3-g52f9fc209.md * docs(changelog): add CHANGELOG-3.5.0+2.e0bd54f-4-g87f685b17.md * docs(changelog): add CHANGELOG-3.5.0.md * feat: set openim lint Signed-off-by: Xinwei Xiong(cubxxw) <3293172751nss@gmail.com> * fix: fix scripts functions upload Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: fix scripts functions upload Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * docs(changelog): add CHANGELOG-3.5.0.md * fix: fix scripts functions upload Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * fix: fix scripts functions upload Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> * feat: set openim lint Signed-off-by: Xinwei Xiong(cubxxw) <3293172751nss@gmail.com> --------- Signed-off-by: Xinwei Xiong (cubxxw) <3293172751nss@gmail.com> Signed-off-by: Xinwei Xiong(cubxxw) <3293172751nss@gmail.com> Co-authored-by: mrwenhui <mr.wenhui@gmail.com>
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package checker
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"os"
 | |
| 	"path/filepath"
 | |
| 	"regexp"
 | |
| 	"strings"
 | |
| 
 | |
| 	"github.com/openimsdk/open-im-server/tools/formitychecker/config"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	underscoreRegex = regexp.MustCompile(`^[a-zA-Z0-9_]+\.[a-zA-Z0-9]+$`)
 | |
| 	hyphenRegex     = regexp.MustCompile(`^[a-zA-Z0-9\-]+\.[a-zA-Z0-9]+$`)
 | |
| )
 | |
| 
 | |
| // CheckDirectoCheckDirectoryries initiates the checking process for the specified directories using configuration from config.Config.
 | |
| func CheckDirectory(cfg *config.Config) error {
 | |
| 	ignoreMap := make(map[string]struct{})
 | |
| 	for _, dir := range cfg.IgnoreDirs {
 | |
| 		ignoreMap[dir] = struct{}{}
 | |
| 	}
 | |
| 
 | |
| 	for _, targetDir := range cfg.TargetDirs {
 | |
| 		err := filepath.Walk(targetDir, func(path string, info os.FileInfo, err error) error {
 | |
| 			if err != nil {
 | |
| 				return err
 | |
| 			}
 | |
| 
 | |
| 			// Skip if the directory is in the ignore list
 | |
| 			dirName := filepath.Base(filepath.Dir(path))
 | |
| 			if _, ok := ignoreMap[dirName]; ok && info.IsDir() {
 | |
| 				return filepath.SkipDir
 | |
| 			}
 | |
| 
 | |
| 			// Check the naming convention
 | |
| 			if err := checkNamingConvention(path, info); err != nil {
 | |
| 				fmt.Println(err)
 | |
| 			}
 | |
| 
 | |
| 			return nil
 | |
| 		})
 | |
| 
 | |
| 		if err != nil {
 | |
| 			return fmt.Errorf("error checking directory '%s': %w", targetDir, err)
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // checkNamingConvention checks if the file or directory name conforms to the standard naming conventions.
 | |
| func checkNamingConvention(path string, info os.FileInfo) error {
 | |
| 	fileName := info.Name()
 | |
| 
 | |
| 	// Handle special cases for directories like .git
 | |
| 	if info.IsDir() && strings.HasPrefix(fileName, ".") {
 | |
| 		return nil // Skip special directories
 | |
| 	}
 | |
| 
 | |
| 	// Extract the main part of the name (without extension for files)
 | |
| 	mainName := fileName
 | |
| 	if !info.IsDir() {
 | |
| 		mainName = strings.TrimSuffix(fileName, filepath.Ext(fileName))
 | |
| 	}
 | |
| 
 | |
| 	// Determine the type of file and apply corresponding naming rule
 | |
| 	switch {
 | |
| 	case info.IsDir():
 | |
| 		if !isValidName(mainName, "_") { // Directory names must only contain underscores
 | |
| 			return fmt.Errorf("!!! invalid directory name: %s", path)
 | |
| 		}
 | |
| 	case strings.HasSuffix(fileName, ".go"):
 | |
| 		if !isValidName(mainName, "_") { // Go files must only contain underscores
 | |
| 			return fmt.Errorf("!!! invalid Go file name: %s", path)
 | |
| 		}
 | |
| 	case strings.HasSuffix(fileName, ".yml"), strings.HasSuffix(fileName, ".yaml"), strings.HasSuffix(fileName, ".md"):
 | |
| 		if !isValidName(mainName, "-") { // YML, YAML, and Markdown files must only contain hyphens
 | |
| 			return fmt.Errorf("!!! invalid file name: %s", path)
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| // isValidName checks if the file name conforms to the specified rule (underscore or hyphen).
 | |
| func isValidName(name, charType string) bool {
 | |
| 	switch charType {
 | |
| 	case "_":
 | |
| 		return underscoreRegex.MatchString(name)
 | |
| 	case "-":
 | |
| 		return hyphenRegex.MatchString(name)
 | |
| 	default:
 | |
| 		return false
 | |
| 	}
 | |
| }
 |