run 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. [ -z "$TMPDIR" ] && export TMPDIR=/tmp/
  49. init
  50. if [ "$1" = '!' ]; then
  51. /usr/local/bin/vim -Nu /tmp/mini-vimrc -c 'Vader! workflow.vader' > /dev/null &&
  52. init &&
  53. /usr/local/bin/vim -Nu /tmp/mini-vimrc -c 'let g:plug_threads = 1 | Vader! workflow.vader' > /dev/null
  54. else
  55. /usr/local/bin/vim -Nu /tmp/mini-vimrc -c 'Vader workflow.vader'
  56. fi