diff --git a/logger/logger.go b/logger/logger.go index c48d8cb..4120586 100755 --- a/logger/logger.go +++ b/logger/logger.go @@ -13,7 +13,7 @@ func New() Logger { func (l Logger) Info(m string, args ...interface{}) { args = append([]interface{}{m}, args...) switch m { - case "wake": + case "wake", "result": logb.Verbose(args...) case "run": logb.Debug(args...) diff --git a/scheduler/job.go b/scheduler/job.go index 6414b9f..00e62f1 100755 --- a/scheduler/job.go +++ b/scheduler/job.go @@ -6,6 +6,7 @@ import ( "fmt" "local/firestormy/config" "local/firestormy/config/ns" + "local/firestormy/logger" "os/exec" "strings" "time" @@ -14,6 +15,7 @@ import ( ) type Job struct { + Title string Name string Schedule string Raw string @@ -34,7 +36,7 @@ func NewJob(runner Runner, schedule, raw string) (*Job, error) { } } -func newBashJob(schedule, sh string) (*Job, error) { +func newBashJob(schedule, sh string, title ...string) (*Job, error) { if !validCron(schedule) { return nil, ErrBadCron } @@ -44,6 +46,11 @@ func newBashJob(schedule, sh string) (*Job, error) { Raw: sh, Runner: Bash, } + if len(title) == 0 { + j.Title = j.Name + } else { + j.Title = title[0] + } j.foo = func() { cmd := exec.Command("bash", "-c", sh) j.LastRun = time.Now() @@ -62,6 +69,7 @@ func newBashJob(schedule, sh string) (*Job, error) { // TODO webpage doenst load post SET despite this returning nil config.Store.Set(j.Name, b, ns.Jobs...) } + logger.New().Info("result", fmt.Sprintf("%+v", j)) } return j, nil } @@ -87,6 +95,7 @@ func (j *Job) Decode(b []byte) error { k, err := NewJob(j.Runner, j.Schedule, j.Raw) if err == nil { k.Name = j.Name + k.Title = j.Title k.LastStatus = j.LastStatus k.LastOutput = j.LastOutput k.LastRuntime = j.LastRuntime diff --git a/scheduler/job_test.go b/scheduler/job_test.go index f4a4904..116145b 100755 --- a/scheduler/job_test.go +++ b/scheduler/job_test.go @@ -89,6 +89,9 @@ func TestJobEncodeDecode(t *testing.T) { if k.Name != j.Name { t.Error(k.Name, "vs", j.Name) } + if k.Title != j.Title { + t.Error(k.Title, "vs", j.Title) + } if diff := k.LastRun.Unix() - j.LastRun.Unix(); (diff > 0 && diff < int64(time.Hour)) || (diff < 0 && -1*diff < int64(time.Hour)) { t.Error(j.LastRun, "vs", k.LastRun) } @@ -109,6 +112,7 @@ func TestJobEncodeDecode(t *testing.T) { } func captureLog() (*bytes.Buffer, func()) { + logb.Set(logb.VERBOSE) was := logb.Writer() wase := os.Stderr f, _ := ioutil.TempFile(os.TempDir(), "test.newBashJobAndRun") diff --git a/server/upserts.go b/server/upserts.go index babda4c..26e6ad1 100755 --- a/server/upserts.go +++ b/server/upserts.go @@ -14,6 +14,7 @@ import ( ) type upsertRequest struct { + Title string `json:"title"` ID string `json:"id"` Language string `json:"language"` Cron string `json:"cron"` @@ -35,6 +36,9 @@ func (u *upsertRequest) validate() error { } else if _, err := config.Store.Get(u.ID, ns.Jobs...); err != nil { return fmt.Errorf("ID provided but not accessible: %v", err) } + if u.Title == "" { + u.Title = u.ID + } if u.Language == "" { return errors.New("language required") }