aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.go7
-rw-r--r--templates/timesheet.yml.tmpl11
-rw-r--r--templates/weekly_timesheet.yml.tmpl3
-rw-r--r--timetask/generator.go27
4 files changed, 46 insertions, 2 deletions
diff --git a/main.go b/main.go
index e436d31..e1930cb 100644
--- a/main.go
+++ b/main.go
@@ -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)
+ }
+}