ppm_maker - делает дистрибутивы в формате PPM


NAME

ppm_maker - делает дистрибутивы в формате PPM


SYNOPSIS

    perl ppm_maker


DESCRIPTION

Это скрипт для формирования дистрибутивов в формате PPM.


OPTIONS

--convert
--noconvert

--convert включает конвертирование pod документации из CP 866 -> CP 1251. --noconvert, соответственно, выключает. Если ключ не указан, то решение о необходимости конвертации принимается на основе частотного анализа текста.


DETAILS

Что конкретно он делает?

    Составляет имя файла дистрибутива из имени модуля и номера версии
    Проверяет заполнение ppd - VERSION
    Проверяет заполнение ppd - CODEBASE (если пустой - заполняет)
    Конвертирует POD документацию в HTML, если она в CP866 - переводит в 1251
    При установке модуля документация будет автоматически включена в индекс
    Для XS модулей - удаляет из blib файлы lib,exp,bs, которые не нужны в дистрибутиве
    Пакует дистрибутив tar,gz
    Формирует bat-файлы install.bat/uninstall.bat для установки модуля и readme
    Пакует все вместе zip-ом.


TUTORIAL

Допустим, я решил написать модуль MyModule. Начинаем, естественно, с h2xs:

    h2xs -Xn MyModule

Далее редактируем Makefile.PL. h2xs сделал его таким:

    use ExtUtils::MakeMaker;
    # See lib/ExtUtils/MakeMaker.pm for details of how to influence
    # the contents of the Makefile that is written.
    WriteMakefile(
        'NAME'      => 'MyModule',
        'VERSION_FROM'  => 'MyModule.pm', # finds $VERSION
        'PREREQ_PM'     => {}, # e.g., Module::Name => 1.1
        ($] >= 5.005 ?    ## Add these new keywords supported since 5.005
        (ABSTRACT_FROM => 'MyModule.pm', # retrieve abstract from module
        AUTHOR     => 'A. U. Thor <a.u.thor@a.galaxy.far.far.away>') : ()),
    );

Изменяем AUTHOR:

    AUTHOR     => 'Ilya Chelpanov (chelpanov@mail.ru)'

Далее, ABSTRACT. Если POD документация будет на русском, нужно изменить ABSTRACT_FROM на:

    ABSTRACT => 'Perl extension for bla bla bla'

В противном случае можно оставить как есть. Это связанно с тем, что PPM не берет русский в PPD. Получилось:

    use ExtUtils::MakeMaker;
    # See lib/ExtUtils/MakeMaker.pm for details of how to influence
    # the contents of the Makefile that is written.
    WriteMakefile(
        'NAME'      => 'MyModule',
        'VERSION_FROM'  => 'MyModule.pm', # finds $VERSION
        'PREREQ_PM'     => {}, # e.g., Module::Name => 1.1
        ($] >= 5.005 ?    ## Add these new keywords supported since 5.005
        (ABSTRACT => 'Perl extension for bla bla bla', # retrieve abstract from module
        AUTHOR     => 'Ilya Chelpanov (chelpanov@mail.ru)') : ()),
    );

Все готово, делаем:

    Perl Makefile.pl

Далее пишем модуль, отлаживаем, тестируем. Пишем документацию. Когда все готово, делаем:

    nmake ppd
    perl ppm_maker.pl

И получаем MyModule-0.01.zip - дистрибутив в формате PPM!

Жизнь продолжается, написали новую версию - 0.02. В MyModule.pm меняем строчку:

    our $VERSION = '0.02';

Делаем:

    perl Makefile.pl
    nmake
    nmake ppd
    perl ppm_maker.pl

И получаем MyModule-0.02.zip - дистрибутив в формате PPM!


INSTALL

Кроме стандартных, программа использует модули:

    Pod::WinHtml;
    cyrillic

Для упаковки дистрибутива необходимы утилиты tar, gzip, zip.


BUGS

PPD файлы с несколькими элементами IMPLEMENTATION могут быть обработаны некорректно.


HISTORY

V1.05

Исправлена ошибка (установка режима binmode для выходного файла) в ф-ии перекодировки dos->win.


AUTHOR

Copyright (C) Ilya Chelpanov <chelpanov@mail.ru>, 2002

Это программа - свободное ПО. Вы можете использовать, распространять и модифицировать ее на тех же условиях, что и сам Perl.


SEE ALSO

    h2xs
    ExtUtils::*
    PPM
    http://jenda.krynicky.cz/perl/PPM.html

 

   ppm_maker - делает дистрибутивы в формате PPM