The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

TITLE

scal - Displays a Shire calendar

SYNOPSIS

 scal
 scal 7482
 scal 6 7482
 scal -y
 scal -y 7482
 scal -help
 scal -version

OPTIONS

-accented

If this Boolean option is asserted, event output will be accented, and encoded in UTF-8. If not, event output will be unaccented, and in the local character set. This option is ignored unless -events is asserted.

The assertion of this option will cause an exception under Perls before 5.8.

The default is -noaccented.

-color

If this Boolean option is asserted, the current day is emphasized.

The default is true if STDOUT is a terminal, and false if not.

-color-today

 -color-today 'magenta on_black'

This option specifies how to emphasize the current day. The value must be acceptable to Term::ANSIColor. The default is 'underline'.

-events

If asserted, this Boolean option causes events in the displayed month to be displayed also. It is ignored if -y is in effect.

The default is -noevents.

-help

This option displays the documentation for this script. The script then exits.

-j

If this Boolean option is asserted, Julian days are displayed, with 2 Yule being day 1.

-version

This option displays the version of this script. The script then exits.

-y

If this Boolean option is asserted, a whole year is displayed, including Midyear's Day, and the Overlithe if any. If it is not asserted, only a month is displayed.

The default is -noy.

DETAILS

This Perl script displays the Shire calendar for the Shire Reckoning month and year specified on the command line. The default is to display the current month and year.

For the purpose of selecting dates to display, the holidays are lumped in with months as follows.

 2 Yule -------- Afteryule (month 1)
 1 Lithe ------- Forelithe (month 6)
 Midyear's day - Forelithe (month 6)
 Overlithe ----- Forelithe (month 6)
 2 Lithe ------- Afterlithe (month 7)
 1 Yule -------- Foreyule (month 12)

This script is intended to be the Shire analog of the cal (1). command.

FILES

You can specify default options in a file named .scalrc in your home directory. Each line of this file is trimmed front and back, and becomes a command line argument inserted before anything specified explicitly. For example, to make the current day bold red, you could specify

 -color-today=bold red

or, alternatively,

 -color-today
 bold red

You can still override anything here by specifying command arguments, but anything you place in this file must parse correctly.

The code to find the home directory is home-grown, but mimics that in File::Glob::bsd_glob().

AUTHOR

Thomas R. Wyant, III wyant at cpan dot org

COPYRIGHT AND LICENSE

Copyright (C) 2017-2021 by Thomas R. Wyant, III

This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For more details, see the full text of the licenses in the directory LICENSES.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.