30 lines
614 B
Go
30 lines
614 B
Go
package netlify
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"lmika.dev/lmika/hugo-cms/models"
|
|
"os"
|
|
"os/exec"
|
|
)
|
|
|
|
type Provider struct {
|
|
authToken string
|
|
}
|
|
|
|
func New(authToken string) *Provider {
|
|
return &Provider{
|
|
authToken: authToken,
|
|
}
|
|
}
|
|
|
|
func (p *Provider) Publish(ctx context.Context, target models.PublishTarget, dir string) error {
|
|
cmd := exec.CommandContext(ctx, "netlify", "deploy", "--dir", dir, "--prod")
|
|
cmd.Env = append(os.Environ(),
|
|
fmt.Sprintf("NETLIFY_SITE_ID=%v", target.TargetRef),
|
|
fmt.Sprintf("NETLIFY_AUTH_TOKEN=%v", p.authToken))
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Stderr = os.Stderr
|
|
return cmd.Run()
|
|
}
|