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.