Skip to content

Commit 3935f8e

Browse files
committed
Add creation of event content files
Signed-off-by: Matt Stratton <[email protected]>
1 parent a53a94c commit 3935f8e

File tree

11 files changed

+126
-72
lines changed

11 files changed

+126
-72
lines changed

event/event.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,17 @@ func CreateEvent(city, year string) (err error) {
201201

202202
NewEvent(myEvent, CityClean(city), year)
203203

204+
// create the event content files
205+
contentfiles := []string{"index", "conduct", "contact", "location", "program", "propose", "registration", "sponsor"}
206+
for _, contentFile := range contentfiles {
207+
208+
if result, err := createEventContentFile(city, year, contentFile); err != nil {
209+
fmt.Printf("Error: %s\n", err)
210+
} else {
211+
fmt.Printf("Event content file created for %s!!!\n", result)
212+
}
213+
214+
}
204215
if answers.LogoPath != "" {
205216
err = EventLogo(answers.LogoPath, CityClean(city), year)
206217
}

event/make_event_files.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package event
2+
3+
import (
4+
"fmt"
5+
"log"
6+
"os"
7+
"path/filepath"
8+
"strings"
9+
10+
rice "github.com/GeertJohan/go.rice"
11+
"github.com/alecthomas/template"
12+
"github.com/devopsdays/devopsdays-cli/helpers/paths"
13+
)
14+
15+
func createEventContentFile(city, year, page string) (string, error) {
16+
17+
err := os.MkdirAll((paths.EventContentPath(city, year)), 0755)
18+
if err != nil {
19+
return "", err
20+
}
21+
22+
// find a rice.Box
23+
// to compile, cd to event directory and run `rice embed-go`
24+
templateBox, err := rice.FindBox("templates")
25+
if err != nil {
26+
log.Fatal(err)
27+
}
28+
templateName := "events/" + page + ".md.tmpl"
29+
// templateName := "index.md.tmpl"
30+
// get file contents as string
31+
templateString, err := templateBox.String(templateName)
32+
if err != nil {
33+
// log.Fatal(templateName)
34+
log.Fatal(err)
35+
}
36+
s := []string{strings.TrimSpace(year), "-", strings.Replace(strings.TrimSpace(strings.ToLower(city)), " ", "-", 10)}
37+
slug := strings.Join(s, "")
38+
// t := template.Must(template.New(page+".md.tmpl").Delims("[[", "]]").ParseFiles(templateString))
39+
// parse and execute the template
40+
t, err := template.New(page+".md").Delims("[[", "]]").Parse(templateString)
41+
if err != nil {
42+
log.Fatal(err)
43+
}
44+
data := struct {
45+
City string
46+
Year string
47+
Slug string
48+
CityClean string
49+
}{
50+
strings.TrimSpace(city),
51+
strings.TrimSpace(year),
52+
slug,
53+
CityClean(city),
54+
}
55+
filePath := filepath.Join((paths.EventContentPath(city, year)), (page + ".md"))
56+
f, err := os.Create(filePath)
57+
if err != nil {
58+
return "Cannot create", err
59+
}
60+
defer f.Close()
61+
t.Execute(f, data)
62+
if err != nil {
63+
fmt.Println(err, "template execute error")
64+
} else {
65+
fmt.Println("Created event content file for", city, "for year", year, "at", filePath)
66+
}
67+
return city, nil
68+
69+
}

cmd/rice-box.go renamed to event/rice-box.go

Lines changed: 46 additions & 72 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)