Advertisement
Guest User

Untitled

a guest
Sep 2nd, 2015
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #!/bin/bash
  2. ROOT=$HOME/dev/dl
  3. OWN=(adp bus console dl-core ezekiel functoids reporter rhook router web etl rey)
  4.  
  5. function makeLink(){
  6. echo -e "\t[$1]\t$2 <=> node_modules/$2"
  7. mkdir -p "$ROOT/$1/node_modules"
  8. SRC="$ROOT/$1/node_modules/$2"
  9. DST="$ROOT/$2"
  10. rm -fr $SRC > /dev/null 2>&1
  11. ln -s $DST $SRC > /dev/null 2>&1
  12. }
  13.  
  14.  
  15. function updateOwn() {
  16. echo -en "Updating...\n"
  17. for i in ${OWN[@]}
  18. do
  19. project="${i}"
  20. echo -en "\t$project...\n\t\t"
  21. pushd "$ROOT/$project" > /dev/null 2>&1
  22. /usr/bin/git pl
  23. popd > /dev/null 2>&1
  24. done
  25. echo -en "Done.\n\n"
  26. }
  27.  
  28.  
  29. function linkOwn(){
  30. echo -en "Symlinking...\n"
  31. for i in ${OWN[@]}
  32. do
  33. project="${i}"
  34. package="$ROOT/$project/package.json"
  35. for j in ${OWN[@]}
  36. do
  37. dep="${j}"
  38. if [ "$dep" != "$project" -a "$dep" != "web" ]
  39. then
  40. if grep -q "$dep" $package
  41. then
  42. makeLink $project $dep
  43. fi
  44. fi
  45. done
  46. echo -en "\n"
  47. done
  48. echo -en "Done.\n\n"
  49. }
  50.  
  51. function clean() {
  52. echo -en "Cleaning...\n"
  53. for project in `find $ROOT -maxdepth 2 -type d -name node_modules`
  54. do
  55. echo -en "\t$project...\n"
  56. rm -fr $project
  57. done
  58. echo -en "Done.\n\n"
  59. }
  60.  
  61. function npm(){
  62. echo -en "Installing...\n"
  63. for package in `find $ROOT -maxdepth 2 -type f -name package.json`
  64. do
  65. project=`dirname $package`
  66. echo -en "\t$project...\n"
  67. pushd $project > /dev/null 2>&1
  68. /usr/local/bin/npm install
  69. popd > /dev/null 2>&1
  70. echo -en "\t\t...done.\n"
  71. done
  72. echo -en "Done.\n\n"
  73. }
  74.  
  75. CLEAN=0
  76. INSTALL=0
  77. LINK=0
  78. UPDATE=0
  79.  
  80. options=':cuilQA'
  81.  
  82. while getopts $options opt; do
  83. case $opt in
  84. c ) CLEAN=1;;
  85.  
  86. u ) UPDATE=1;;
  87.  
  88. i ) INSTALL=1;;
  89.  
  90. l ) LINK=1;;
  91.  
  92. Q ) LINK=1
  93. UPDATE=1
  94. INSTALL=1;;
  95.  
  96. A ) CLEAN=1
  97. LINK=1
  98. UPDATE=1
  99. INSTALL=1;;
  100.  
  101. \? ) echo -en "Unknown option -$OPTARG\n"
  102. exit 1;;
  103. esac
  104. done
  105.  
  106. pushd $ROOT > /dev/null 2>&1
  107.  
  108. if [ $UPDATE -eq 1 ]; then
  109. updateOwn
  110. fi
  111.  
  112. if [ $CLEAN -eq 1 ]; then
  113. clean
  114. fi
  115.  
  116. if [ $LINK -eq 1 ]; then
  117. linkOwn
  118. fi
  119.  
  120. if [ $INSTALL -eq 1 ]; then
  121. npm
  122. fi
  123.  
  124.  
  125. popd > /dev/null 2>&1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement