12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /*
- * @Author: LinkLeong link@icewhale.com
- * @Date: 2022-05-13 18:15:46
- * @LastEditors: LinkLeong
- * @LastEditTime: 2022-09-05 11:58:02
- * @FilePath: /CasaOS/pkg/config/init.go
- * @Description:
- * @Website: https://www.casaos.io
- * Copyright (c) 2022 by icewhale, All Rights Reserved.
- */
- package config
- import (
- "fmt"
- "log"
- "os"
- "path/filepath"
- "github.com/IceWhaleTech/CasaOS-Common/utils/constants"
- "github.com/IceWhaleTech/CasaOS/common"
- "github.com/IceWhaleTech/CasaOS/model"
- "github.com/go-ini/ini"
- )
- var (
- SysInfo = &model.SysInfoModel{}
- AppInfo = &model.APPModel{
- DBPath: constants.DefaultDataPath,
- LogPath: constants.DefaultLogPath,
- LogSaveName: common.SERVICENAME,
- LogFileExt: "log",
- ShellPath: "/usr/share/casaos/shell",
- UserDataPath: filepath.Join(constants.DefaultDataPath, "conf"),
- }
- CommonInfo = &model.CommonModel{
- RuntimePath: constants.DefaultRuntimePath,
- }
- ServerInfo = &model.ServerModel{}
- SystemConfigInfo = &model.SystemConfig{}
- FileSettingInfo = &model.FileSetting{}
- Cfg *ini.File
- ConfigFilePath string
- )
- // 初始化设置,获取系统的部分信息。
- func InitSetup(config string, sample string) {
- ConfigFilePath = CasaOSConfigFilePath
- if len(config) > 0 {
- ConfigFilePath = config
- }
- // create default config file if not exist
- if _, err := os.Stat(ConfigFilePath); os.IsNotExist(err) {
- fmt.Println("config file not exist, create it")
- // create config file
- file, err := os.Create(ConfigFilePath)
- if err != nil {
- panic(err)
- }
- defer file.Close()
- // write default config
- _, err = file.WriteString(sample)
- if err != nil {
- panic(err)
- }
- }
- var err error
- // 读取文件
- Cfg, err = ini.Load(ConfigFilePath)
- if err != nil {
- panic(err)
- }
- mapTo("app", AppInfo)
- mapTo("server", ServerInfo)
- mapTo("system", SystemConfigInfo)
- mapTo("file", FileSettingInfo)
- mapTo("common", CommonInfo)
- }
- // 映射
- func mapTo(section string, v interface{}) {
- err := Cfg.Section(section).MapTo(v)
- if err != nil {
- log.Fatalf("Cfg.MapTo %s err: %v", section, err)
- }
- }
|