run 1.4 KB

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