Do not require environment variables set for help (fixes #7)

master
Carlo Strub 6 years ago
parent 7102676927
commit 96a37e0439
No known key found for this signature in database
GPG Key ID: 34EF3FF33C29811A

@ -78,39 +78,6 @@ COPYRIGHT:
{{.Copyright}}
`
dirsRaw, ok := os.LookupEnv("SISYPHUS_DIRS")
if !ok {
log.Fatal("Environment variable SISYPHUS_DIRS not set.")
}
dirsSplit := strings.Split(dirsRaw, ",")
var maildirs []sisyphus.Maildir
for i := 0; i < len(dirsSplit); i++ {
maildirs = append(maildirs, sisyphus.Maildir(dirsSplit[i]))
}
_, ok = os.LookupEnv("SISYPHUS_DURATION")
if !ok {
log.Fatal("Environment variable SISYPHUS_DURATION not set.")
}
// app.Flags = []cli.Flag{
//
// &cli.StringSliceFlag{
// Name: "maildir, d",
// Value: &maildirPaths,
// EnvVars: []string{"SISYPHUS_DIRS"},
// Usage: "Call multiple Maildirs by repeating this flag, i.e. --maildir \"./Maildir\" --maildir \"./Maildir2\"",
// },
// &cli.StringFlag{
// Name: "learn",
// Value: "12h",
// EnvVars: []string{"SISYPHUS_DURATION"},
// Usage: "Time interval between to learn cycles",
// Destination: learnafter,
// },
// }
app.Commands = []cli.Command{
{
Name: "run",
@ -135,13 +102,7 @@ COPYRIGHT:
`)
// Create missing Maildirs
err := sisyphus.LoadMaildirs(maildirs)
if err != nil {
log.WithFields(log.Fields{
"err": err,
}).Fatal("Cannot load maildirs")
}
maildirs := loadConfig()
// Open all databases
dbs, err := sisyphus.LoadDatabases(maildirs)
@ -221,13 +182,7 @@ COPYRIGHT:
Usage: "show statistics",
Action: func(c *cli.Context) {
// Create missing Maildirs
err := sisyphus.LoadMaildirs(maildirs)
if err != nil {
log.WithFields(log.Fields{
"err": err,
}).Fatal("Cannot load maildirs")
}
maildirs := loadConfig()
// Open all backup databases
dbs, err := sisyphus.LoadBackupDatabases(maildirs)
@ -286,6 +241,7 @@ func backup(maildirs []sisyphus.Maildir, dbs map[sisyphus.Maildir]*bolt.DB) {
db := dbs[d]
backup, err := os.Create(filepath.Join(string(d), "sisyphus.db.backup"))
if err != nil {
log.WithFields(log.Fields{
"err": err,
@ -312,3 +268,38 @@ func backup(maildirs []sisyphus.Maildir, dbs map[sisyphus.Maildir]*bolt.DB) {
return
}
// loadConfig checks the validity of the environment variables and
// loads the maildirs
func loadConfig() []sisyphus.Maildir {
dirsRaw, ok := os.LookupEnv("SISYPHUS_DIRS")
if !ok {
log.Fatal("Environment variable SISYPHUS_DIRS not set.")
}
dirsSplit := strings.Split(dirsRaw, ",")
var maildirs []sisyphus.Maildir
for i := 0; i < len(dirsSplit); i++ {
maildirs = append(maildirs, sisyphus.Maildir(dirsSplit[i]))
}
// Create missing Maildirs
err := sisyphus.LoadMaildirs(maildirs)
if err != nil {
log.WithFields(log.Fields{
"err": err,
}).Fatal("Cannot load maildirs")
}
// Check duration configuration and set it to default value if
// not set
_, ok = os.LookupEnv("SISYPHUS_DURATION")
if !ok {
log.Info("Environment variable SISYPHUS_DURATION not set. Setting default value to 24h.")
os.Setenv("SISYPHUS_DURATION", "24h")
}
return maildirs
}

Loading…
Cancel
Save