diff --git a/main.go b/main.go index 8e28f5e..4df6102 100644 --- a/main.go +++ b/main.go @@ -49,21 +49,26 @@ func init() { logger.Fatalln("cannot unmarshal configuration into domain:", err) } - if config.ContentDir, err = filepath.Abs(filepath.Clean(config.ContentDir)); err != nil { - logger.Fatalf("cannot format '%s' content dir path into absolute path: %s", config.ContentDir, err) - } - - if _, err = os.Stat(config.ContentDir); err != nil { - if errors.Is(err, os.ErrExist) { - return + for _, dir := range []*string{ + &config.ContentDir, + &config.ThemeDir, + } { + if *dir, err = filepath.Abs(filepath.Clean(*dir)); err != nil { + logger.Fatalf("cannot format '%s' into absolute path: %s", *dir, err) } - if !errors.Is(err, os.ErrNotExist) { - logger.Fatalln("cannot check directory path for content:", err) - } + if _, err = os.Stat(*dir); err != nil { + if errors.Is(err, os.ErrExist) { + return + } - if err = os.MkdirAll(config.ContentDir, os.ModePerm); err != nil { - logger.Fatalln("cannot create directory for content:", err) + if !errors.Is(err, os.ErrNotExist) { + logger.Fatalf("cannot check '%s' path: %v", *dir, err) + } + + if err = os.MkdirAll(*dir, os.ModePerm); err != nil { + logger.Fatalf("cannot create directory on '%s': %v", *dir, err) + } } } }