#!/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" cp $file $file_path/ 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 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 rspec:sheerun/rspec.vim ruby:vim-ruby/vim-ruby 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 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