1/* -*- Mode: Text -*- */
2autogen definitions perlopt;
3
4#include autogen-version.def
5
6prog-name      = 'update-leap';
7prog-title     = 'leap-seconds file manager/updater';
8package		= ntp;
9#include	version.def
10
11long-opts;
12gnu-usage;
13
14flag = {
15    name        = source-url;
16    value	= s;
17    arg-type    = string;
18    descrip     = 'The URL of the master copy of the leapseconds file';
19    doc         = <<-  _EndOfDoc_
20	Specify the URL of the master copy to download
21	$LEAPSRC
22	_EndOfDoc_;
23};
24flag = {
25    name      = ipv4;
26    flags-cant = ipv6;
27    value     = 4;
28    descrip   = "Use only IPv4 addresses for DNS name resolution";
29    doc = <<-  _EndOfDoc_
30        Force DNS resolution of following host names on the command line
31        to the IPv4 namespace.
32        _EndOfDoc_;
33};
34
35flag = {
36    name      = ipv6;
37    flags-cant = ipv4, prefer;
38    value     = 6;
39    descrip   = "Use only IPv6 addresses for DNS name resolution";
40    doc = <<-  _EndOfDoc_
41        Force DNS resolution of following host names on the command line
42        to the IPv6 namespace.
43        _EndOfDoc_;
44};
45
46flag = {
47    name        = prefer;
48    flags-cant	= ipv4, ipv6;
49    value	= p;
50    arg-type    = keyword;
51    keyword	= 4, 6;
52    descrip     = 'Prefer IPv4 or IPv6 (as specified) addresses, but use either';
53    doc         = <<-  _EndOfDoc_
54	Prefer IPv4 or IPv6 (as specified) addresses, but use either.
55	_EndOfDoc_;
56};
57
58flag = {
59    name        = destination;
60    value       = d;
61    arg-type    = string;
62    arg-name    = float;
63    descrip     = 'Filename on the local system';
64    doc         = <<-  _EndOfDoc_
65	The name to use to store the leapfile on the local system.
66	$LEAPFILE
67	_EndOfDoc_;
68};
69
70flag = {
71    name        = expiration;
72    value	= e;
73    arg-type    = string;
74    descrip     = 'Refresh the leapfile this long before it expires';
75    doc         = <<-  _EndOfDoc_
76	Specify how long before expiration the file is to be refreshed
77	Units are required, e.g. "-e 60 days"  Note that larger values
78	imply more frequent refreshes.
79	"$PREFETCH"
80	_EndOfDoc_;
81};
82
83flag = {
84    name        = ntp-conf-file;
85    value	= f;
86    arg-type    = string;
87    descrip     = 'Location of the ntp.conf file';
88    doc         = <<-  _EndOfDoc_
89	Specify location of ntp.conf (used to make sure leapfile directive is
90	present and to default  leapfile)
91	/etc/ntp.conf
92	_EndOfDoc_;
93};
94
95flag = {
96    name        = force-update;
97    value	= F;
98    descrip     = 'Force update of the leapfile';
99    doc         = <<-  _EndOfDoc_
100	Force update even if current file is OK and not close to expiring.
101	_EndOfDoc_;
102};
103
104flag = {
105    name        = dont-wait;
106    descrip     = "Don't wait for keystroke between plots";
107    doc         = <<-  _EndOfDoc_
108	_EndOfDoc_;
109};
110
111/* explain: Additional information whenever the usage routine is invoked */
112explain = <<- _END_EXPLAIN
113	_END_EXPLAIN;
114
115doc-section     = {
116  ds-type       = 'DESCRIPTION';
117  ds-format     = 'mdoc';
118  ds-text       = <<- _END_PROG_MDOC_DESCRIP
119.Nm
120will validate the file currently on the local system
121and if necessary, updates leap-second definition file.
122.Pp
123Ordinarily, the file is found using the "leapfile" directive in
124.Xr ntp.conf 5 .
125However, an alternate location can be specified on the command line.
126.Pp
127If the file does not exist, is not valid, has expired, or is expiring soon,
128a new copy will be downloaded.  If the new copy validates, it is installed and
129NTP is (optionally) restarted.
130.Pp
131If the current file is acceptable, no download or restart occurs.
132.Pp
133-c can also be used to invoke another script to perform administrative
134functions, e.g. to copy the file to other local systems.
135.PP
136This can be run as a cron job.  As the file is rarely updated, and leap
137seconds are announced at least one month in advance (usually longer), it
138need not be run more frequently than about once every three weeks.
139.PP
140For cron-friendly behavior, define CRONJOB=1 in the crontab.
141.PP
142This script depends on$REQUIREDCMDS
143	_END_PROG_MDOC_DESCRIP;
144};
145
146
147doc-section     = {
148  ds-type       = 'USAGE';
149  ds-format     = 'mdoc';
150  ds-text       = <<- _END_MDOC_USAGE
151
152Usage stuff
153
154	_END_MDOC_USAGE;
155};
156
157doc-section     = {
158  ds-type       = 'AUTHORS';
159  ds-format     = 'mdoc';
160  ds-text       = <<- _END_MDOC_AUTHORS
161.An "Timothe Litt"
162	_END_MDOC_AUTHORS;
163};
164