mirror of
https://github.com/junegunn/vim-plug.git
synced 2024-12-23 20:45:31 -07:00
a61d097037
Now `:PlugInstall!` and `:PlugUpdate!` forces to update submodules. `:PlugInstall!` now also checks out to new specified branch, tag, or commit. Also added tests for changing branch, tag, or commit.
117 lines
2.7 KiB
Bash
Executable File
117 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
cd $(dirname "${BASH_SOURCE[0]}")
|
|
|
|
export BASE="$PWD"
|
|
export PLUG_SRC="$PWD/../plug.vim"
|
|
export PLUG_FIXTURES="$PWD/fixtures"
|
|
mkdir -p "$PLUG_FIXTURES"
|
|
|
|
cat > /tmp/mini-vimrc << VIMRC
|
|
set rtp+=/tmp/junegunn/vader.vim
|
|
set shell=/bin/bash
|
|
VIMRC
|
|
|
|
clone() {
|
|
if [ ! -d $2 ]; then
|
|
git clone $1 $2
|
|
fi
|
|
}
|
|
|
|
clone_repos() (
|
|
cd /tmp
|
|
mkdir -p junegunn vim-scripts jg
|
|
for repo in vader.vim goyo.vim rust.vim seoul256.vim vim-easy-align vim-fnr \
|
|
vim-oblique vim-pseudocl vim-redis vim-emoji; do
|
|
clone https://github.com/junegunn/${repo}.git junegunn/$repo &
|
|
done
|
|
clone https://github.com/vim-scripts/beauty256.git vim-scripts/beauty256 &
|
|
clone https://github.com/junegunn/fzf.git fzf &
|
|
clone https://github.com/yous/subsubmodule.git yous/subsubmodule && \
|
|
(cd yous/subsubmodule && git submodule update --init --recursive &) &
|
|
wait
|
|
|
|
clone junegunn/vim-emoji jg/vim-emoji
|
|
cd junegunn/seoul256.vim && git checkout no-t_co && git checkout master
|
|
)
|
|
|
|
make_dirs() (
|
|
rm -rf "$PLUG_FIXTURES/$1"
|
|
mkdir -p "$PLUG_FIXTURES/$1"
|
|
cd "$PLUG_FIXTURES/$1"
|
|
mkdir -p autoload colors ftdetect ftplugin indent plugin syntax
|
|
for d in *; do
|
|
[ -d $d ] || continue
|
|
cat > $d/xxx.vim << EOF
|
|
" echom expand('<sfile>')
|
|
let g:total_order = get(g:, 'total_order', [])
|
|
let g:$2 = get(g:, '$2', [])
|
|
let s:name = join(filter(['$2', '${1:4}', '$d'], '!empty(v:val)'), '/')
|
|
call add(g:$2, s:name)
|
|
call add(g:total_order, s:name)
|
|
EOF
|
|
done
|
|
)
|
|
|
|
gitinit() (
|
|
cd "$PLUG_FIXTURES/$1"
|
|
git init
|
|
git commit -m 'commit' --allow-empty
|
|
)
|
|
|
|
prepare() {
|
|
make_dirs xxx/ xxx
|
|
make_dirs xxx/after xxx
|
|
mkdir -p "$PLUG_FIXTURES/xxx/doc"
|
|
cat > "$PLUG_FIXTURES/xxx/doc/xxx.txt" << DOC
|
|
hello *xxx*
|
|
DOC
|
|
gitinit xxx
|
|
|
|
make_dirs yyy/ yyy
|
|
make_dirs yyy/after yyy
|
|
gitinit yyy
|
|
|
|
make_dirs z1/ z1
|
|
make_dirs z2/ z2
|
|
|
|
rm -rf "$PLUG_FIXTURES/ftplugin-msg"
|
|
mkdir -p "$PLUG_FIXTURES/ftplugin-msg/ftplugin"
|
|
echo "echomsg 'ftplugin'" > "$PLUG_FIXTURES/ftplugin-msg/ftplugin/c.vim"
|
|
|
|
rm -rf /tmp/new-branch
|
|
cd /tmp
|
|
git init new-branch
|
|
cd new-branch
|
|
mkdir plugin
|
|
echo 'let g:foo = 1' > plugin/foo.vim
|
|
git add plugin/foo.vim
|
|
git commit -m initial
|
|
|
|
cd "$BASE"
|
|
}
|
|
|
|
select_vim() {
|
|
local vim=/usr/bin/vim
|
|
if [ -n "$DEPS" ] && [ -e "${DEPS}/bin/vim" ]; then
|
|
vim="${DEPS}/bin/vim"
|
|
elif [ -e "/usr/local/bin/vim" ]; then
|
|
vim=/usr/local/bin/vim
|
|
fi
|
|
echo $vim
|
|
}
|
|
|
|
clone_repos
|
|
prepare
|
|
|
|
VIM=$(select_vim)
|
|
echo "Selected Vim: $VIM"
|
|
if [ "$1" = '!' ]; then
|
|
$VIM -Nu /tmp/mini-vimrc -c 'Vader! test.vader' > /dev/null &&
|
|
prepare &&
|
|
$VIM -Nu /tmp/mini-vimrc -c 'let g:plug_threads = 1 | Vader! test.vader' > /dev/null
|
|
else
|
|
$VIM -Nu /tmp/mini-vimrc -c 'Vader test.vader'
|
|
fi
|
|
|