diff options
author | Laria Carolin Chabowski <laria@laria.me> | 2021-01-02 12:29:52 +0100 |
---|---|---|
committer | Laria Carolin Chabowski <laria@laria.me> | 2021-01-02 12:29:52 +0100 |
commit | 97ccbcecfc63efcc30742c2014b5a017db5b41d3 (patch) | |
tree | b0c1af1147f6dbc7c6bbc3dcdbfe13790d0bcbcf | |
parent | 85473656174b1b1d6221d3bb76cc12fa5f7f7e8d (diff) | |
download | laria.me-97ccbcecfc63efcc30742c2014b5a017db5b41d3.tar.gz laria.me-97ccbcecfc63efcc30742c2014b5a017db5b41d3.tar.bz2 laria.me-97ccbcecfc63efcc30742c2014b5a017db5b41d3.zip |
Allow multiple article directories
This makes it easier to have a separate directories with drafts that will
only be visible locally
-rw-r--r-- | config/config.go | 1 | ||||
-rw-r--r-- | 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"` @@ -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) } } |