38 lines
933 B
Go
38 lines
933 B
Go
package zabbix
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
const (
|
|
bareosWorkDir = "/var/lib/bareos"
|
|
baculaWorkDir = "/var/lib/bacula"
|
|
)
|
|
|
|
var root = "/"
|
|
|
|
// checkWorkDir checks if a work directory is valid
|
|
func checkWorkDir() error {
|
|
// Determine the work directory to use.
|
|
if workDir != "" {
|
|
workDir = filepath.Join(root, workDir)
|
|
info, err := os.Stat(workDir)
|
|
if os.IsNotExist(err) || !info.IsDir() {
|
|
return fmt.Errorf("Invalid work directory %s : it does not exist or is not a directory", workDir)
|
|
}
|
|
} else {
|
|
workDir = filepath.Join(root, bareosWorkDir)
|
|
info, err := os.Stat(workDir)
|
|
if os.IsNotExist(err) || !info.IsDir() {
|
|
workDir = filepath.Join(root, baculaWorkDir)
|
|
info, err := os.Stat(workDir)
|
|
if os.IsNotExist(err) || !info.IsDir() {
|
|
return fmt.Errorf("Could not find a suitable work directory. Is bareos or bacula installed?")
|
|
}
|
|
}
|
|
}
|
|
workDir = filepath.Clean(workDir)
|
|
return nil
|
|
}
|