Line # Revision Author
1 3 ahitrov@rambler.ru # ������������ ��� ������� �������� �� crontab
2 # � ����: /some/script > /some/log
3 # ���� STDOUT ������������ � ����, �� STDERR ����������� � STDOUT.
4 # ����� �������, ��� ������ � STDOUT � STDERR ������ �������� � log
5 # ��� �������. ���������� ����������� ������ ������������ ���������� �������
6 # ��������� � �����.
7 # ��� ���� warn � die � ������ runtime ������ �� email ��������� cron.
8 # �� ���� ����� ����� ������������ print ��� ���� ����������� ���������
9 # � warn � die ��� ���������, ��������� ������������� � �����������.
10
11 package ErrorTee;
12
13 use strict;
14 use warnings 'all';
15
16
17 # buffering off!
18 select((select(STDERR), $|=1)[0]);
19 select((select(STDOUT), $|=1)[0]);
20
21 # is file-redirected?
22 if (-p STDOUT || -f STDOUT) {
23 $SIG{'__DIE__'} = sub {
24 print STDOUT $_[0] if defined($^S) && $^S==0;
25 };
26
27 $SIG{'__WARN__'} = sub {
28 print STDOUT $_[0] if defined($^S) && $^S==0;
29 warn $_[0];
30 };
31 }
32
33 1;