cheek

package
v0.3.36 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 1, 2024 License: MIT Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Version = "development"

Version will be set through build flags used to print version via cmd.

Functions

func CheekPath

func CheekPath() string

func CoreJsonLogger

func CoreJsonLogger() io.Writer

func JobRunWebhookCall

func JobRunWebhookCall(jr *JobRun, webhookURL string, webhookType string) ([]byte, error)

func NewLogger

func NewLogger(logLevel string, extraWriters ...io.Writer) zerolog.Logger

Configures the package's global logger, also allows to pass in custom writers for testing purposes.

func PrettyStdout

func PrettyStdout() io.Writer

func RunSchedule

func RunSchedule(log zerolog.Logger, cfg Config, scheduleFn string) error

RunSchedule is the main entry entrypoint of cheek.

Types

type Config

type Config struct {
	Pretty       bool   `yaml:"pretty"`
	SuppressLogs bool   `yaml:"suppressLogs"`
	LogLevel     string `yaml:"logLevel"`
	HomeDir      string `yaml:"homedir"`
	Port         string `yaml:"port"`
}

func NewConfig

func NewConfig() Config

type JobRun

type JobRun struct {
	Status int `json:"status"`

	Log         string        `json:"log"`
	Name        string        `json:"name"`
	TriggeredAt time.Time     `json:"triggered_at"`
	TriggeredBy string        `json:"triggered_by"`
	Triggered   []string      `json:"triggered,omitempty"`
	Duration    time.Duration `json:"duration,omitempty"`
	// contains filtered or unexported fields
}

JobRun holds information about a job execution.

func RunJob

func RunJob(log zerolog.Logger, cfg Config, scheduleFn string, jobName string) (JobRun, error)

RunJob allows to run a specific job

type JobSpec

type JobSpec struct {
	Cron    string      `yaml:"cron,omitempty" json:"cron,omitempty"`
	Command stringArray `yaml:"command" json:"command"`

	OnSuccess OnEvent `yaml:"on_success,omitempty" json:"on_success,omitempty"`
	OnError   OnEvent `yaml:"on_error,omitempty" json:"on_error,omitempty"`

	Name             string            `json:"name"`
	Retries          int               `yaml:"retries,omitempty" json:"retries,omitempty"`
	Env              map[string]string `yaml:"env,omitempty"`
	WorkingDirectory string            `yaml:"working_directory,omitempty" json:"working_directory,omitempty"`

	Runs []JobRun `yaml:"runs,omitempty"`
	// contains filtered or unexported fields
}

JobSpec holds specifications and metadata of a job.

func (*JobSpec) OnEvent

func (j *JobSpec) OnEvent(jr *JobRun)

func (JobSpec) ToYAML added in v0.3.0

func (j JobSpec) ToYAML(includeRuns bool) (string, error)

func (*JobSpec) ValidateCron

func (j *JobSpec) ValidateCron() error

type OnEvent

type OnEvent struct {
	TriggerJob         []string `yaml:"trigger_job,omitempty" json:"trigger_job,omitempty"`
	NotifyWebhook      []string `yaml:"notify_webhook,omitempty" json:"notify_webhook,omitempty"`
	NotifySlackWebhook []string `yaml:"notify_slack_webhook,omitempty" json:"notify_slack_webhook,omitempty"`
}

OnEvent contains specs on what needs to happen after a job event.

type Response added in v0.3.0

type Response struct {
	Job    string `json:"jobs,omitempty"`
	Status string `json:"status,omitempty"`
	Type   string `json:"type,omitempty"`
}

type Schedule

type Schedule struct {
	Jobs       map[string]*JobSpec `yaml:"jobs" json:"jobs"`
	OnSuccess  OnEvent             `yaml:"on_success,omitempty" json:"on_success,omitempty"`
	OnError    OnEvent             `yaml:"on_error,omitempty" json:"on_error,omitempty"`
	TZLocation string              `yaml:"tz_location,omitempty" json:"tz_location,omitempty"`
	// contains filtered or unexported fields
}

Schedule defines specs of a job schedule.

func (*Schedule) Run

func (s *Schedule) Run()

Run a Schedule based on its specs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL