Newer
Older
dub_jkp / test / interactive-remove.sh
  1. #!/bin/bash
  2.  
  3. set -euo pipefail
  4.  
  5. $DUB fetch dub --version=0.9.20 && [ -d $HOME/.dub/packages/dub-0.9.20/dub ]
  6. $DUB fetch dub --version=0.9.21 && [ -d $HOME/.dub/packages/dub-0.9.21/dub ]
  7. if $DUB remove dub --non-interactive; then
  8. echo "Non-interactive remove should fail" 1>&2
  9. exit 1
  10. fi
  11. echo 1 | $DUB remove dub | tr --delete '\n' | grep --ignore-case 'select.*0\.9\.20.*0\.9\.21.*'
  12. if [ -d $HOME/.dub/packages/dub-0.9.20/dub ]; then
  13. echo "Failed to remove dub-0.9.20" 1>&2
  14. exit 1
  15. fi
  16. $DUB fetch dub --version=0.9.20 && [ -d $HOME/.dub/packages/dub-0.9.20/dub ]
  17. # EOF aborts remove
  18. echo -xn '' | $DUB remove dub
  19. if [ ! -d $HOME/.dub/packages/dub-0.9.20/dub ] || [ ! -d $HOME/.dub/packages/dub-0.9.21/dub ]; then
  20. echo "Aborted dub still removed a package" 1>&2
  21. exit 1
  22. fi
  23. # validates input
  24. echo -e 'abc\n4\n-1\n3' | $DUB remove dub
  25. if [ -d $HOME/.dub/packages/dub-0.9.20/dub ] || [ -d $HOME/.dub/packages/dub-0.9.21/dub ]; then
  26. echo "Failed to remove all version of dub" 1>&2
  27. exit 1
  28. fi
  29. $DUB fetch dub --version=0.9.20 && [ -d $HOME/.dub/packages/dub-0.9.20/dub ]
  30. $DUB fetch dub --version=0.9.21 && [ -d $HOME/.dub/packages/dub-0.9.21/dub ]
  31. # is non-interactive with --version=
  32. $DUB remove dub --version=\*
  33. if [ -d $HOME/.dub/packages/dub-0.9.20/dub ] || [ -d $HOME/.dub/packages/dub-0.9.21/dub ]; then
  34. echo 'Failed to non-interactively remove specified versions' 1>&2
  35. exit 1
  36. fi