diff options
-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) } } |