rebuild-wekan.sh 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #!/bin/bash
  2. echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally install en_US.UTF-8"
  3. echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly."
  4. echo " You can still use any other locale as your main locale."
  5. #Below script installs newest node 8.x for Debian/Ubuntu/Mint.
  6. function pause(){
  7. read -p "$*"
  8. }
  9. echo
  10. PS3='Please enter your choice: '
  11. options=("Install Wekan dependencies" "Build Wekan" "Run Meteor for dev on http://localhost:4000" "Run Meteor for dev on http://CURRENT-IP-ADDRESS:4000" "Run Meteor for dev on http://CUSTOM-IP-ADDRESS:PORT" "Quit")
  12. select opt in "${options[@]}"
  13. do
  14. case $opt in
  15. "Install Wekan dependencies")
  16. if [[ "$OSTYPE" == "linux-gnu" ]]; then
  17. echo "Linux";
  18. # Debian, Ubuntu, Mint
  19. sudo apt-get install -y build-essential gcc g++ make git curl wget p7zip-full zip unzip unp
  20. curl -fsSL https://deb.nodesource.com/setup_12.x | sudo -E bash -
  21. sudo apt-get install -y nodejs
  22. # npm nodejs
  23. #sudo npm -g install npm
  24. #curl -0 -L https://npmjs.org/install.sh | sudo sh
  25. #sudo chown -R $(id -u):$(id -g) $HOME/.npm
  26. #sudo npm -g install n
  27. #sudo n 12.22.6
  28. elif [[ "$OSTYPE" == "darwin"* ]]; then
  29. echo "macOS";
  30. pause '1) Install XCode 2) Install Node 12.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.'
  31. elif [[ "$OSTYPE" == "cygwin" ]]; then
  32. # POSIX compatibility layer and Linux environment emulation for Windows
  33. echo "TODO: Add Cygwin";
  34. exit;
  35. elif [[ "$OSTYPE" == "msys" ]]; then
  36. # Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
  37. echo "TODO: Add msys on Windows";
  38. exit;
  39. elif [[ "$OSTYPE" == "win32" ]]; then
  40. # I'm not sure this can happen.
  41. echo "TODO: Add Windows";
  42. exit;
  43. elif [[ "$OSTYPE" == "freebsd"* ]]; then
  44. echo "TODO: Add FreeBSD";
  45. exit;
  46. else
  47. echo "Unknown"
  48. echo ${OSTYPE}
  49. exit;
  50. fi
  51. ## Latest npm with Meteor 2.2
  52. sudo npm -g install npm
  53. sudo npm -g install node-gyp
  54. # Latest fibers for Meteor 2.2
  55. sudo mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp
  56. sudo npm -g install fibers
  57. # Install Meteor, if it's not yet installed
  58. sudo npm install -g meteor --unsafe-perm
  59. #curl https://install.meteor.com | bash
  60. #sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
  61. break
  62. ;;
  63. "Build Wekan")
  64. echo "Building Wekan."
  65. #if [[ "$OSTYPE" == "darwin"* ]]; then
  66. # echo "sed at macOS";
  67. # sed -i '' 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
  68. #else
  69. # echo "sed at ${OSTYPE}"
  70. # sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
  71. #fi
  72. #cd ..
  73. #sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
  74. rm -rf node_modules .meteor/local .build
  75. chmod u+w *.json
  76. meteor npm install
  77. meteor build .build --directory
  78. rm -rf .build/bundle/programs/web.browser.legacy
  79. pushd .build/bundle/programs/server
  80. rm -rf node_modules
  81. chmod u+w *.json
  82. meteor npm install
  83. # Cleanup
  84. popd
  85. find . -type d -name '*-garbage*' | xargs rm -rf
  86. find . -name '*phantom*' | xargs rm -rf
  87. find . -name '.*.swp' | xargs rm -f
  88. find . -name '*.swp' | xargs rm -f
  89. # Add fibers multi arch
  90. #cd .build/bundle/programs/server/node_modules/fibers/bin
  91. #curl https://releases.wekan.team/fibers-multi.7z -o fibers-multi.7z
  92. #7z x fibers-multi.7z
  93. #rm fibers-multi.7z
  94. #cd ../../../../../../..
  95. echo Done.
  96. break
  97. ;;
  98. "Run Meteor for dev on http://localhost:4000")
  99. WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://localhost:4000 meteor run --exclude-archs web.browser.legacy,web.cordova --port 4000
  100. break
  101. ;;
  102. "Run Meteor for dev on http://CURRENT-IP-ADDRESS:4000")
  103. IPADDRESS=$(ip a | grep 'noprefixroute' | grep 'inet ' | cut -d: -f2 | awk '{ print $2}' | cut -d '/' -f 1)
  104. echo "Your IP address is $IPADDRESS"
  105. WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://$IPADDRESS:4000 meteor run --exclude-archs web.browser.legacy,web.cordova --port 4000
  106. break
  107. ;;
  108. "Run Meteor for dev on http://CUSTOM-IP-ADDRESS:PORT")
  109. ip address
  110. echo "From above list, what is your IP address?"
  111. read IPADDRESS
  112. echo "On what port you would like to run Wekan?"
  113. read PORT
  114. echo "ROOT_URL=http://$IPADDRESS:$PORT"
  115. WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://$IPADDRESS:$PORT meteor run --exclude-archs web.browser.legacy,web.cordova --port $PORT
  116. break
  117. ;;
  118. "Quit")
  119. break
  120. ;;
  121. *) echo invalid option;;
  122. esac
  123. done