88 lines
2.0 KiB
Go
88 lines
2.0 KiB
Go
package modules
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
type config struct {
|
|
db_host string
|
|
db_port string
|
|
db_username string
|
|
db_password string
|
|
db_name string
|
|
server_host string
|
|
server_port string
|
|
}
|
|
|
|
func Readconfig() string {
|
|
c := config{} // 创建空的 config 结构体实例
|
|
// 打开配置文件
|
|
file, err := os.Open("./config.conf")
|
|
if err != nil {
|
|
fmt.Println("无法打开配置文件:", err)
|
|
}
|
|
defer file.Close()
|
|
var dsn string // 存储数据库连接字符串
|
|
|
|
// 创建一个Scanner来读取文件内容
|
|
scanner := bufio.NewScanner(file)
|
|
|
|
// 逐行读取文件
|
|
for scanner.Scan() {
|
|
line := scanner.Text()
|
|
// 忽略空行和注释行
|
|
if len(line) == 0 || strings.HasPrefix(line, "#") {
|
|
continue
|
|
}
|
|
// 解析配置项
|
|
parts := strings.Split(line, "=")
|
|
if len(parts) != 2 {
|
|
fmt.Println("无效的配置项:", line)
|
|
continue
|
|
}
|
|
key := strings.TrimSpace(parts[0])
|
|
value := strings.TrimSpace(parts[1])
|
|
|
|
//根据需要处理配置项
|
|
switch key {
|
|
case "db_host":
|
|
c.db_host = value
|
|
fmt.Println("数据库地址:", value)
|
|
case "db_port":
|
|
c.db_port = value
|
|
fmt.Println("数据库端口:", value)
|
|
case "db_username":
|
|
c.db_username = value
|
|
fmt.Println("数据库用户名:", value)
|
|
case "db_password":
|
|
c.db_password = value
|
|
fmt.Println("数据库密码:", value)
|
|
case "db_name":
|
|
c.db_name = value
|
|
fmt.Println("数据库名:", value)
|
|
case "server_host":
|
|
c.server_host = value
|
|
fmt.Println("主机:", value)
|
|
case "server_port":
|
|
c.server_port = value
|
|
fmt.Println("端口:", value)
|
|
case "log_level":
|
|
fmt.Println("日志等级:", value)
|
|
case "log_file":
|
|
fmt.Println("日志路径:", value)
|
|
}
|
|
}
|
|
|
|
if err := scanner.Err(); err != nil {
|
|
fmt.Println("读取配置文件时发生错误:", err)
|
|
}
|
|
//fmt.Println(c)
|
|
dsn = c.db_username + ":" + c.db_password + "@tcp(" + c.db_host + ":" + c.db_port + ")/" + c.db_name
|
|
//dsn = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", c.db_username, c.db_password, c.db_host, c.db_port, c.db_name)
|
|
fmt.Println(dsn)
|
|
return dsn
|
|
}
|