# TODO Tue Feb 26 09:35:41 2013 GMT
# $Id: TODO 148 2013-05-29 09:29:34Z minus $

# GENERAL

    * Приступить к реализации хелперов mpm !!

    * Файлы папки src/skel нужно заархивировать с помощью targz и полученный файл записать в 
      секцию __DATA__ файла MPMinus/Helepr/Skel.pm а сам Skel.pm должен содержать вызовы 
      инициализации структуры и проверки наличия того или иного файла SKEL в подструктуре 
      share Вашего сервера. Еще как вариант, модуль Skel.pm обращается к зеркалам где 
      находится скелетон но в этом случае замуты по поводу поддержки... скорее всего 
      рационален первый способ!

    * phpinfo - как прототип для mpminfo -- функции импортируемой MPMinus. Продумать как записать 
      все в одно корыто. Ведь там и картинки и CSS и, возможно, даже JS. Возможно нужно просто
      расширить модуль Kernel.mpm создав для него алиас /mpminfo а картинки получать 
      соответствующими подзапросами вида /mpminfo/?action=main.css и т.д. ПРИ ЭТОМ ВАЖНО
      Kernel.mpm сделать частью MPMinus! Модуль должен быть (попробовать это сделать) 
      наследоваться в модуль ::Handlers !!
   
# BUGS

    * none

# REFACTORING

    * Везде использовать croak вместо die, теперь это модуль !!

    * dir_* директивы должны строится с использованием функций модуля File::Spec (CTK::Util)

    * Список проектов в порядке их переработки:

         * share.mnshome.info -- за одно поправим код по части jquery плагинов, т.к. кнопень не везде работает
         * mnshome.info -- просто перевести на новый механизм
         * suffit.org -- просто перевести на новый механизм

    * Править все скелетоны !!

    * Делать так, чтобы сайты устанавливались как pays проект!

# DOCUMENTATION

    * none

# DIAGNOSTICS

    * Понаделать побольше тестов

# SUPPORT

    * none

FROM CPAN
=========

sub _gitify # Разархивирование
	{
	my $args = shift;

	my $loaded = eval "require Archive::Extract; 1;";
	croak "You need Archive::Extract to use features that gitify distributions\n"
		unless $loaded;

	my $starting_dir = cwd();

	foreach my $module ( @$args )
		{
		$logger->info( "Checking $module" );
		my $path = CPAN::Shell->expand( "Module", $module )->cpan_file;

		my $store_paths = _download( [ $module ] );
		$logger->debug( "gitify Store path is $store_paths->{$module}" );
		my $dirname = dirname( $store_paths->{$module} );

		my $ae = Archive::Extract->new( archive => $store_paths->{$module} );
		$ae->extract( to => $dirname );

		chdir $ae->extract_path;

		my $git = $ENV{GIT_COMMAND} || '/usr/local/bin/git';
		croak "Could not find $git"    unless -e $git;
		croak "$git is not executable" unless -x $git;

		# can we do this in Pure Perl?
		system( $git, 'init'    );
		system( $git, qw( add . ) );
		system( $git, qw( commit -a -m ), 'initial import' );
		}

	chdir $starting_dir;

	return HEY_IT_WORKED;
	}
