run 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/bin/bash
  2. cd $(dirname $BASH_SOURCE)
  3. cd ..
  4. PLUG_SRC=$(pwd)/plug.vim
  5. cd - > /dev/null
  6. export PLUG_FIXTURES=$(pwd)/fixtures
  7. if [ ! -d vader.vim ]; then
  8. git clone https://github.com/junegunn/vader.vim.git
  9. fi
  10. rm -rf $PLUG_FIXTURES/fzf
  11. if [ ! -d fzf-staged ]; then
  12. git clone https://github.com/junegunn/fzf.git $PLUG_FIXTURES/fzf-staged
  13. fi
  14. make_dirs() {
  15. mkdir -p "$PLUG_FIXTURES/$1"
  16. cd "$PLUG_FIXTURES/$1"
  17. mkdir -p autoload colors ftdetect ftplugin indent plugin syntax
  18. for d in *; do
  19. [ -d $d ] || continue
  20. cat > $d/xxx.vim << EOF
  21. " echom expand('<sfile>')
  22. let g:total_order = get(g:, 'total_order', [])
  23. let g:$2 = get(g:, '$2', [])
  24. let s:name = join(filter(['$2', '${1:4}', '$d'], '!empty(v:val)'), '/')
  25. call add(g:$2, s:name)
  26. call add(g:total_order, s:name)
  27. EOF
  28. done
  29. cd - > /dev/null
  30. }
  31. init() {
  32. rm -rf $PLUG_FIXTURES/{xxx,yyy,z1,z2}
  33. make_dirs xxx/ xxx
  34. make_dirs xxx/after xxx
  35. mkdir -p $PLUG_FIXTURES/xxx/doc
  36. cat > $PLUG_FIXTURES/xxx/doc/xxx.txt << DOC
  37. hello *xxx*
  38. DOC
  39. make_dirs yyy/ yyy
  40. make_dirs yyy/after yyy
  41. make_dirs z1/ z1
  42. make_dirs z2/ z2
  43. }
  44. cat > /tmp/mini-vimrc << VIMRC
  45. set rtp+=vader.vim
  46. set shell=/bin/bash
  47. source $PLUG_SRC
  48. VIMRC
  49. [ -z "$TMPDIR" ] && export TMPDIR=/tmp/
  50. init
  51. if [ "$1" = '!' ]; then
  52. /usr/local/bin/vim -Nu /tmp/mini-vimrc -c 'Vader! workflow.vader' > /dev/null &&
  53. init &&
  54. /usr/local/bin/vim -Nu /tmp/mini-vimrc -c 'let g:plug_threads = 1 | Vader! workflow.vader' > /dev/null
  55. else
  56. /usr/local/bin/vim -Nu /tmp/mini-vimrc -c 'Vader workflow.vader'
  57. fi