contrib/vim

Maxim Dounin mdounin на mdounin.ru
Вт Дек 26 18:27:25 UTC 2017


Hello!

On Mon, Dec 25, 2017 at 08:51:14PM +0200, Gena Makhomed wrote:

> On 11.10.2017 16:42, Maxim Dounin wrote:
> 
> >> В tar.gz дистрибутиве есть каталог contrib/vim - можно ли сделать так,
> >> чтобы содержимое этого каталога при установке пакета ложилось в каталог
> >> /usr/share/vim/vimfiles ? Это было бы очень удобно для пользователей vim
> >> - тогда vim будет автоматически похватывать эти конфигурационные файлы.
> 
> > Содержимое contrib/ ни коим образом не поддерживается
> > разработчиками, и ставить это в рамках пакетов, IMHO, было бы странно.
> 
> Странно, что не поддерживается, ведь файл contrib/vim/syntax/nginx.vim
> можно автоматически проверять на актуальность небольшим скриптом,
> который сканирует исходники nginx и показывает, какие директивы
> отсутствуют в файле nginx.vim, такой скрипт пишется за 15 минут.

Это, скажем так, не совсем соответствует действительности.  Потому 
что директивы стандартных модулей - не единственное содержимое 
contrib/vim/, и уж тем более contrib/.

Но даже если бы это было так - это не отменяет того факта, что 
содержимое contrib/ не поддерживается разработчиками.  Никто, 
впрочем, не мешает присылать нам патчи, мы их без проблем 
принимаем.

> Если ставить содержимое contrib/vim в /usr/share/vim/vimfiles/
> с помощью официального пакета из репозитория nginx нельзя,
> то каким тогда способом нам актуализировать конфиги vim?

Как по мне, наиболее правильным решением было бы добавить 
соответствующий syntax-файл в дистрибутив собственно vim'а, и там 
его периодически обновлять.

> Актуализировать contrib/vim на всех серверах вручную - это monkey job,
> мне пока что приходит в голову идея автоматизировать это через cron:
> 
> /etc/cron.daily/nginx-vim
> 
> #!/bin/bash
> 
> /usr/bin/curl --silent http://hg.nginx.org/nginx/archive/tip.tar.gz 
> --output /tmp/nginx.tar.gz
> /usr/bin/tar -C /tmp -xf /tmp/nginx.tar.gz
> for top in /tmp/nginx-* ; do /usr/bin/cp -r $top/contrib/vim/* 
> /usr/share/vim/vimfiles/ ; done
> /usr/bin/rm -rf /tmp/nginx-*
> /usr/bin/rm -f /tmp/nginx.tar.gz
> 
> Так нормально будет? Сайт http://hg.nginx.org/ выдержит нагрузку,
> если этот скрипт я пропишу в cron на примерно 50 своих серверах?

Качать ежедневно динамически генерируемый полный tar всех 
исходников для обновления четырёх файлов, которые меняются хорошо 
если пару раз в год - довольно странное решение.  Но если очень 
хочется делать именно так, а системы централизованного управления 
конфигурацией серверов за столько лет не построили - то тут мы, 
вероятно, в любом случае ничем помочь не сможем.

-- 
Maxim Dounin
http://mdounin.ru/


Подробная информация о списке рассылки nginx-ru