Skip to content

Commit

Permalink
fix:refactor config directory and update version to 0.1.1
Browse files Browse the repository at this point in the history
  • Loading branch information
limitcool committed Jan 26, 2024
1 parent 3cbad17 commit ed77e8d
Show file tree
Hide file tree
Showing 8 changed files with 99 additions and 11 deletions.
1 change: 1 addition & 0 deletions config.yaml
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
adminpassword: initcool-https://blog.nmslwsnd.com
palworldconfigfilepath: PalWorldSettings.ini
port: 8080
15 changes: 12 additions & 3 deletions config/config.go
Original file line number Diff line number Diff line change
@@ -1,30 +1,39 @@
package config

import (
"fmt"
"os"

"github.com/charmbracelet/log"

"github.com/spf13/viper"
)

type Config struct {
PalWorldConfigFilePath string
AdminPassword string
Port int
}

// 初始化并生成默认配置
func InitDefaultConfig() {
func InitDefaultConfig(configPath string, configFile string) {

defaultConfig := Config{
PalWorldConfigFilePath: "/root/palworld/data/Config/LinuxServer/PalWorldSettings.ini",
AdminPassword: "initcool-https://blog.nmslwsnd.com",
Port: 8080,
}
if err := os.MkdirAll(configPath, 0755); err != nil {
log.Error(err)
}
viper.SetConfigType("yaml")
viper.SetConfigFile(configFile)
// 将默认配置写入配置文件
viper.Set("PalWorldConfigFilePath", defaultConfig.PalWorldConfigFilePath)
viper.Set("AdminPassword", defaultConfig.AdminPassword)
viper.Set("port", 8080)
err := viper.WriteConfig()
if err != nil {
// 处理错误
fmt.Println("Error writing default config:", err)
log.Error("Error writing default config:", err)
}
}
12 changes: 10 additions & 2 deletions global/global.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
package global

import "github.com/limitcool/palworld-admin/config"
import (
"path/filepath"

"github.com/decred/dcrd/dcrutil/v2"
"github.com/limitcool/palworld-admin/config"
)

var Config config.Config
var AppDir = dcrutil.AppDataDir("palworld-Admin", false)
var ConfigPath = filepath.Join(AppDir, "config")
var ConfigFile = filepath.Join(ConfigPath, "config.yaml")

const VERSION = "0.1.0"
const VERSION = "0.1.1"
12 changes: 12 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,22 @@ require (
)

require (
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
github.com/bytedance/sonic v1.9.1 // indirect
github.com/charmbracelet/lipgloss v0.9.1 // indirect
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
github.com/dchest/blake256 v1.0.0 // indirect
github.com/decred/base58 v1.0.0 // indirect
github.com/decred/dcrd/chaincfg v1.5.1 // indirect
github.com/decred/dcrd/chaincfg/chainhash v1.0.1 // indirect
github.com/decred/dcrd/chaincfg/v2 v2.0.2 // indirect
github.com/decred/dcrd/dcrec v1.0.0 // indirect
github.com/decred/dcrd/dcrec/edwards v1.0.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1 v1.0.2 // indirect
github.com/decred/dcrd/dcrutil v1.4.1 // indirect
github.com/decred/dcrd/dcrutil/v2 v2.0.0 // indirect
github.com/decred/dcrd/wire v1.2.0 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/gabriel-vasile/mimetype v1.4.2 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
Expand Down
31 changes: 31 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7ISrnJIXKzwaspym5BTKGx93EI=
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0=
github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k=
github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8=
github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM=
Expand All @@ -14,6 +16,29 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dchest/blake256 v1.0.0 h1:6gUgI5MHdz9g0TdrgKqXsoDX+Zjxmm1Sc6OsoGru50I=
github.com/dchest/blake256 v1.0.0/go.mod h1:xXNWCE1jsAP8DAjP+rKw2MbeqLczjI3TRx2VK+9OEYY=
github.com/decred/base58 v1.0.0 h1:BVi1FQCThIjZ0ehG+I99NJ51o0xcc9A/fDKhmJxY6+w=
github.com/decred/base58 v1.0.0/go.mod h1:LLY1p5e3g91byL/UO1eiZaYd+uRoVRarybgcoymu9Ks=
github.com/decred/dcrd/chaincfg v1.5.1 h1:u1Xbq0VTnAXIHW5ECqrWe0VYSgf5vWHqpSiwoLBzxAQ=
github.com/decred/dcrd/chaincfg v1.5.1/go.mod h1:FukMzTjkwzjPU+hK7CqDMQe3NMbSZAYU5PAcsx1wlv0=
github.com/decred/dcrd/chaincfg/chainhash v1.0.1 h1:0vG7U9+dSjSCaHQKdoSKURK2pOb47+b+8FK5q4+Je7M=
github.com/decred/dcrd/chaincfg/chainhash v1.0.1/go.mod h1:OVfvaOsNLS/A1y4Eod0Ip/Lf8qga7VXCQjUQLbkY0Go=
github.com/decred/dcrd/chaincfg/v2 v2.0.2 h1:VeGY52lHuYT01tIGbvYj+OO0GaGxGaJmnh+4vGca1+U=
github.com/decred/dcrd/chaincfg/v2 v2.0.2/go.mod h1:hpKvhLCDAD/xDZ3V1Pqpv9fIKVYYi11DyxETguazyvg=
github.com/decred/dcrd/dcrec v1.0.0 h1:W+z6Es+Rai3MXYVoPAxYr5U1DGis0Co33scJ6uH2J6o=
github.com/decred/dcrd/dcrec v1.0.0/go.mod h1:HIaqbEJQ+PDzQcORxnqen5/V1FR3B4VpIfmePklt8Q8=
github.com/decred/dcrd/dcrec/edwards v1.0.0 h1:UDcPNzclKiJlWqV3x1Fl8xMCJrolo4PB4X9t8LwKDWU=
github.com/decred/dcrd/dcrec/edwards v1.0.0/go.mod h1:HblVh1OfMt7xSxUL1ufjToaEvpbjpWvvTAUx4yem8BI=
github.com/decred/dcrd/dcrec/secp256k1 v1.0.1/go.mod h1:lhu4eZFSfTJWUnR3CFRcpD+Vta0KUAqnhTsTksHXgy0=
github.com/decred/dcrd/dcrec/secp256k1 v1.0.2 h1:awk7sYJ4pGWmtkiGHFfctztJjHMKGLV8jctGQhAbKe0=
github.com/decred/dcrd/dcrec/secp256k1 v1.0.2/go.mod h1:CHTUIVfmDDd0KFVFpNX1pFVCBUegxW387nN0IGwNKR0=
github.com/decred/dcrd/dcrutil v1.4.1 h1:DzgtXRZGh0CYLUC/ZlRpNRHhh0l6+iTRel9e0Gv/j44=
github.com/decred/dcrd/dcrutil v1.4.1/go.mod h1:QtHzk4bfeWW+rP2ov8h3yFs8S8xaLCICMY9Uz90tLew=
github.com/decred/dcrd/dcrutil/v2 v2.0.0 h1:HTqn2tZ8eqBF4y3hJwjyKBmJt16y7/HjzpE82E/crhY=
github.com/decred/dcrd/dcrutil/v2 v2.0.0/go.mod h1:gUshVAXpd51DlcEhr51QfWL2HJGkMDM1U8chY+9VvQg=
github.com/decred/dcrd/wire v1.2.0 h1:HqJVB7vcklIguzFWgRXw/WYCQ9cD3bUC5TKj53i1Hng=
github.com/decred/dcrd/wire v1.2.0/go.mod h1:/JKOsLInOJu6InN+/zH5AyCq3YDIOW/EqcffvU8fJHM=
github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
Expand Down Expand Up @@ -128,16 +153,22 @@ go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTV
golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k=
golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c=
golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
Expand Down
14 changes: 8 additions & 6 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@ import (
)

func main() {
viper.SetConfigFile("config.yaml")
log.Infof("https://github.com/limitcool/palworld-admin version: %s ", global.VERSION)
viper.SetConfigFile(global.ConfigFile)
err := viper.ReadInConfig()
// 如果找不到配置文件
if os.IsNotExist(err) {
log.Info("Config file not found. Initializing with default values...")
// 初始化并生成默认配置
config.InitDefaultConfig()
config.InitDefaultConfig(global.ConfigPath, global.ConfigFile)
// 重新尝试读取配置文件
err = viper.ReadInConfig()
if err != nil {
Expand All @@ -39,15 +40,16 @@ func main() {
}

// 打印配置
fmt.Printf("PalWorldConfigFilePath: %s\n", global.Config.PalWorldConfigFilePath)
fmt.Printf("AdminPassword: %s\n", global.Config.AdminPassword)
log.Infof("PalWorldConfigFilePath: %s\n", global.Config.PalWorldConfigFilePath)
log.Infof("AdminPassword: %s\n", global.Config.AdminPassword)
log.Infof("Port: %d\n", global.Config.Port)
router := routers.NewRouter()
s := &http.Server{
Addr: fmt.Sprint("0.0.0.0:", 8080),
Addr: fmt.Sprint("0.0.0.0:", global.Config.Port),
Handler: router,
MaxHeaderBytes: 1 << 20,
}
fmt.Printf("Listen: %s:%d\n", "http://127.0.0.1", 8080)
log.Infof("Listen: %s:%d\n", "http://127.0.0.1", global.Config.Port)
go func() {
// 服务连接 监听
if err := s.ListenAndServe(); err != nil {
Expand Down
Binary file modified routers/dist/favicon.ico
Binary file not shown.
25 changes: 25 additions & 0 deletions util/util.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package util

import (
"fmt"
"os"
"path/filepath"
)

func OpenOrCreateFile(configPath, configFileName string) (*os.File, error) {
// 确保目录存在
if err := os.MkdirAll(configPath, 0755); err != nil {
return nil, fmt.Errorf("无法创建目录: %v", err)
}

// 构建完整的文件路径
fullPath := filepath.Join(configPath, configFileName)

// 打开或创建文件
file, err := os.OpenFile(fullPath, os.O_RDWR|os.O_CREATE, 0644)
if err != nil {
return nil, fmt.Errorf("无法打开或创建文件: %v", err)
}

return file, nil
}

0 comments on commit ed77e8d

Please sign in to comment.