Class: Wheneverd::Systemd::Renderer

Inherits:
Object
  • Object
show all
Defined in:
lib/wheneverd/systemd/renderer.rb

Overview

Renders a Wheneverd::Schedule into systemd units.

Each job in each entry becomes a *.service plus matching *.timer.

Unit file names are generated as:

wheneverd-<identifier>-<stable_id>.{service,timer}

The stable ID is derived from the job's trigger + command so reordering schedule blocks does not rename units. If there are duplicate jobs with identical trigger + command, a stable -N suffix is appended to avoid collisions.

The identifier is sanitized for use in filenames (invalid characters become -).

Uses UnitContentBuilder for generating unit file contents.

Constant Summary collapse

MARKER_PREFIX =
"# Generated by wheneverd (wheneverd)"

Class Method Summary collapse

Class Method Details

.render(schedule, identifier:) ⇒ Array<Unit>

Render a schedule to systemd units.

Parameters:

Returns:



38
39
40
41
42
# File 'lib/wheneverd/systemd/renderer.rb', line 38

def self.render(schedule, identifier:)
  validate_schedule(schedule)
  id = UnitPathUtils.sanitize_identifier(identifier)
  render_schedule(schedule, id)
end