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