40 lines
956 B
Go
40 lines
956 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
const (
|
|
bareosWorkDir = "/var/lib/bareos"
|
|
baculaWorkDir = "/var/lib/bacula"
|
|
)
|
|
|
|
// checkWorkDir checks if a work directory is valid
|
|
func (c *Config) checkWorkDir() {
|
|
// Determine the work directory to use.
|
|
if c.workDir != "" {
|
|
info, err := os.Stat(c.workDir)
|
|
if os.IsNotExist(err) || !info.IsDir() {
|
|
fmt.Printf("INFO Invalid work directory %s : it does not exist or is not a directory.\n", c.workDir)
|
|
os.Exit(0)
|
|
}
|
|
} else {
|
|
c.workDir = bareosWorkDir
|
|
info, err := os.Stat(c.workDir)
|
|
if os.IsNotExist(err) || !info.IsDir() {
|
|
c.workDir = baculaWorkDir
|
|
info, err := os.Stat(c.workDir)
|
|
if os.IsNotExist(err) || !info.IsDir() {
|
|
fmt.Println("INFO Could not find a suitable work directory. Is bareos or bacula installed?")
|
|
os.Exit(0)
|
|
}
|
|
}
|
|
}
|
|
c.workDir = filepath.Clean(c.workDir)
|
|
if c.verbose {
|
|
log.Println("Setting work directory to ", c.workDir)
|
|
}
|
|
}
|