schedule

package
v0.26.0 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2024 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrorServiceNotFound   = errors.New("service not found")
	ErrorServiceNotRunning = errors.New("service is not running")
)

Generic errors

View Source
var ErrorJobCanBeRemovedOnly = errors.New("job can be removed only")

Functions

This section is empty.

Types

type Handler added in v0.16.1

type Handler interface {
	Init() error
	Close()
	ParseSchedules(schedules []string) ([]*calendar.Event, error)
	DisplayParsedSchedules(command string, events []*calendar.Event)
	DisplaySchedules(command string, schedules []string) error
	DisplayStatus(profileName string) error
	CreateJob(job *config.ScheduleConfig, schedules []*calendar.Event, permission string) error
	RemoveJob(job *config.ScheduleConfig, permission string) error
	DisplayJobStatus(job *config.ScheduleConfig) error
}

Handler interface for the scheduling software available on the system

func NewHandler added in v0.16.1

func NewHandler(config SchedulerConfig) Handler

NewHandler creates a crond or systemd handler depending on the configuration

type HandlerCrond added in v0.16.1

type HandlerCrond struct {
	// contains filtered or unexported fields
}

HandlerCrond is a handler for crond scheduling

func NewHandlerCrond added in v0.16.1

func NewHandlerCrond(config SchedulerConfig) *HandlerCrond

NewHandlerCrond creates a new handler for crond scheduling

func (*HandlerCrond) Close added in v0.16.1

func (h *HandlerCrond) Close()

Close does nothing with crond

func (*HandlerCrond) CreateJob added in v0.16.1

func (h *HandlerCrond) CreateJob(job *config.ScheduleConfig, schedules []*calendar.Event, permission string) error

CreateJob is creating the crontab

func (*HandlerCrond) DisplayJobStatus added in v0.16.1

func (h *HandlerCrond) DisplayJobStatus(job *config.ScheduleConfig) error

