diff options
-rw-r--r-- | main.go | 7 | ||||
-rw-r--r-- | templates/timesheet.yml.tmpl | 11 | ||||
-rw-r--r-- | templates/weekly_timesheet.yml.tmpl | 3 | ||||
-rw-r--r-- | timetask/generator.go | 27 |
4 files changed, 46 insertions, 2 deletions
@@ -16,7 +16,8 @@ type Config struct { Username string PasswordCmd string `yaml:"password_cmd"` } - Fields timetask.Fields + Fields timetask.Fields + Defaults timetask.TimeEntry } var config Config @@ -43,7 +44,9 @@ func main() { log.Printf("%+v", time_entries) - timetask.SubmitTimeEntries(config.Fields, time_entries) + // timetask.SubmitTimeEntries(config.Fields, time_entries) + + timetask.GenerateWeeklyTimesheet(os.Stdout, config.Defaults) } func loadConfig() { diff --git a/templates/timesheet.yml.tmpl b/templates/timesheet.yml.tmpl new file mode 100644 index 0000000..1930b09 --- /dev/null +++ b/templates/timesheet.yml.tmpl @@ -0,0 +1,11 @@ +{{- define "timesheet" -}} +- client: {{.Client}} + project: {{.Project}} + module: {{.Module}} + task: {{.Task}} + work_type: {{.WorkType}} + date: {{.Date.Format "02/01/06"}} + time: {{.Time}} + billable: {{.Billable}} + description: {{.Description}} +{{ end -}} diff --git a/templates/weekly_timesheet.yml.tmpl b/templates/weekly_timesheet.yml.tmpl new file mode 100644 index 0000000..0ea6582 --- /dev/null +++ b/templates/weekly_timesheet.yml.tmpl @@ -0,0 +1,3 @@ +{{- range . -}} + {{- template "timesheet" . -}} +{{- end -}} diff --git a/timetask/generator.go b/timetask/generator.go new file mode 100644 index 0000000..25986ae --- /dev/null +++ b/timetask/generator.go @@ -0,0 +1,27 @@ +package timetask + +import ( + "io" + "log" + "text/template" +) + +func GenerateWeeklyTimesheet(wr io.Writer, defaults TimeEntry) { + time_entries := []TimeEntry{} + for i := 1; i <= 5; i++ { + time_entries = append(time_entries, defaults) + } + + t, err := template.ParseFiles( + "templates/weekly_timesheet.yml.tmpl", + "templates/timesheet.yml.tmpl", + ) + if err != nil { + log.Panic(err) + } + + err = t.Execute(wr, time_entries) + if err != nil { + log.Panic(err) + } +} |