Add option --config and --data to specify where to store the configuration and the data

This commit is contained in:
Pierre-Alain TORET 2020-03-10 23:56:07 +01:00
parent 855f4d3e64
commit ca81475fa5
8 changed files with 33 additions and 22 deletions

View file

@ -5,13 +5,22 @@ import (
"os"
"github.com/khlieng/dispatch/pkg/session"
"github.com/spf13/viper"
)
var Path directory
var DataPath directory
var ConfigPath directory
func Initialize(dir string) {
Path = directory(dir)
os.MkdirAll(Path.Root(), 0700)
func Initialize() {
if viper.GetString("dir") != DefaultDirectory() {
DataPath = directory(viper.GetString("dir"))
ConfigPath = directory(viper.GetString("dir"))
} else {
DataPath = directory(viper.GetString("data"))
ConfigPath = directory(viper.GetString("conf"))
}
os.MkdirAll(DataPath.Root(), 0700)
os.MkdirAll(ConfigPath.Root(), 0700)
}
var (

View file

@ -32,7 +32,7 @@ func NewUser(store Store) (*User, error) {
return nil, err
}
err = os.MkdirAll(Path.User(user.Username), 0700)
err = os.MkdirAll(DataPath.User(user.Username), 0700)
if err != nil {
return nil, err
}
@ -70,7 +70,7 @@ func (u *User) Remove() {
if u.messageIndex != nil {
u.messageIndex.Close()
}
os.RemoveAll(Path.User(u.Username))
os.RemoveAll(DataPath.User(u.Username))
}
func (u *User) GetLastIP() []byte {

View file

@ -28,12 +28,12 @@ func (u *User) SetCertificate(certPEM, keyPEM []byte) error {
u.certificate = &cert
u.lock.Unlock()
err = ioutil.WriteFile(Path.Certificate(u.Username), certPEM, 0600)
err = ioutil.WriteFile(ConfigPath.Certificate(u.Username), certPEM, 0600)
if err != nil {
return ErrCouldNotSaveCert
}
err = ioutil.WriteFile(Path.Key(u.Username), keyPEM, 0600)
err = ioutil.WriteFile(ConfigPath.Key(u.Username), keyPEM, 0600)
if err != nil {
return ErrCouldNotSaveCert
}
@ -42,12 +42,12 @@ func (u *User) SetCertificate(certPEM, keyPEM []byte) error {
}
func (u *User) loadCertificate() error {
certPEM, err := ioutil.ReadFile(Path.Certificate(u.Username))
certPEM, err := ioutil.ReadFile(ConfigPath.Certificate(u.Username))
if err != nil {
return err
}
keyPEM, err := ioutil.ReadFile(Path.Key(u.Username))
keyPEM, err := ioutil.ReadFile(ConfigPath.Key(u.Username))
if err != nil {
return err
}