1
0
mirror of https://github.com/danog/gojekyll.git synced 2024-11-30 06:19:00 +01:00
gojekyll/site/theme.go

40 lines
735 B
Go
Raw Permalink Normal View History

2017-07-24 13:44:49 +02:00
package site
import (
"bytes"
"fmt"
"log"
"os"
"os/exec"
"path/filepath"
)
func (s *Site) findTheme() error {
2017-08-24 18:25:38 +02:00
if s.cfg.Theme == "" {
2017-07-24 13:44:49 +02:00
return nil
}
exe, err := exec.LookPath("bundle")
if err != nil {
log.Fatal("bundle is not in your PATH", err)
}
2017-08-24 18:25:38 +02:00
cmd := exec.Command(exe, "show", s.cfg.Theme) // nolint: gas
2017-07-24 13:44:49 +02:00
cmd.Dir = s.AbsDir()
out, err := cmd.CombinedOutput()
if err != nil {
if os.IsNotExist(err) {
2017-08-24 18:25:38 +02:00
return fmt.Errorf("the %s theme could not be found", s.cfg.Theme)
2017-07-24 13:44:49 +02:00
}
return err
}
s.themeDir = string(bytes.TrimSpace(out))
return nil
}
func (s *Site) readThemeAssets() error {
err := s.readFiles(filepath.Join(s.themeDir, "assets"), s.themeDir)
if os.IsNotExist(err) {
return nil
}
return err
}