Revision 3 (by ahitrov@rambler.ru, 2010/03/24 15:19:32) The CORE
# ������������ ��� ������� �������� �� crontab
# � ����: /some/script > /some/log
# ���� STDOUT ������������ � ����, �� STDERR ����������� � STDOUT.
# ����� �������, ��� ������ � STDOUT � STDERR ������ �������� � log
# ��� �������. ���������� ����������� ������ ������������ ���������� �������
# ��������� � �����.
# ��� ���� warn � die � ������ runtime ������ �� email ��������� cron.
# �� ���� ����� ����� ������������ print ��� ���� ����������� ���������
# � warn � die ��� ���������, ��������� ������������� � �����������.

package ErrorTee;

use strict;
use warnings 'all';


# buffering off!
select((select(STDERR), $|=1)[0]);
select((select(STDOUT), $|=1)[0]);

# is file-redirected?
if (-p STDOUT || -f STDOUT) {
	$SIG{'__DIE__'} = sub {
		print STDOUT $_[0] if defined($^S) && $^S==0;
	};

	$SIG{'__WARN__'} = sub {
		print STDOUT $_[0] if defined($^S) && $^S==0;
		warn $_[0];
	};
}

1;

Небольшая справка по веткам

cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.

koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.

utf8 – актуальная ветка, заточенная под UTF-8.

Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.