Подтвердить что ты не робот

Python: установка man-страниц в проекте на основе distutils

У меня есть проект Python, который представляет собой набор сценариев командной строки и вспомогательный пакет. Поскольку в этих сценариях есть несколько параметров командной строки, я решил создать страницу руководства для каждого script и использовать ronn (http://rtomayko.github.com/ronn/) для напишите руководства в Markdown и сгенерируйте mdoc из него.

Вопрос: как создавать и устанавливать man-страницы в проекте на основе distutils?

Я придумал следующее решение: создайте простой install.sh script, который создает и устанавливает страницы руководства. Я вызываю этот script из перегруженной команды "install" и передаю ему указанный префикс... вы можете проверить фактический код здесь: http://github.com/novel/lc-tools.

Мне не нравится это решение, так как для простой задачи я должен добавить некоторые хаки для setup.py и реализовать оболочку script. Более того, я использую ${PREFIX}/share/man для пути к странице man, и он не подходит для всех систем, например. FreeBSD, похоже, устанавливает сторонние man-страницы в /usr/local/man (т.е. Нет share/).

Есть ли более элегантные способы сделать это?

4b9b3361

Ответ 1

Ваш маленький взлом в вашем setup.py делает трюк. В дополнение вы можете добавить специальные опции man_prefix, которые могут быть переданы во время установки, чтобы изменить путь к человеку.

Вы можете сделать это вот так:

class lc_install(install):
    description = "Custom Install Process"

    user_options= install.user_options[:]
    user_options.extend([('manprefix=', None, 'MAN Prefix Path')])

def initialize_options(self):
    self.manprefix = None
    install.initialize_options(self)
def finalize_options(self):
    if self.manprefix is None :
        self.manprefix = "DEFAULT MAN PREFIX PATH IF THE OPTION IS NOT SET"
    install.finalize_options(self)

def run(self):
    .... # Your run method

Ответ 2

distutils не поддерживает man-страницы. Люди написали расширения, чтобы поддержать их, как правило, в форме пользовательской команды distutils. См. Например, python-distutils-extra от Ubuntu.

distutils2 будет поддерживать установку man-страниц.