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

NAME

tai-download-leapseconds -- download the IETF leapseconds file.

SYNOPSIS

    tai-download-leapseconds http://my.server/foo/leaps.list http://other.server/leaps.list
    tai-download-leapseconds --help
    tai-download-leapseconds --quiet --pathname=/etc/leap-seconds.list
    tai-download-leapseconds --show-url

DESCRIPTION

tai-download-leapseconds iterates through a list of URLs and attempts to download the IETF leapseconds list file, saving it by default to a location where Time::TAI::Simple knows to look for it.

By default it writes the pathname of the downloaded file to STDOUT upon success, or an error message to STDERR on failure.

If the user wishes to specify URLs where tai-download-leapseconds should look first, any number of URLs may be specified as command line arguments, which will be checked in order.

These default behaviors may be controlled via some options:

    -h          Describe available options
    --help      Same as -h
    --add-agent=<string>
                Add the specified User-Agent string to the internal list
    --add-agent=\"<string>|<string>|...\"
                Add the specified User-Agent strings to the internal list
    --agent=<string>
                Use the specified User-Agent string
    --churn-agent
                On failure, pick a random User-Agent string for next try
                (Most useful when --retry=N is set to N > 1)
                (Does not work with --force-edge)
    --debug
                Show annoying descriptions of what it is doing (ignores -q)
    --force-edge
                Always use the first User-Agent string in the list
                (Microsoft Edge, unless overridden with --agent)
    --pathname=<pathname>
                Specify the pathname to which the file is saved.
    --primary
                Try to fetch from the IERS URL before the cache URL
    --retry=<N>
                Upon fetch failure, try again up to N times (default 0).
    --retry-delay=<N>
                When --retry is set, sleep N seconds between tries (default 0.5).
    --show-url  Write to STDOUT the URL from which the file was downloaded.
                (Before pathname is written to STDOUT, on a different line.)
    -q          Do not write pathname to STDOUT or error messages to STDERR.

ABOUT URLS

At the time of this writing, tai-download-leapseconds first tries to download the leapseconds list from the module author's own server, which under normal circumstances should fail (with an HTTP 404 reply code). When it is unable to retrieve the list from this location, it will attempt to download the list from the IETF's server at https://www.ietf.org/timezones/data/leap-seconds.list.

The reason for doing it this way is to allow workarounds should the IETF suffer infrastructure failure. If the IETF changes the location of their official list without setting up a redirect, or if their servers go down for an extended period of time, the module author can set up an HTTP 302 redirect to the new official leapsecond location, or provide a copy of the file directly.

Administrators who do not feel comfortable depending on some random guy's server should maintain their own redirect or leapsecond list file for their organization and pass the URL of this resource to tai-download-leapseconds as an argument, or just maintain each server's /etc/leap-seconds.list themselves and not use tai-download-leapseconds at all.

SEE ALSO

Time::TAI::Simple

AUTHOR

TTK Ciar, <ttk[at]ciar[dot]org>

COPYRIGHT AND LICENSE

Copyright 2014-2015 by TTK Ciar

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.