Have got publishing to Netlify
This commit is contained in:
parent
8e0ffb6c24
commit
7ef6725bdb
23 changed files with 667 additions and 109 deletions
|
|
@ -14,10 +14,11 @@ import (
|
|||
|
||||
type Provider struct {
|
||||
stagingDir string
|
||||
scratchDir string
|
||||
tmpls *template.Template
|
||||
}
|
||||
|
||||
func New(stagingDir string) (*Provider, error) {
|
||||
func New(stagingDir, scratchDir string) (*Provider, error) {
|
||||
ts, err := template.ParseFS(tmpls.FS, "*.tmpl")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
@ -25,6 +26,7 @@ func New(stagingDir string) (*Provider, error) {
|
|||
|
||||
return &Provider{
|
||||
stagingDir: stagingDir,
|
||||
scratchDir: scratchDir,
|
||||
tmpls: ts,
|
||||
}, nil
|
||||
}
|
||||
|
|
@ -52,6 +54,37 @@ func (p *Provider) NewSite(ctx context.Context, site models.Site) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (p *Provider) PublishSite(ctx context.Context, site models.Site, target models.PublishTarget) (outDir string, clean func(), err error) {
|
||||
if err := os.MkdirAll(p.scratchDir, 0755); err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
||||
outDir, err = os.MkdirTemp(p.scratchDir, site.Name+"-*")
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
clean = func() {
|
||||
os.RemoveAll(outDir)
|
||||
}
|
||||
|
||||
outDir, err = filepath.Abs(outDir)
|
||||
if err != nil {
|
||||
return "", nil, err
|
||||
}
|
||||
|
||||
cmd := exec.CommandContext(ctx, "hugo",
|
||||
"--source", p.SiteStagingDir(site, BaseSiteDir),
|
||||
"--destination", outDir,
|
||||
"--baseURL", target.URL)
|
||||
cmd.Stderr = os.Stderr
|
||||
cmd.Stdout = os.Stdout
|
||||
|
||||
if err := cmd.Run(); err != nil {
|
||||
return "", clean, err
|
||||
}
|
||||
return outDir, clean, nil
|
||||
}
|
||||
|
||||
func (p *Provider) ReconfigureSite(ctx context.Context, site models.Site) error {
|
||||
// Reconfigure the site
|
||||
var hugoCfg bytes.Buffer
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue