首次提交:初始化项目代码

This commit is contained in:
sunct
2026-07-31 15:18:32 +08:00
commit d6393266b0
193 changed files with 14287 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
package main
import (
"flag"
"fmt"
"os"
"path/filepath"
)
// FilePath 带合法性校验的文件路径类型
type FilePath string
func (f *FilePath) Set(s string) error {
// 解析绝对路径
absPath, err := filepath.Abs(s)
if err != nil {
return fmt.Errorf("路径解析失败:%w", err)
}
// 校验文件存在且为普通文件
info, err := os.Stat(absPath)
if err != nil {
if os.IsNotExist(err) {
return fmt.Errorf("配置文件不存在:%s", absPath)
}
return fmt.Errorf("文件访问异常:%w", err)
}
if info.IsDir() {
return fmt.Errorf("路径为目录,需传入有效文件路径:%s", absPath)
}
*f = FilePath(absPath)
return nil
}
func (f *FilePath) String() string {
return string(*f)
}
func (f *FilePath) Get() any {
return string(*f)
}
func main() {
var configFile FilePath
flag.Var(&configFile, "config", "必填配置文件路径")
flag.Parse()
fmt.Printf("加载配置文件:%s\n", configFile)
}