Guest User

Untitled

a guest
May 24th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #
  4. # Author: SuperPaintman <SuperPaintmanDeveloper@gmail.com>
  5. #
  6.  
  7. ###
  8. # Constants
  9. ###
  10. RETVAL=0
  11.  
  12. CCYAN="\033[0;36m"
  13. CGREEN="\033[0;32m"
  14. CBLUE="\033[0;34m"
  15. CGRAY="\033[1;30m"
  16. CNC="\033[0m"
  17.  
  18. MODULES_DIR="node_modules"
  19.  
  20. ###
  21. # Packages
  22. ###
  23. node_script_dependencies=$(cat <<EOF
  24. 'use strict';
  25. var p = require('./package.json');
  26.  
  27. var deps = [];
  28. for (var packageName in p.dependencies) {
  29. var packageV = p.dependencies[packageName];
  30. deps.push(packageName + '@' + packageV);
  31. }
  32.  
  33. console.log(deps.join(';'));
  34. EOF
  35. )
  36.  
  37. node_script_devDependencies=$(cat <<EOF
  38. 'use strict';
  39. var p = require('./package.json');
  40.  
  41. var deps = [];
  42. for (var packageName in p.devDependencies) {
  43. var packageV = p.devDependencies[packageName];
  44. deps.push(packageName + '@' + packageV);
  45. }
  46.  
  47. console.log(deps.join(';'));
  48. EOF
  49. )
  50.  
  51. # npm install --only=production
  52. node_dependencies_str=$(node -e "$node_script_dependencies")
  53. # npm install --only=dev
  54. node_devDependencies_str=$(node -e "$node_script_devDependencies")
  55.  
  56.  
  57. ###
  58. # LazyInstall
  59. #
  60. # params:
  61. # $1 {String} - array of packages joined with ";"
  62. ###
  63. npm_f3_install () {
  64. dependencies=$1
  65.  
  66. array=(${dependencies//;/ })
  67. for element in "${array[@]}"
  68. do
  69. echo -e " ${CBLUE}Package${CNC}: $element"
  70. npm install --verbose "$element"
  71. done
  72. }
  73.  
  74. case "$1" in
  75. production)
  76. echo -e "${CCYAN}Start installing production dependencie${CNC}"
  77. npm install --only=production || npm_f3_install ${node_dependencies_str}
  78. ;;
  79. development)
  80. echo -e "${CCYAN}Start installing development dependencie${CNC}"
  81. npm install --only=dev || npm_f3_install ${node_devDependencies_str}
  82. ;;
  83. all|"")
  84. echo -e "${CCYAN}Start installing all dependencie${CNC}"
  85. # production
  86. npm install --only=production || npm_f3_install ${node_dependencies_str}
  87.  
  88. # development
  89. npm install --only=dev || npm_f3_install ${node_devDependencies_str}
  90. ;;
  91. *)
  92. echo -e "${CCYAN}Usage${CNC}: $0 {development|production|all} (or null)"
  93. echo -e "${CCYAN}Example${CNC}:"
  94. echo -e " ${CGREEN}$0${CNC} production ${CGRAY}# install npm production dependencies${CNC}"
  95. echo -e " ${CGREEN}$0${CNC} development ${CGRAY}# install npm development dependencies${CNC}"
  96. echo -e " ${CGREEN}$0${CNC} all ${CGRAY}# install npm all dependencies${CNC}"
  97. echo -e " ${CGREEN}$0${CNC} ${CGRAY}# install npm all dependencies${CNC}"
  98. exit 1
  99. ;;
  100. esac
  101.  
  102. exit $RETVAL
Add Comment
Please, Sign In to add comment