NAME

schedule-activity.pl - Build activity schedules.

SYNOPSIS

schedule-activity.pl [options] configuration activities

  configuration:  [--schedule=file | --json=file]
  activities:     [--activity=time,name ... | --activities='time,name;time,name;...']

The --schedule file should be a non-cyclic Perl evaluable hash or hash reference. A --json file should be a hash reference. The format of the schedule configuration is described in Schedule::Activity.

OPTIONS

--check

Compile the schedule and report any errors.

--tslack=number and --tbuffer=number

Set the slack or buffer tension. Values should be from 0.0 to 1.0.

--noteorder=name;name;...

Only merge the annotation groups specified by the names. Default is all, alphabetical.

--nonotemerge

Do not merge annotation messages into the final schedule.

--attribute=grid

Display all attributes, their values over time, and averages. (No other output formats are supported at this time)

--goal=(hash)

Provide a Perl hash string of the form 'cycles=>N,attribute=>{...}' as described in "Goals" in Schedule::Activity to enable attribute-based goal seeking.

--unsafe

Skip safety checks, allowing the schedule to contain cycles, non-terminating nodes, etcetera. Useful during debugging and development.

--after and --save

Run with --man or perldoc schedule-activity.pl for details on these options.

INCREMENTAL BUILDS

Schedules can be incrementally constructed from a starting configuration as follows:

schedule-activity.pl --schedule=config.dump --activity=time,name --save=file1a.dat
schedule-activity.pl --after=file1a.dat --activity=time,name --save=file2a.dat
schedule-activity.pl --after=file2a.dat --nonotemerge

The schedule must be provided initially, and the activity or activities will be built into the list of scheduled activities normally. Results are stored in the save filename. Use after to specify a savefile as a starting point for scheduling. As a special case, omitting an activity list is permitted with an after file, and the saved schedule will be shown on stdout. The configuration does not need to be indicated after the bootstrapping step.

This permits buliding multiple, randomized schedules from the configuration into separate files for comparison and selection. Subsequent activities can be built incrementally to achieve targets not specified within the configuration (attribute goals, etc.).

At each step, the schedule is output normally, including annotations unless nonotemerge has been specified.

Annotations are not saved. Annotations apply generally to all actions in a schedule, so incremental builds are not equivalent to a full schedule build. While the annotations are shown with the output at each stage of construction, they are recomputed each time.

NOTES

Unhandled failures in Schedule::Activity are not trapped. This script may die, and may run unbounded if the schedule contains infinite cycles.