runner

package
v0.3.4 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package runner executes notification pipeline steps in sequence.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Execute

func Execute(steps []config.Step, defaultVolume int, creds config.Credentials, vars tmpl.Vars, desktop *int) error

Execute runs the given steps (already filtered by the caller). Remote steps (discord, slack, telegram, webhook, mqtt, toast, plugin) are fired in parallel via goroutines so network latency doesn't serialize. Audio steps (sound, say) run sequentially to avoid overlapping playback on the local speaker. Both groups execute concurrently with each other.

func FilterSteps

func FilterSteps(steps []config.Step, afk, run bool, elapsed time.Duration) []config.Step

FilterSteps returns only the steps that should run given the current AFK state, invocation mode, and elapsed time. Steps with When="" always run; "afk"/"present" filter on idle state; "run"/"direct" filter on whether the invocation came from `notify run`; "hours:X-Y" filters on the current hour (24h local time); "long:DURATION" filters on elapsed time (0 = non-run context, always skipped).

func FilteredIndices added in v0.2.11

func FilteredIndices(steps []config.Step, afk, run bool, elapsed time.Duration) map[int]bool

FilteredIndices returns a boolean map indicating which step indices would run. Used by dry-run to mark each step as RUN or SKIP.

Types

This section is empty.

Jump to

Keyboard shortcuts

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