DisplayJobStatus has nothing to display (crond doesn't provide running information)

func (*HandlerCrond) DisplayParsedSchedules added in v0.16.1

func (h *HandlerCrond) DisplayParsedSchedules(command string, events []*calendar.Event)

func (*HandlerCrond) DisplaySchedules added in v0.16.1

func (h *HandlerCrond) DisplaySchedules(command string, schedules []string) error

DisplaySchedules does nothing with crond

func (*HandlerCrond) DisplayStatus added in v0.16.1

func (h *HandlerCrond) DisplayStatus(profileName string) error

DisplayStatus does nothing with crond

func (*HandlerCrond) Init added in v0.16.1

func (h *HandlerCrond) Init() error

Init verifies crond is available on this system

func (*HandlerCrond) ParseSchedules added in v0.16.1

func (h *HandlerCrond) ParseSchedules(schedules []string) ([]*calendar.Event, error)

func (*HandlerCrond) RemoveJob added in v0.16.1

func (h *HandlerCrond) RemoveJob(job *config.ScheduleConfig, permission string) error

type HandlerSystemd added in v0.16.1

type HandlerSystemd struct {
	// contains filtered or unexported fields
}

HandlerSystemd is a handler to schedule tasks using systemd

func NewHandlerSystemd added in v0.16.1

func NewHandlerSystemd(config SchedulerConfig) *HandlerSystemd

NewHandlerSystemd creates a new handler to schedule jobs using systemd

func (*HandlerSystemd) Close added in v0.16.1

func (h *HandlerSystemd) Close()

Close does nothing with systemd

func (*HandlerSystemd) CreateJob added in v0.16.1

func (h *HandlerSystemd) CreateJob(job *config.ScheduleConfig, schedules []*calendar.Event, permission string) error

CreateJob is creating the systemd unit and activating it

func (*HandlerSystemd) DisplayJobStatus added in v0.16.1

func (h *HandlerSystemd) DisplayJobStatus(job *config.ScheduleConfig) error

DisplayJobStatus displays information of a systemd service/timer

func (*HandlerSystemd) DisplayParsedSchedules added in v0.16.1

func (h *HandlerSystemd) DisplayParsedSchedules(command string, events []*calendar.Event)

DisplayParsedSchedules does nothing with systemd

func (*HandlerSystemd) DisplaySchedules added in v0.16.1

func (h *HandlerSystemd) DisplaySchedules(command string, schedules []string) error

DisplaySchedules displays the schedules through the systemd-analyze command

func (*HandlerSystemd) DisplayStatus added in v0.16.1

func (h *HandlerSystemd) DisplayStatus(profileName string) error

func (*HandlerSystemd) Init added in v0.16.1

func (h *HandlerSystemd) Init() error

Init verifies systemd is available on this system

func (*HandlerSystemd) ParseSchedules added in v0.16.1

func (h *HandlerSystemd) ParseSchedules(schedules []string) ([]*calendar.Event, error)

ParseSchedules always returns nil on systemd

func (*HandlerSystemd) RemoveJob added in v0.16.1

func (h *HandlerSystemd) RemoveJob(job *config.ScheduleConfig, permission string) error

RemoveJob is disabling the systemd unit and deleting the timer and service files

type Job

type Job struct {
	// contains filtered or unexported fields
}

Job scheduler

func (*Job) Accessible added in v0.12.0

func (j *Job) Accessible() bool

Accessible checks if the current user is permitted to access the job

func (*Job) Create

func (j *Job) Create() error

Create a new job

func (*Job) Remove

func (j *Job) Remove() error

Remove a job

func (*Job) RemoveOnly added in v0.12.0

func (j *Job) RemoveOnly() bool

RemoveOnly returns true if this job can be removed only

func (*Job) Status

func (j *Job) Status() error

Status of a job

type Permission

type Permission string

Permission is either system or user

const (
	PermissionUser   Permission = "user"
	PermissionSystem Permission = "system"
)

Permission

func (Permission) String

func (p Permission) String() string

String returns either "user" or "system"

type Scheduler added in v0.11.0

type Scheduler struct {
	// contains filtered or unexported fields
}

Scheduler

func NewScheduler added in v0.11.0

func NewScheduler(handler Handler, profileName string) *Scheduler

NewScheduler creates a Scheduler object

func (*Scheduler) Close added in v0.11.0

func (s *Scheduler) Close()

Close

func (*Scheduler) DisplayStatus added in v0.11.0

func (s *Scheduler) DisplayStatus()

DisplayStatus

func (*Scheduler) Init added in v0.11.0

func (s *Scheduler) Init() error

Init

func (*Scheduler) NewJob added in v0.11.0

func (s *Scheduler) NewJob(config *config.ScheduleConfig) SchedulerJob

NewJob instantiates a Job object (of SchedulerJob interface) to schedule jobs

type SchedulerConfig added in v0.16.1

type SchedulerConfig interface {
	// Type of scheduler config ("windows", "launchd", "crond", "systemd" or "" for OS default)
	Type() string
}

func NewSchedulerConfig added in v0.16.1

func NewSchedulerConfig(global *config.Global) SchedulerConfig

type SchedulerCrond added in v0.16.1

type SchedulerCrond struct {
	Fs afero.Fs
}

func (SchedulerCrond) Type added in v0.16.1

func (s SchedulerCrond) Type() string

type SchedulerDefaultOS added in v0.16.1

type SchedulerDefaultOS struct{}

func (SchedulerDefaultOS) Type added in v0.16.1

func (s SchedulerDefaultOS) Type() string

type SchedulerJob added in v0.11.0

type SchedulerJob interface {
	Accessible() bool
	Create() error
	Remove() error
	RemoveOnly() bool
	Status() error
}

SchedulerJob interface

type SchedulerLaunchd added in v0.16.1

type SchedulerLaunchd struct {
	Fs afero.Fs
}

func (SchedulerLaunchd) Type added in v0.16.1

func (s SchedulerLaunchd) Type() string

type SchedulerSystemd added in v0.16.1

type SchedulerSystemd struct {
	Fs            afero.Fs
	UnitTemplate  string
	TimerTemplate string
}

func (SchedulerSystemd) Type added in v0.16.1

func (s SchedulerSystemd) Type() string

type SchedulerWindows added in v0.16.1

type SchedulerWindows struct{}

func (SchedulerWindows) Type added in v0.16.1

func (s SchedulerWindows) Type() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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