Files
kubevpn/pkg/config/const.go
naison f14d074417 hotfix: add cmd once for generate tls cert after helm installed (#657)
* hotfix: add cmd once for generate tls cert after helm installed

* hotfix: update scale

* hotfix: update scale

* hotfix: fix bugs

* hotfix: print

* feat: add role for get cidr

* feat: add --image options for cmd once

* feat: add role watch pod

* feat: filter api-server
2025-06-26 11:08:42 +08:00

119 lines
2.1 KiB
Go

package config
import (
_ "embed"
"os"
"path/filepath"
"github.com/pkg/errors"
)
const (
HOME = ".kubevpn"
Daemon = "daemon"
Log = "log"
SockPath = "user_daemon.sock"
SudoSockPath = "root_daemon.sock"
PidPath = "user_daemon.pid"
SudoPidPath = "root_daemon.pid"
UserLogFile = "user_daemon.log"
SudoLogFile = "root_daemon.log"
ConfigFile = "config.yaml"
TempDir = "temp"
DBFile = "db"
)
var (
homePath string
daemonPath string
logPath string
//go:embed config.yaml
config []byte
)
func init() {
dir, err := os.UserHomeDir()
if err != nil {
panic(err)
}
homePath = filepath.Join(dir, HOME)
daemonPath = filepath.Join(dir, HOME, Daemon)
logPath = filepath.Join(dir, HOME, Log)
var paths = []string{homePath, daemonPath, logPath, GetPProfPath(), GetSyncthingPath(), GetTempPath()}
for _, path := range paths {
_, err = os.Stat(path)
if errors.Is(err, os.ErrNotExist) {
err = os.MkdirAll(path, 0755)
if err != nil {
panic(err)
}
err = os.Chmod(path, 0755)
if err != nil {
panic(err)
}
} else if err != nil {
panic(err)
}
}
path := filepath.Join(homePath, ConfigFile)
_, err = os.Stat(path)
if errors.Is(err, os.ErrNotExist) {
err = os.WriteFile(path, config, 0644)
}
if err != nil {
panic(err)
}
}
func GetSockPath(isSudo bool) string {
name := SockPath
if isSudo {
name = SudoSockPath
}
return filepath.Join(daemonPath, name)
}
func GetPidPath(isSudo bool) string {
name := PidPath
if isSudo {
name = SudoPidPath
}
return filepath.Join(daemonPath, name)
}
func GetSyncthingPath() string {
return filepath.Join(daemonPath, SyncthingDir)
}
func GetConfigFile() string {
return filepath.Join(homePath, ConfigFile)
}
func GetTempPath() string {
return filepath.Join(homePath, TempDir)
}
func GetDaemonLogPath(isSudo bool) string {
if isSudo {
return filepath.Join(logPath, SudoLogFile)
}
return filepath.Join(logPath, UserLogFile)
}
func GetPProfPath() string {
return filepath.Join(daemonPath, PProfDir)
}
func GetDBPath() string {
return filepath.Join(daemonPath, DBFile)
}