diff --git a/internal/fileutils/fileutils.go b/internal/fileutils/fileutils.go index d4602bf..10dcc46 100644 --- a/internal/fileutils/fileutils.go +++ b/internal/fileutils/fileutils.go @@ -96,3 +96,14 @@ func computePathFromName(ac *appcontext.AppContext, filename string) string { func GetWsLinkPrefix() string { return "/static/bookcover/" } + +func CreateFolderIfMissing(dir string) error { + _, openFileErr := os.Open(dir) + if os.IsNotExist(openFileErr) { + return os.MkdirAll(dir, 0755) + } else if openFileErr != nil { + return openFileErr + } else { + return nil + } +} diff --git a/internal/setup/setup.go b/internal/setup/setup.go index ceae7e6..6095a2c 100644 --- a/internal/setup/setup.go +++ b/internal/setup/setup.go @@ -13,6 +13,7 @@ import ( "git.artlef.fr/bibliomane/internal/config" "git.artlef.fr/bibliomane/internal/createuser" "git.artlef.fr/bibliomane/internal/db" + "git.artlef.fr/bibliomane/internal/fileutils" i18nresource "git.artlef.fr/bibliomane/internal/i18nresource" "git.artlef.fr/bibliomane/internal/middleware" "git.artlef.fr/bibliomane/internal/routes" @@ -22,8 +23,13 @@ func Setup(config *config.Config) *gin.Engine { db := db.Initdb(config.DatabaseFilePath, config.DemoDataPath) r := gin.Default() + err := fileutils.CreateFolderIfMissing(config.ImageFolderPath) + if err != nil { + panic(err) + } + bundle := i18nresource.InitializeI18n() - err := createuser.CreateDefaultUsers(appcontext.AppContext{C: nil, Db: db, I18n: bundle, Config: config}) + err = createuser.CreateDefaultUsers(appcontext.AppContext{C: nil, Db: db, I18n: bundle, Config: config}) if err != nil { panic(err) }