-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathmesg_repeat.tf
48 lines (42 loc) · 1.36 KB
/
mesg_repeat.tf
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
; $Log: mesg_repeat.tf,v $
; Revision 1.1 2002/04/23 10:49:26 lje
; Erste Version
;
/set mesg_repeat_tf_version $Id$
/set [email protected]
/set mesg_repeat_tf_requires=
/set mesg_repeat_tf_desc=Zusammenfassen identischer Ausgaben vom Mud
; Diese File fasst gleiche, aufeinanderfolgende Ausgaben des Muds zusammen,
; so wie das auch der Syslogd auf Unix-Systemen tut.
; Das gaggen erfolgt jedoch als Fallthrouh, so dass andere Trigger die Zeilen
; trotzdem noch zu Gesicht bekommen
/set msg_repeat_count=0
/set msg_repeat_pid=0
/def -p10000 -mglob -q -F -t'*' msg_repeat = \
/if ({*} =~ msg_repeat_saved) \
/test ++msg_repeat_count%; \
/test substitute({*}, 'g')%; \
/if (msg_repeat_pid & strstr($(/ps -s), msg_repeat_pid)) \
/kill msg_repeat_pid%; \
/endif%; \
/repeat -2 1 /msg_repeat_out%; \
/set msg_repeat_pid=%?%; \
/else \
/if (msg_repeat_count > 1) \
/_echo %% last message repeated %msg_repeat_count \
times%; \
/if (msg_repeat_pid & strstr($(/ps -s), \
msg_repeat_pid)) \
/kill msg_repeat_pid%; \
/endif%; \
/endif%; \
/set msg_repeat_count=1%; \
/test set(strcat('msg_repeat_saved=', {*}))%; \
/endif
/def msg_repeat_out = \
/if (msg_repeat_count > 1) \
/_echo %% last message repeated %msg_repeat_count times%; \
/endif%; \
/set msg_repeat_count=0%; \
/set msg_repeat_saved=%; \
/set msg_repeat_pid=0