Added Fiber and layouts
This commit is contained in:
parent
f8e7ea482b
commit
63b19a249a
17 changed files with 331 additions and 37 deletions
|
|
@ -6,10 +6,9 @@ import (
|
|||
"lmika.dev/lmika/hugo-crm/config"
|
||||
"lmika.dev/lmika/hugo-crm/models"
|
||||
"lmika.dev/lmika/hugo-crm/providers/db"
|
||||
"lmika.dev/lmika/hugo-crm/providers/git"
|
||||
"lmika.dev/lmika/hugo-crm/providers/hugo"
|
||||
"lmika.dev/lmika/hugo-crm/providers/themes"
|
||||
"log"
|
||||
"lmika.dev/lmika/hugo-crm/services/jobs"
|
||||
"lmika.dev/lmika/hugo-crm/services/sitebuilder"
|
||||
"strings"
|
||||
"unicode"
|
||||
)
|
||||
|
|
@ -18,25 +17,30 @@ type Service struct {
|
|||
cfg config.Config
|
||||
db *db.DB
|
||||
themes *themes.Provider
|
||||
git *git.Provider
|
||||
hugo *hugo.Provider
|
||||
sb *sitebuilder.Service
|
||||
jobs *jobs.Service
|
||||
}
|
||||
|
||||
func NewService(
|
||||
cfg config.Config,
|
||||
db *db.DB,
|
||||
themes *themes.Provider,
|
||||
git *git.Provider,
|
||||
hugo *hugo.Provider,
|
||||
sb *sitebuilder.Service,
|
||||
jobs *jobs.Service,
|
||||
) *Service {
|
||||
return &Service{
|
||||
cfg: cfg,
|
||||
db: db,
|
||||
git: git,
|
||||
hugo: hugo,
|
||||
cfg: cfg,
|
||||
db: db,
|
||||
themes: themes,
|
||||
sb: sb,
|
||||
jobs: jobs,
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Service) GetSite(ctx context.Context, id int) (models.Site, error) {
|
||||
return s.db.GetSite(ctx, int64(id))
|
||||
}
|
||||
|
||||
func (s *Service) CreateSite(ctx context.Context, name string) (models.Site, error) {
|
||||
newSite := models.Site{
|
||||
Name: normaliseName(name),
|
||||
|
|
@ -44,7 +48,7 @@ func (s *Service) CreateSite(ctx context.Context, name string) (models.Site, err
|
|||
Theme: "bear",
|
||||
}
|
||||
|
||||
themeMeta, ok := s.themes.Lookup(newSite.Theme)
|
||||
_, ok := s.themes.Lookup(newSite.Theme)
|
||||
if !ok {
|
||||
return models.Site{}, errors.New("theme not found")
|
||||
}
|
||||
|
|
@ -53,23 +57,7 @@ func (s *Service) CreateSite(ctx context.Context, name string) (models.Site, err
|
|||
return models.Site{}, err
|
||||
}
|
||||
|
||||
// Build the site
|
||||
log.Printf(" .. build")
|
||||
if err := s.hugo.NewSite(ctx, newSite); err != nil {
|
||||
return models.Site{}, err
|
||||
}
|
||||
|
||||
// Setup the theme
|
||||
log.Printf(" .. theme")
|
||||
if err := s.git.Clone(ctx, themeMeta.URL, s.hugo.SiteStagingDir(newSite, hugo.ThemeSiteDir)); err != nil {
|
||||
return models.Site{}, err
|
||||
}
|
||||
|
||||
if err := s.hugo.ReconfigureSite(ctx, newSite); err != nil {
|
||||
return models.Site{}, err
|
||||
}
|
||||
|
||||
return newSite, nil
|
||||
return newSite, s.jobs.Queue(ctx, s.sb.CreateNewSite(newSite))
|
||||
}
|
||||
|
||||
func normaliseName(name string) string {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue