From 97ccbcecfc63efcc30742c2014b5a017db5b41d3 Mon Sep 17 00:00:00 2001 From: Laria Carolin Chabowski Date: Sat, 2 Jan 2021 12:29:52 +0100 Subject: Allow multiple article directories This makes it easier to have a separate directories with drafts that will only be visible locally --- config/config.go | 1 + update.go | 17 ++++++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/config/config.go b/config/config.go index 074c24c..5484704 100644 --- a/config/config.go +++ b/config/config.go @@ -8,6 +8,7 @@ import ( type Config struct { ContentRoot string + ArticleDirs []string DbDsn string TemplatePath string StaticPath string `json:",omitempty"` diff --git a/update.go b/update.go index 82024b7..82df88b 100644 --- a/update.go +++ b/update.go @@ -6,7 +6,6 @@ import ( "net/http" "net/url" "os" - "path" "path/filepath" "code.laria.me/laria.me/article" @@ -15,7 +14,6 @@ import ( ) func allArticlesFromDir(dir string) ([]article.Article, error) { - log.Printf("allArticlesFromDir(%s)", dir) f, err := os.Open(dir) if err != nil { return nil, err @@ -47,21 +45,26 @@ func allArticlesFromDir(dir string) ([]article.Article, error) { } func updateArticles(conf *config.Config, db *sql.DB) { - articles, err := allArticlesFromDir(path.Join(conf.ContentRoot, "articles")) - if err != nil { - log.Fatalf("allArticlesFromDir(): %s", err) + articles := []article.Article{} + for _, dir := range conf.ArticleDirs { + dirArticles, err := allArticlesFromDir(dir) + if err != nil { + log.Fatalf("allArticlesFromDir(%s): %s", dir, err) + } + + articles = append(articles, dirArticles...) } slugs := make([]string, 0, len(articles)) for _, article := range articles { - if _, err = article.SaveToDb(db); err != nil { + if _, err := article.SaveToDb(db); err != nil { log.Fatalf("SaveToDb: %s", err) } slugs = append(slugs, article.Slug) } - if err = article.DeleteArticlesFromDbExcept(db, slugs); err != nil { + if err := article.DeleteArticlesFromDbExcept(db, slugs); err != nil { log.Fatalf("DeleteArticlesFromDbExcept: %s", err) } } -- cgit v1.2.3-54-g00ecf