增加install时自动创建log.dir目录的逻辑

This commit is contained in:
lwch
2021-12-29 14:52:23 +08:00
parent 46db075cd9
commit d8081637e4
5 changed files with 31 additions and 1 deletions
+1
View File
@@ -99,6 +99,7 @@ func main() {
switch *act {
case "install":
runtime.Assert(sv.Install())
utils.BuildLogDir(cfg.LogDir, *user)
case "uninstall":
runtime.Assert(sv.Uninstall())
default:
+7
View File
@@ -3,6 +3,8 @@ package global
import (
"crypto/md5"
"natpass/code/utils"
"os"
"path/filepath"
"time"
"github.com/lwch/runtime"
@@ -42,6 +44,11 @@ func LoadConf(dir string) *Configure {
} `yaml:"tls"`
}
runtime.Assert(yaml.Decode(dir, &cfg))
if filepath.IsAbs(cfg.Log.Dir) {
dir, err := os.Executable()
runtime.Assert(err)
cfg.Log.Dir = filepath.Join(filepath.Dir(dir), cfg.Log.Dir)
}
return &Configure{
Listen: cfg.Listen,
Enc: md5.Sum([]byte(cfg.Secret)),
+2
View File
@@ -6,6 +6,7 @@ import (
"fmt"
"natpass/code/server/global"
"natpass/code/server/handler"
"natpass/code/utils"
"net"
"os"
"path/filepath"
@@ -102,6 +103,7 @@ func main() {
switch *act {
case "install":
runtime.Assert(sv.Install())
utils.BuildLogDir(cfg.LogDir, *user)
case "uninstall":
runtime.Assert(sv.Uninstall())
default:
+20
View File
@@ -0,0 +1,20 @@
package utils
import (
"os"
"os/user"
"strconv"
"github.com/lwch/runtime"
)
func BuildLogDir(dir, u string) {
runtime.Assert(os.MkdirAll(dir, 0755))
if len(u) > 0 {
us, err := user.Lookup(u)
runtime.Assert(err)
uid, _ := strconv.ParseInt(us.Uid, 10, 64)
gid, _ := strconv.ParseInt(us.Gid, 10, 64)
runtime.Assert(os.Chown(dir, int(uid), int(gid)))
}
}
+1 -1
View File
@@ -4,6 +4,6 @@ link:
read_timeout: 1s # 读取数据包超时时间
write_timeout: 1s # 发送数据包超时时间
log:
dir: ./logs # 路径
dir: ./logs # 路径,相对于可执行文件所在目录的相对路径
size: 50M # 单个文件大小
rotate: 7 # 保留数量