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/).
Есть ли более элегантные способы сделать это?
Ответы
Ответ 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-страниц.