vcmiinstall.sh 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/bin/bash
  2. function errorcheck(){
  3. if [ "$?" -gt 0 ]; then
  4. echo "Error during $1"
  5. exit
  6. else
  7. echo "$1 successful"
  8. fi
  9. }
  10. function incusage(){
  11. echo "Incorrect usage; use --help for more info."
  12. exit
  13. }
  14. if [ "$1" = "reconf" ]; then
  15. cd vcmi
  16. autoreconf -i
  17. cd ..
  18. vcmi/configure --datadir=`pwd` --bindir=`pwd`vcmi --libdir=`pwd`
  19. exit
  20. fi
  21. if [ "$1" == "--install" ]; then
  22. if [ $# -lt 2 ]; then
  23. incusage
  24. fi
  25. if [ "$2" == "micro" ]; then
  26. unzip vcmipack.zip -d YourAI
  27. MAINVCMI_ROOT="/home/mateusz/vcmi_retl"
  28. ln -s "$MAINVCMI_ROOT/odpalarka"
  29. exit
  30. fi
  31. #only lean and full modes
  32. svn co https://vcmi.svn.sourceforge.net/svnroot/vcmi/branches/programmingChallenge/ vcmi
  33. errorcheck "fetching sources"
  34. cd vcmi
  35. if [ "$2" = "lean" ]; then
  36. mv "Makefile without client.am" Makefile.am
  37. mv "configure without client.ac" configure.ac
  38. rm client/Makefile.am
  39. echo "SUBDIRS = StupidAI" > AI/Makefile.am
  40. rm -rf AI/EmptyAI
  41. rm -rf AI/GeniusAI
  42. #find . -name ".svn" -exec rm -rf {} \;
  43. elif [ "$2" = "full" ]; then
  44. mv "Makefile with client.am" Makefile.am
  45. mv "configure with client.ac" configure.ac
  46. else
  47. incusage
  48. fi
  49. autoreconf -f
  50. errorcheck "autoreconf -f"
  51. cd ..
  52. vcmi/configure --datadir=`pwd` --bindir=`pwd`vcmi --libdir=`pwd`
  53. errorcheck "configure"
  54. make
  55. errorcheck "make"
  56. unzip vcmi/vcmipack.zip -d vcmi
  57. errorcheck "pack unzip"
  58. ln -s "vcmi/b1.json"
  59. errorcheck "b1.json symlink"
  60. ln -s ../../AI/StupidAI/.libs/libStupidAI.so -t vcmi/AI
  61. errorcheck "StupidAI symlink"
  62. ln -s "Odpalarka/odpalarka"
  63. errorcheck "Odpalarka symlink"
  64. ln -s "VCMI_BattleAiHost/vcmirunner"
  65. errorcheck "runner symlink"
  66. ln -s "server/vcmiserver"
  67. errorcheck "server symlink"
  68. elif [ "$1" = "--clean" ]; then
  69. find . -name "*" -exec bash -c "if [[ {} != './vcmiinstall.sh' ]] && [[ {} != './vcmipack.zip' ]] && [[ {} != '.' ]] && [[ {} != '..' ]]; then rm -rf {} ; fi" \;
  70. elif [ "$1" = "--help" ]; then
  71. echo "VCMI programming challenge installation script"
  72. echo
  73. echo "Available commands: "
  74. echo "--clean removes all created files except this script."
  75. echo "--help displays this info."
  76. echo "--install full downloads and compiles full VCMI with graphical client; requires ffmpeg."
  77. echo "--install lean downloads and compiles most of VCMI (without graphical client)."
  78. echo "--install micro unpacks vcmipack.zip and makes appropriate symbolic links."
  79. else
  80. incusage
  81. fi