1
0
mirror of https://github.com/strongdm/comply synced 2024-11-06 07:55:26 +00:00
comply/internal/render/pdf.go

62 lines
1.1 KiB
Go
Raw Normal View History

2018-05-15 21:13:11 +00:00
package render
import (
"sync"
"github.com/pkg/errors"
"github.com/strongdm/comply/internal/model"
)
func pdf(output string, live bool, errCh chan error, wg *sync.WaitGroup) {
var pdfWG sync.WaitGroup
errOutputCh := make(chan error)
for {
_, data, err := loadWithStats()
if err != nil {
errCh <- errors.Wrap(err, "unable to load data")
return
}
policies, err := model.ReadPolicies()
if err != nil {
errCh <- errors.Wrap(err, "unable to read policies")
return
}
for _, policy := range policies {
renderToFilesystem(&pdfWG, errOutputCh, data, policy, live)
err = <-errOutputCh
if err != nil {
errCh <- err
wg.Done()
return
}
2018-05-15 21:13:11 +00:00
}
narratives, err := model.ReadNarratives()
if err != nil {
errCh <- errors.Wrap(err, "unable to read narratives")
return
}
for _, narrative := range narratives {
renderToFilesystem(&pdfWG, errOutputCh, data, narrative, live)
2021-10-11 13:43:32 +00:00
err = <-errOutputCh
if err != nil {
errCh <- err
wg.Done()
return
}
2018-05-15 21:13:11 +00:00
}
pdfWG.Wait()
if !live {
wg.Done()
return
}
<-subscribe()
}
}