run 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #!/bin/bash
  2. cd $(dirname "${BASH_SOURCE[0]}")
  3. export BASE="$PWD"
  4. export PLUG_SRC="$PWD/../plug.vim"
  5. export PLUG_FIXTURES="$PWD/fixtures"
  6. mkdir -p "$PLUG_FIXTURES"
  7. cat > /tmp/mini-vimrc << VIMRC
  8. set rtp+=/tmp/junegunn/vader.vim
  9. set shell=/bin/bash
  10. VIMRC
  11. clone() {
  12. if [ ! -d $2 ]; then
  13. git clone $1 $2
  14. fi
  15. }
  16. clone_repos() {
  17. cd /tmp
  18. mkdir -p junegunn vim-scripts jg
  19. for repo in vader.vim goyo.vim rust.vim seoul256.vim vim-easy-align vim-fnr \
  20. vim-oblique vim-pseudocl vim-redis vim-emoji; do
  21. clone https://github.com/junegunn/${repo}.git junegunn/$repo &
  22. done
  23. clone https://github.com/vim-scripts/beauty256.git vim-scripts/beauty256 &
  24. clone https://github.com/junegunn/fzf.git fzf &
  25. wait
  26. clone junegunn/vim-emoji jg/vim-emoji
  27. cd junegunn/seoul256.vim && git checkout no-t_co && git checkout master
  28. cd "$BASE"
  29. }
  30. make_dirs() {
  31. rm -rf "$PLUG_FIXTURES/$1"
  32. mkdir -p "$PLUG_FIXTURES/$1"
  33. cd "$PLUG_FIXTURES/$1"
  34. mkdir -p autoload colors ftdetect ftplugin indent plugin syntax
  35. for d in *; do
  36. [ -d $d ] || continue
  37. cat > $d/xxx.vim << EOF
  38. " echom expand('<sfile>')
  39. let g:total_order = get(g:, 'total_order', [])
  40. let g:$2 = get(g:, '$2', [])
  41. let s:name = join(filter(['$2', '${1:4}', '$d'], '!empty(v:val)'), '/')
  42. call add(g:$2, s:name)
  43. call add(g:total_order, s:name)
  44. EOF
  45. done
  46. cd "$BASE"
  47. }
  48. prepare() {
  49. make_dirs xxx/ xxx
  50. make_dirs xxx/after xxx
  51. mkdir -p "$PLUG_FIXTURES/xxx/doc"
  52. cat > "$PLUG_FIXTURES/xxx/doc/xxx.txt" << DOC
  53. hello *xxx*
  54. DOC
  55. make_dirs yyy/ yyy
  56. make_dirs yyy/after yyy
  57. make_dirs z1/ z1
  58. make_dirs z2/ z2
  59. rm -rf "$PLUG_FIXTURES/ftplugin-msg"
  60. mkdir -p "$PLUG_FIXTURES/ftplugin-msg/ftplugin"
  61. echo "echomsg 'ftplugin'" > "$PLUG_FIXTURES/ftplugin-msg/ftplugin/c.vim"
  62. rm -rf /tmp/new-branch
  63. cd /tmp
  64. git init new-branch
  65. cd new-branch
  66. mkdir plugin
  67. echo 'let g:foo = 1' > plugin/foo.vim
  68. git add plugin/foo.vim
  69. git commit -m initial
  70. cd "$BASE"
  71. }
  72. clone_repos
  73. prepare
  74. if [ "$1" = '!' ]; then
  75. /usr/local/bin/vim -Nu /tmp/mini-vimrc -c 'Vader! test.vader' > /dev/null &&
  76. prepare &&
  77. /usr/local/bin/vim -Nu /tmp/mini-vimrc -c 'let g:plug_threads = 1 | Vader! test.vader' > /dev/null
  78. else
  79. /usr/local/bin/vim -Nu /tmp/mini-vimrc -c 'Vader test.vader'
  80. fi