Revision 3 (by ahitrov@rambler.ru, 2010/03/24 15:19:32) The CORE
use strict;

# ���� �������� ������ ����������� ����������
# �� ��������� ������
sub activity {
	my $MAXIMUM_ACTIVITY = 10;
	my $TOPS = `uptime`;
	if ($TOPS =~ /load averages: ([\d\.]+), ([\d\.]+), ([\d\.]+)/)
	{
		my $CA = $2;
		$CA = $1 if ($CA < $1);
		if (($CA) > $MAXIMUM_ACTIVITY)
		{
			return 0;
		}
	}
	return 1;
}

# ���������� pid'� ��������
sub save_pid {
	my $FILE = shift;
	open F, ">".$FILE.".pid" || die "�� ���� ������� pid ���� ".$FILE.".pid \n";
	print F $$;
	close F || die "�� ���� ������� pid ���� ".$FILE.".pid \n";
}


# �������� ����������� ���������� ���������
# �� ��� ��� ������
sub check_pid {
	my $FILE = shift || __FILE__;
	if (-s $FILE.".pid") {
		open F, "<".$FILE.".pid" || die "�� ���� ������� pid ���� ".$FILE.".pid \n";
		my $pid = (<F>)[0];
		chomp $pid;
		close F || die "�� ���� ������� pid ���� ".$FILE.".pid \n";
		if (kill 0 => $pid) {
			warn "��������� ��� �������� -> �����\n";
			exit;
		} else {
			&save_pid($FILE);
		}
	} else {
		&save_pid($FILE);
	}
}

1;

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

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

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

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

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