Revision 760 (by ahitrov, 2019/01/22 15:11:09) |
shebang
|
#!/usr/bin/env perl
##############################################################################
# $HeadURL: svn://cvs1.rambler.ru/cndinst/trunk/skel/GNUmakefile $
# $Id: GNUmakefile 47 2006-06-08 08:45:46Z lonerr $
###############################################################################
use strict;
use warnings "all";
use FindBin;
BEGIN { require "$FindBin::RealBin/../lib/Modules.pm" }
use locale;
use PidFile;
use Data::Dumper;
use Contenido::Globals;
use Contenido::Init;
use Contenido::File;
use Contenido::File::Scheme::FILE;
use Contenido::File::Scheme::HTTP;
# begin
Contenido::Init->init();
PidFile::start($state->{run_dir}, verbose => 1);
my $keeper = Contenido::Keeper->new($state);
my %files;
foreach my $class (map { @{$state->{"available_".$_}} } qw(documents links sections)) {
if (my $sub = $class->can("extra_properties")) {
my @extras = grep { lc($_->{"type"}) eq "image" or lc($_->{"type"}) eq "images" } $sub->();
my @objects = $keeper->get_documents( class => $class, no_limit => 1 );
foreach my $object (@objects) {
foreach my $extra (@extras) {
my $image = $object->get_image($extra->{"attr"});
if ($image) {
if ($extra->{"type"} eq "images") {
foreach (values %$image) {
next unless ref $_;
if ($_->{"filename"}) {
$files{$_->{"filename"}}++;
}
if ($_->{"mini"}{"filename"}) {
$files{$_->{"mini"}{"filename"}}++;
}
}
} else {
if ($image->{"filename"}) {
$files{$image->{"filename"}}++;
}
if ($image->{"mini"}{"filename"}) {
$files{$image->{"mini"}{"filename"}}++;
}
}
}
}
}
}
}
foreach my $dir (@{$state->{"files_dir"}}) {
no strict "refs";
my $files = &{"Contenido::File::Scheme::".uc(Contenido::File::scheme($dir))."::listing"}($dir);
foreach my $file (keys %$files) {
unless (exists $files{$file}) {
&{"Contenido::File::Scheme::".uc(Contenido::File::scheme($dir))."::remove"}($dir."/".$file);
}
}
}
Небольшая справка по веткам
cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8 – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.