Advertisement
Guest User

Untitled

a guest
Jul 4th, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. #!/bin/sh
  2. set -e
  3.  
  4. function usage () {
  5. echo "Usage: update-andromeda.sh [option]"
  6. echo " Update Andromeda to the latest available version (default)"
  7. echo " --dev Update the development version of Andromeda"
  8. }
  9.  
  10.  
  11. if [ "$1" = '--dev' ]; then
  12. f=upgrade_dev
  13. elif [ "$#" = 0 ]; then
  14. f=upgrade_query
  15. else
  16. usage
  17. exit 1
  18. fi
  19.  
  20. opam update
  21.  
  22. PINNED="$(opam pin list | grep andromeda || true)"
  23.  
  24. function upgrade_dev () {
  25. if [ "x$PINNED" = "x" ]; then
  26. DEV_VERSION="$(opam info andromeda | \
  27. sed -rn \
  28. '/available-versions/s/.*[[:space:]]([^[:space:]]+~dev).*/\1/p')"
  29. if ! [ "$DEV_VERSION" ]; then
  30. echo 'No development version of Andromeda available.'
  31. exit 1
  32. fi
  33. echo "Switching to development version $DEV_VERSION"
  34. opam pin -y -k version add andromeda "$DEV_VERSION"
  35. fi
  36. }
  37.  
  38. function upgrade_query () {
  39. if [ "$PINNED" ]; then
  40. RELEASE_AVAILABLE=$(opam upgrade --dry-run --verbose andromeda | \
  41. sed -nr 's/.*andromeda\.([^[:space:]]+) is not available.*/\1/p')
  42.  
  43. if ! [ "x$RELEASE_AVAILABLE" = "x" ]; then
  44. echo ""
  45. echo "You are currently following the development version."
  46. echo 'Run `update-andromeda.sh --dev'"'"' to skip this question.'
  47. echo "Andromeda version $RELEASE_AVAILABLE has been released."
  48. echo "Do you want to switch to the available release?"
  49. until echo "$ANSWER" | grep -q -x -e 'y' -e 'yes' -e 'n' -e 'no'; do
  50. echo -n "[y/n]: "
  51. read ANSWER
  52. done
  53. if echo "$ANSWER" | grep -q -x -e 'y' -e 'yes'; then
  54. opam pin remove andromeda
  55. fi
  56. fi
  57. fi
  58. }
  59.  
  60. $f
  61.  
  62. opam upgrade andromeda
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement