vim-polyglot/build
2013-12-26 04:05:26 +01:00

128 lines
3.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -E
DIRS="syntax indent compiler autoload ftplugin ftdetect after/syntax after/indent after/ftplugin after/ftdetect"
download() {
for pack in $1; do
path="$(printf "$pack" | cut -d ':' -f 2)"
dir="tmp/$(printf "$path" | cut -d '/' -f 2)"
rm -rf "$dir"
(git clone -q --recursive "https://github.com/$path.git" "$dir" && printf '.') &
done
wait
}
extract() {
printf "\n"
for pack in $1; do
name="$(printf "$pack" | cut -d ':' -f 1)"
path="$(printf "$pack" | cut -d ':' -f 2)"
dir="tmp/$(printf "$path" | cut -d '/' -f 2)"
printf -- "- [$name](https://github.com/$path) ("
subdirs=""
for subdir in $DIRS; do
if [ -d "$dir/$subdir" ]; then
base="$(basename "$subdir")"
if [[ "$subdirs" != *"$base"* ]]; then
subdirs="$subdirs, $base"
fi
copy_dir "$dir" "$subdir"
fi
done
printf "${subdirs##, })\n"
done
for pack in $1; do
name="$(printf "$pack" | cut -d ':' -f 1)"
path="$(printf "$pack" | cut -d ':' -f 2)"
dir="tmp/$(printf "$path" | cut -d '/' -f 2)"
if [ -d "$dir/plugin" ]; then
printf "Possible error (plugin directory exists): $path\n"
fi
done
}
copy_dir() {
for file in $(find "$1/$2" -name '*.vim'); do
file_path="$(dirname "${file##$1/}")"
mkdir -p "$file_path"
touch $file_path/$file
cat $file >> $file_path/$(basename "$file")
done
}
concat_ftdetect() {
cat ftdetect/* | grep -E '^[^"]' > tmp/polyglot.vim
rm -f ftdetect/*
mv tmp/polyglot.vim ftdetect/
}
PACKS="
arduino:sudar/vim-arduino-syntax
c++11:octol/vim-cpp-enhanced-highlight
c/c++:vim-jp/cpp-vim
clojure:guns/vim-clojure-static
coffee-script:kchmck/vim-coffee-script
css-color:ap/vim-css-color
csv:chrisbra/csv.vim
cucumber:tpope/vim-cucumber
dockerfile:honza/dockerfile.vim
elixir:elixir-lang/vim-elixir
erlang:oscarh/vimerl
git:tpope/vim-git
go:jnwhiteh/vim-golang
haml:tpope/vim-haml
handlebars:nono/vim-handlebars
haskell:travitch/hasksyn
html5:othree/html5.vim
jade:digitaltoad/vim-jade
javascript:pangloss/vim-javascript
json:leshill/vim-json
jst:briancollins/vim-jst
latex:LaTeX-Box-Team/LaTeX-Box
less:groenewege/vim-less
markdown:tpope/vim-markdown
nginx:mutewinter/nginx.vim
ocaml:jrk/vim-ocaml
octave:vim-scripts/octave.vim--
perl:vim-perl/vim-perl
php:StanAngeloff/php.vim
puppet:ajf/puppet-vim
protobuf:uarun/vim-protobuf
python:vim-scripts/python.vim--Vasiliev
r-lang:vim-scripts/R.vim
rspec:sheerun/rspec.vim
ruby:vim-ruby/vim-ruby
rust:wting/rust.vim
sbt:derekwyatt/vim-sbt
scala:derekwyatt/vim-scala
slim:slim-template/vim-slim
stylus:wavded/vim-stylus
textile:timcharper/textile.vim
tmux:acustodioo/vim-tmux
tomdoc:duwanis/tomdoc.vim
typescript:leafgarland/typescript-vim
vbnet:vim-scripts/vbnet.vim
twig:beyondwords/vim-twig
xls:vim-scripts/XSLT-syntax
"
rm -rf tmp
rm -rf $DIRS
mkdir tmp
printf "Downloading packs..."
download "$PACKS"
extract "$PACKS"
concat_ftdetect
rm -rf tmp