aboutsummaryrefslogtreecommitdiff
path: root/NEWS
blob: 831dec2812ec27f9ae4275e3ff040f4c61404952 (plain)
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
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
Rex NEWS -- history of user-visible changes. 2022-03-17
See the end of file for copying conditions.

Please send bug reports and suggestions to <gray+rex@gnu.org.ua>

Version 4.1, 2022-03-17

* Hostgroup stack

Rex now maintains a stack of hostgroups.  Once you push a hostgroup
name on stack, that hostgroup will be used by any subsequent rex
command, unless it is given the -g option.  The new command "group"
(see below) provides ways to pop items off the stack, swap arbitrary
element with the top of stack, select new hostgroups on the fly, etc.

* New command: rex group

The "rex group" command has the following forms:

  rex group push GROUP
    Push GROUP on stack.

  rex group pop
    Pop the topmost group off the stack.

  rex group swap N
    Exchange top of the stack with the Nth element (0-based).

  rex group drop N
    Remove Nth element from the stack.

  rex group select COMMAND ARGS...
    Create on top of the stack a temporary group that contains
    those hosts from the current hostgroup where the supplied
    shell command returns success, i.e. exits with code 0.

  rex group show
    List the contents of the hostgroup stack.

* Add configuration function for overriding PTR records from rc files


Version 4.0, 2016-10-01

This release provide a set of commands for use in rc files.  The use
of set statements and direct modification of the config array are
discouraged.

The old rc files are still supported, although they are likely to
produce lots of warnings looking like:

  /usr/bin/rex: warning: your rc file sets obsolete variable "hosts"
  /usr/bin/rex: warning: please change this to "host A B C"

The following guidelines will help you rewrite your rc files in the
new format.

1. Replace the 'set hosts' statement:

old rc:
  set hosts { a b c }
new rc:
  host a b c

2. Replace the 'set user' statement:

old rc:
  set user rex
new rc:
  user rex

3. Replace the 'set password' statement:

old rc:
  set password guessme
new rc:
  password guessme

4. Replace the 'set sudo' command:

old rc:
  set sudo 1
new rc:
  sudo on

5. Replace the 'set command' statement:

old rc:
  set command "ls -ltr /tmp"
new rc:
  command ls -ltr /tmp

6. Replace the 'set timeout' statement:

old rc:
  global timeout
  set timeout 120
new rc:
  timeout 120

7. Replace the 'set env' statement:

old rc:
  global env
  set env(TERM) dumb
new rc:
  environ TERM=dumb
or the preferred form:
  ifmode run { environ TERM=dumb }

The latter form ensures that the TERM setting is changed only for the
'rex run' command.

8. Change the 'set config(earlycmd)' statement:

old rc:
  set config(earlycmd) { {unsetopt ZLE} {PS1='$ '} }
new rc:
  earlycmd {unsetopt ZLE} {PS1='$ '}

9. Change the 'set config(shrc)' statement:

old rc:
  set config(shrc) {HISTFILE=/dev/null}
new rc:
  shrc {HISTFILE=/dev/null}

10. 'Change the 'set config(option,NAME)' statements:

old rc:
  set config(option,prefix) 1
  set config(option,no-host-header) 1
new rc:
  option prefix on
  option no-host-header on
  

Version 3.0, 2016-08-29

Major rewrite.

* Reorganize ~/.rex/ structure.

Hostgroups are moved to ~/.rex/hostgroup subdirectory.

* Revamp scripting support.

The TCL script to use is given by the -s NAME option.  The file NAME.tcl
is searched in the library path.  It is sourced in the namespace
"hostproc".  It is supposed to overload one or more of the following
functions: prologue, epilogue, getline, transition, finish.  Default
implementations of these functions provide the basic rex output facilities.

* Remove -x (--program) option.

* Handle pipelines, improve debugging, fix key lookup in the db

* New option -D (--data-file)

Copies auxiliary data files to the host before running the command.

Data files (as well as the script file itself, if the --script
option is given) are copied to a temporary directory created to that effect.
This directory also becomes current working directory while executing
the command.

* New options: -I (--ignore-hosts) and -q (--no-init-file).

* Parallel processing mode.  New option -j (--jobs).

* New option -b (--buffer-output).

* Provide a manpage

* Support for zsh

New option -Z (--zsh-quirk) provides an ad-hoc way of coping with
hosts running zsh.  The earlycmd configuration setting provides a
generalized way of doing so.

* Provide installation and configuration script


Version 2.1, 2015-06-17

New option --prefix (-P).

New option --no-host-header.

Improve the --edit functionality.

Implement --copy-from

Implement DNS resolver.

New sources for facilitating writing the rc files: vpnc.exp and
entrustcard.tcl


Version 2.0, 2013-01-13

Look for configuration files and databases in directories ~/.rex and
/etc/rex in that order.  If the group is specified, this list is
augmented by ~/.rex/GRP and /etc/rex/GRP at the beginning.

The name of the configuration file is "rc".  Databases are named "db".

The new option --list-groups lists available groups along with
one-line descriptions.  The description for each group is stored in
the file "description" in the group configuration directory.

The new option "-g GRP" introduces a group of settings.  If it is
supplied, rex first loads the file .rex/GRP/rc (if it exists), and
then proceeds to load .rex/rc.  Furthermore, in the presence of this 
option the library path begins with the directory .rex/GRP/script.
This allows the user to easily switch between various configurations.
Finally, the new configuration variable "home" is defined to .rex/GRP.

The keys to .rex/db has been unified to have the following structure:
[[group:][host:]key.

Version 1.1, 2012-12-28

Use traditional UNIX option handling. Support long options.

Introduce a database of host-specific settings (rexdb).

New option -e (--encrypt).

New option -i (--interactive).

Work over buffer overflow in expect versions prior to 5.44.1.13.

Implement shell subcommand

Version 0.1, around Nov 2012

Initial version.

=========================================================================
Copyright information:

Copyright (C) 2012-2022 Sergey Poznyakoff

   Permission is granted to anyone to make or distribute verbatim copies
   of this document as received, in any medium, provided that the
   copyright notice and this permission notice are preserved,
   thus giving the recipient permission to redistribute in turn.

   Permission is granted to distribute modified versions
   of this document, or of portions of it,
   under the above conditions, provided also that they
   carry prominent notices stating who last changed them.

Local variables:
mode: outline
paragraph-separate: "[	]*$"
eval: (add-hook 'write-file-hooks 'time-stamp)
time-stamp-start: "changes. "
time-stamp-format: "%:y-%02m-%02d"
time-stamp-end: "\n"
end:

Return to:

Send suggestions and report system problems to the System administrator.