Revision 469 (by ahitrov, 2014/12/24 13:57:26) |
Moving Contenido to Apache 2
|
#!/usr/bin/perl
use strict;
my ($module, $version) = @ARGV;
$module =~ s/-/::/g;
my $installed;
unless ($module && $version) {
print "export PERL_CHECKED=cancel";
exit;
}
eval "require $module;";
if ($@) {
print "export PERL_CHECKED=install";
exit;
}
my @parts = split /\./, $module->VERSION();
$installed->{version} = join(".", $parts[0], join("", @parts[1 .. $#parts]) || ());
(my $path=$module) =~ s/::/\//g;
$installed->{path} = $INC{$path.".pm"};
if ($installed->{version} >= $version) {
unless ($ENV{DRY_RUN}||'' eq 'yes') {
print STDERR "##############################################################################\n";
print STDERR "# Found installed module: $module\n";
print STDERR "# Version: $installed->{version}\n";
print STDERR "# Location: $installed->{path}\n";
print STDERR "#\n";
print STDERR "# Skipped version: $version\n";
print STDERR "##############################################################################\n";
sleep 2;
}
print "export PERL_CHECKED=skip";
exit;
}
print STDERR "##############################################################################\n";
print STDERR "# Found installed module: $module\n";
print STDERR "# Version: $installed->{version}\n";
print STDERR "# Location: $installed->{path}\n";
print STDERR "#\n";
print STDERR "# Would you like continue to install version: $version ?\n";
print STDERR "##############################################################################\n";
my $a;
while (1) {
print STDERR "[I]nstall, [S]kip, [C]ancel ? ";
$a = lc(scalar(<STDIN>));
chomp $a;
last if $a eq 'i' || $a eq 's' || $a eq 'c';
}
print "export PERL_CHECKED=install" if $a eq 'i';
print "export PERL_CHECKED=skip" if $a eq 's';
print "export PERL_CHECKED=cancel" if $a eq 'c';
Небольшая справка по веткам
cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8 – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.