Skip to content

Commit

Permalink
create default config if it does not already exist (IceWhaleTech#1304)
Browse files Browse the repository at this point in the history
  • Loading branch information
tigerinus authored Jul 31, 2023
1 parent 5dc6297 commit 0cf353c
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 88 deletions.
10 changes: 4 additions & 6 deletions .goreleaser.debug.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -113,24 +113,22 @@ builds:
goarm:
- "7"
archives:
- name_template: "{{ .Os }}-{{ .Arch }}-{{ .ProjectName }}-v{{ .Version }}"
- name_template: >-
{{ .Os }}-{{- if eq .Arch "arm" }}arm-7{{- else }}{{ .Arch }}{{- end }}-{{ .ProjectName }}-v{{ .Version }}
id: casaos
builds:
- casaos-amd64
- casaos-arm64
- casaos-arm-7
replacements:
arm: arm-7
files:
- build/**/*
- name_template: "{{ .Os }}-{{ .Arch }}-{{ .ProjectName }}-migration-tool-v{{ .Version }}"
- name_template: >-
{{ .Os }}-{{- if eq .Arch "arm" }}arm-7{{- else }}{{ .Arch }}{{- end }}-{{ .ProjectName }}-migration-tool-v{{ .Version }}
id: casaos-migration-tool
builds:
- casaos-migration-tool-amd64
- casaos-migration-tool-arm64
- casaos-migration-tool-arm-7
replacements:
arm: arm-7
files:
- build/sysroot/etc/**/*
checksum:
Expand Down
10 changes: 4 additions & 6 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -143,24 +143,22 @@ builds:
goarm:
- "7"
archives:
- name_template: "{{ .Os }}-{{ .Arch }}-{{ .ProjectName }}-v{{ .Version }}"
- name_template: >-
{{ .Os }}-{{- if eq .Arch "arm" }}arm-7{{- else }}{{ .Arch }}{{- end }}-{{ .ProjectName }}-v{{ .Version }}
id: casaos
builds:
- casaos-amd64
- casaos-arm64
- casaos-arm-7
replacements:
arm: arm-7
files:
- build/**/*
- name_template: "{{ .Os }}-{{ .Arch }}-{{ .ProjectName }}-migration-tool-v{{ .Version }}"
- name_template: >-
{{ .Os }}-{{- if eq .Arch "arm" }}arm-7{{- else }}{{ .Arch }}{{- end }}-{{ .ProjectName }}-migration-tool-v{{ .Version }}
id: casaos-migration-tool
builds:
- casaos-migration-tool-amd64
- casaos-migration-tool-arm64
- casaos-migration-tool-arm-7
replacements:
arm: arm-7
files:
- build/sysroot/etc/**/*
checksum:
Expand Down
1 change: 0 additions & 1 deletion build/sysroot/usr/lib/systemd/system/casaos.service
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
[Unit]
After=casaos-message-bus.service
After=rclone.service
ConditionFileNotEmpty=/etc/casaos/casaos.conf
Description=CasaOS Main Service

[Service]
Expand Down
2 changes: 1 addition & 1 deletion cmd/migration-tool/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func init() {
}
}

config.InitSetup(configFlag)
config.InitSetup(configFlag, "")

if len(dbFlag) == 0 {
dbFlag = config.AppInfo.DBPath + "/db"
Expand Down
5 changes: 4 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ var (
//go:embed api/casaos/openapi.yaml
_docYAML string

//go:embed build/sysroot/etc/casaos/casaos.conf.sample
_confSample string

configFlag = flag.String("c", "", "config address")
dbFlag = flag.String("db", "", "db path")
versionFlag = flag.Bool("v", false, "version")
Expand All @@ -63,7 +66,7 @@ func init() {
println("git commit:", commit)
println("build date:", date)

config.InitSetup(*configFlag)
config.InitSetup(*configFlag, _confSample)

logger.LogInit(config.AppInfo.LogPath, config.AppInfo.LogSaveName, config.AppInfo.LogFileExt)
if len(*dbFlag) == 0 {
Expand Down
8 changes: 6 additions & 2 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@
*/
package config

const (
USERCONFIGURL = "/etc/casaos/casaos.conf"
import (
"path/filepath"

"github.com/IceWhaleTech/CasaOS-Common/utils/constants"
)

var CasaOSConfigFilePath = filepath.Join(constants.DefaultConfigPath, "casaos.conf")
116 changes: 45 additions & 71 deletions pkg/config/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,80 +14,72 @@ import (
"fmt"
"log"
"os"
"path"
"path/filepath"
"runtime"
"strings"

"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{}

// 用户相关
var AppInfo = &model.APPModel{}

var CommonInfo = &model.CommonModel{}

// var RedisInfo = &model.RedisModel{}

// server相关
var ServerInfo = &model.ServerModel{}

var SystemConfigInfo = &model.SystemConfig{}

var FileSettingInfo = &model.FileSetting{}
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{}

var Cfg *ini.File
Cfg *ini.File
ConfigFilePath string
)

// 初始化设置,获取系统的部分信息。
func InitSetup(config string) {
configDir := USERCONFIGURL
func InitSetup(config string, sample string) {
ConfigFilePath = CasaOSConfigFilePath
if len(config) > 0 {
configDir = config
ConfigFilePath = config
}
if runtime.GOOS == "darwin" {
configDir = "./conf/conf.conf"

// 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(configDir)
Cfg, err = ini.Load(ConfigFilePath)
if err != nil {
Cfg, err = ini.Load("/etc/casaos.conf")
if err != nil {
Cfg, err = ini.Load("/casaOS/server/conf/conf.ini")
if err != nil {
fmt.Printf("Fail to read file: %v", err)
os.Exit(1)
}
}
panic(err)
}

mapTo("app", AppInfo)
// mapTo("redis", RedisInfo)
mapTo("server", ServerInfo)
mapTo("system", SystemConfigInfo)
mapTo("file", FileSettingInfo)
mapTo("common", CommonInfo)
SystemConfigInfo.ConfigPath = configDir
if len(AppInfo.DBPath) == 0 {
AppInfo.DBPath = "/var/lib/casaos"
}
if len(AppInfo.LogPath) == 0 {
AppInfo.LogPath = "/var/log/casaos/"
}
if len(AppInfo.ShellPath) == 0 {
AppInfo.ShellPath = "/usr/share/casaos/shell"
}
if len(AppInfo.UserDataPath) == 0 {
AppInfo.UserDataPath = "/var/lib/casaos/conf"
}
if len(CommonInfo.RuntimePath) == 0 {
CommonInfo.RuntimePath = "/var/run/casaos"
}
Cfg.SaveTo(configDir)
// AppInfo.ProjectPath = getCurrentDirectory() //os.Getwd()
}

// 映射
Expand All @@ -97,21 +89,3 @@ func mapTo(section string, v interface{}) {
log.Fatalf("Cfg.MapTo %s err: %v", section, err)
}
}

// 获取当前执行文件绝对路径(go run)
func getCurrentAbPathByCaller() string {
var abPath string
_, filename, _, ok := runtime.Caller(0)
if ok {
abPath = path.Dir(filename)
}
return abPath
}

func getCurrentDirectory() string {
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
if err != nil {
log.Fatal(err)
}
return strings.Replace(dir, "\\", "/", -1)
}

0 comments on commit 0cf353c

Please sign in to comment.