/install.sh

https://github.com/nrj123/pvb · Shell · 235 lines · 214 code · 18 blank · 3 comment · 26 complexity · 33134947d90fcc0176f2e35386304820 MD5 · raw file

  1. #!/bin/bash
  2. # detect real OS on different linux distries
  3. export PVB_OSTYPE="unknown"
  4. if [ "$OSTYPE" == "linux" ]; then
  5. export PVB_OSTYPE="linux"
  6. fi
  7. if [ "$OSTYPE" == "gnu-linux" ]; then
  8. export PVB_OSTYPE="linux"
  9. fi
  10. if [ "$OSTYPE" == "linux-gnu" ]; then
  11. export PVB_OSTYPE="linux"
  12. fi
  13. if [ "$PVB_OSTYPE" == "linux" ]; then
  14. echo testing if you have root privileges ...
  15. if [ $HOME != "/root" ]; then
  16. if [ $LOGNAME != "root" ]; then
  17. echo '##############################################'
  18. echo '# install pvbrowser with: #'
  19. echo '# sudo bash #'
  20. echo '# ./install.sh #'
  21. echo '# exit #'
  22. echo '##############################################'
  23. exit
  24. fi
  25. fi
  26. fi
  27. ./uninstall.sh
  28. echo 'installing new version of pvbrowser...'
  29. mkdir -p /srv/automation/shm
  30. mkdir -p /srv/automation/mbx
  31. mkdir -p /srv/automation/log
  32. chmod -R ugoa+rwx /srv/automation
  33. mkdir -p /opt/pvb
  34. mkdir -p /opt/pvb/doc
  35. mkdir -p /opt/pvb/pvsexample
  36. mkdir -p /opt/pvb/pvserver
  37. mkdir -p /opt/pvb/pvbrowser
  38. mkdir -p /opt/pvb/pvdevelop
  39. mkdir -p /opt/pvb/start_pvbapp
  40. mkdir -p /opt/pvb/designer/plugins
  41. mkdir -p /opt/pvb/rllib/lib
  42. mkdir -p /opt/pvb/rllib/rlsvg
  43. mkdir -p /opt/pvb/rllib/rlhistory
  44. mkdir -p /opt/pvb/language_bindings/lua/pvslua
  45. mkdir -p /opt/pvb/language_bindings/lua/pvapplua
  46. mkdir -p /opt/pvb/language_bindings/python/id
  47. mkdir -p /opt/pvb/language_bindings/python/mt
  48. mkdir -p /opt/pvb/language_bindings/python/template
  49. mkdir -p /opt/pvb/browserplugin
  50. echo 'copy documentation...'
  51. cp -r doc /opt/pvb/
  52. echo 'copy pvsexample...'
  53. cp -r pvsexample /opt/pvb/
  54. echo 'copy other files...'
  55. cp LICENSE.GPL /opt/pvb/
  56. cp logo1.png /opt/pvb/
  57. cp custom.bmp /opt/pvb/
  58. cp gamsleiten.png /opt/pvb/
  59. cp pvbrowser.desktop /opt/pvb/
  60. cp pvdevelop.desktop /opt/pvb/
  61. cp pvserver/wthread.h /opt/pvb/pvserver/
  62. cp pvserver/BMP.h /opt/pvb/pvserver/
  63. cp pvserver/vmsglext.h /opt/pvb/pvserver/
  64. cp pvserver/pvbImage.h /opt/pvb/pvserver/
  65. cp pvserver/vmsgl.h /opt/pvb/pvserver/
  66. cp pvserver/processviewserver.h /opt/pvb/pvserver/
  67. cp pvbrowser/pvbrowser /opt/pvb/pvbrowser/
  68. cp pvdevelop/pvdevelop /opt/pvb/pvdevelop/
  69. cp pvdevelop/pvdevelop.sh /opt/pvb/pvdevelop/
  70. cp start_pvbapp/start_pvbapp /opt/pvb/start_pvbapp/
  71. cp start_pvbapp/README.txt /opt/pvb/start_pvbapp/
  72. cp start_pvbapp/example.ini.linux /opt/pvb/start_pvbapp/example.ini
  73. cp start_pvbapp/start_if_not_already_running.sh /opt/pvb/start_pvbapp/
  74. cp rllib/rlsvg/rlsvgcat /opt/pvb/rllib/rlsvg/
  75. cp rllib/rlhistory/rlhistory /opt/pvb/rllib/rlhistory/
  76. cp rllib/lib/*.h /opt/pvb/rllib/lib/
  77. cp rllib/lib/nodave.o /opt/pvb/rllib/lib/
  78. cp rllib/lib/setport.o /opt/pvb/rllib/lib/
  79. cp language_bindings/lua/pvslua/pvslua /opt/pvb/language_bindings/lua/pvslua/
  80. cp language_bindings/lua/pvapplua/pvapplua /opt/pvb/language_bindings/lua/pvapplua/
  81. cp language_bindings/README_PYTHON.txt /opt/pvb/language_bindings/
  82. cp language_bindings/python/template/main.cpp /opt/pvb/language_bindings/python/template/
  83. cp language_bindings/python/template/Makefile /opt/pvb/language_bindings/python/template/
  84. cp language_bindings/python/template/mask1.cpp /opt/pvb/language_bindings/python/template/
  85. cp language_bindings/python/template/mask1.py /opt/pvb/language_bindings/python/template/
  86. cp language_bindings/python/template/mask1_slots.h /opt/pvb/language_bindings/python/template/
  87. cp language_bindings/python/template/pvapp.h /opt/pvb/language_bindings/python/template/
  88. cp language_bindings/python/template/pvs_init.py /opt/pvb/language_bindings/python/template/
  89. cp language_bindings/python/template/pvs.pro /opt/pvb/language_bindings/python/template/
  90. cp language_bindings/python/template/pvs.pvproject /opt/pvb/language_bindings/python/template/
  91. cp designer/README.txt /opt/pvb/designer/
  92. cp browserplugin/pvbrowserplugin-example.html /opt/pvb/browserplugin/
  93. cp browserplugin/README.txt /opt/pvb/browserplugin/
  94. if [ "$PVB_OSTYPE" == "linux" ]; then
  95. echo 'copy shared objects on linux...'
  96. cp browserplugin/libpvbrowser.so /opt/pvb/browserplugin/
  97. cp language_bindings/python/mt/pv.py /opt/pvb/language_bindings/python/mt/
  98. cp language_bindings/python/mt/_pv.so /opt/pvb/language_bindings/python/mt/
  99. cp language_bindings/python/mt/rllib.py /opt/pvb/language_bindings/python/mt/
  100. cp language_bindings/python/mt/_rllib.so /opt/pvb/language_bindings/python/mt/
  101. cp language_bindings/python/id/pv.py /opt/pvb/language_bindings/python/id/
  102. cp language_bindings/python/id/_pv.so /opt/pvb/language_bindings/python/id/
  103. cp language_bindings/python/id/rllib.py /opt/pvb/language_bindings/python/id/
  104. cp language_bindings/python/id/_rllib.so /opt/pvb/language_bindings/python/id/
  105. cp designer/plugins/libpvb_designer_plugin.so /opt/pvb/designer/plugins/
  106. cp designer/plugins/libqwt_designer_plugin.so /opt/pvb/designer/plugins/
  107. cp pvserver/libpvsid.so /opt/pvb/pvserver/
  108. cp pvserver/libpvsmt.so /opt/pvb/pvserver/
  109. cp rllib/lib/librllib.so /opt/pvb/rllib/lib/
  110. else
  111. echo 'copy shared objects on OS-X ...'
  112. cp designer/plugins/libpvb_designer_plugin.dylib /opt/pvb/designer/plugins/
  113. cp designer/plugins/libqwt_designer_plugin.dylib /opt/pvb/designer/plugins/
  114. cp pvserver/libpvsid.dylib /opt/pvb/pvserver/
  115. cp pvserver/libpvsmt.dylib /opt/pvb/pvserver/
  116. cp rllib/lib/librllib.dylib /opt/pvb/rllib/lib/
  117. fi
  118. if [ "$PVB_OSTYPE" == "linux" ]; then
  119. echo 'set links on linux...'
  120. ln -sf /opt/pvb/pvbrowser/pvbrowser /usr/bin/pvbrowser
  121. cp /opt/pvb/pvdevelop/pvdevelop.sh /usr/bin/pvdevelop
  122. ln -sf /opt/pvb/rllib/rlsvg/rlsvgcat /usr/bin/rlsvgcat
  123. ln -sf /opt/pvb/rllib/rlsvg/rlsvgcat /usr/bin/rlsvgcat
  124. ln -sf /opt/pvb/start_pvbapp/start_pvbapp /usr/bin/start_pvbapp
  125. ln -sf /opt/pvb/rllib/rlhistory/rlhistory /usr/bin/rlhistory
  126. ln -sf /opt/pvb/update_pvbrowser.sh /usr/bin/update_pvbrowser
  127. ln -sf /opt/pvb/language_bindings/lua/pvslua/pvslua /usr/bin/pvslua
  128. ln -sf /opt/pvb/language_bindings/lua/pvapplua/pvapplua /usr/bin/pvapplua
  129. ln -sf /opt/pvb/rllib/lib/librllib.so /usr/lib/librllib.so
  130. ln -sf /opt/pvb/rllib/lib/librllib.so /usr/lib/librllib.so.1
  131. ln -sf /opt/pvb/rllib/lib/librllib.so /usr/lib/librllib.so.1.0
  132. ln -sf /opt/pvb/rllib/lib/librllib.so /usr/lib/librllib.so.1.0.0
  133. ln -sf /opt/pvb/pvserver/libpvsid.so /usr/lib/libpvsid.so
  134. ln -sf /opt/pvb/pvserver/libpvsid.so /usr/lib/libpvsid.so.1
  135. ln -sf /opt/pvb/pvserver/libpvsid.so /usr/lib/libpvsid.so.1.0
  136. ln -sf /opt/pvb/pvserver/libpvsid.so /usr/lib/libpvsid.so.1.0.0
  137. ln -sf /opt/pvb/pvserver/libpvsmt.so /usr/lib/libpvsmt.so
  138. ln -sf /opt/pvb/pvserver/libpvsmt.so /usr/lib/libpvsmt.so.1
  139. ln -sf /opt/pvb/pvserver/libpvsmt.so /usr/lib/libpvsmt.so.1.0
  140. ln -sf /opt/pvb/pvserver/libpvsmt.so /usr/lib/libpvsmt.so.1.0.0
  141. echo 'running ldconfig...'
  142. ldconfig
  143. else
  144. echo 'set links on OS-X ...'
  145. ln -sf /opt/pvb/pvbrowser/pvbrowser.app/Contents/MacOS/pvbrowser /usr/bin/pvbrowser
  146. ln -sf /opt/pvb/pvdevelop/pvdevelop.app/Contents/MacOS/pvdevelop /usr/bin/pvdevelop
  147. ln -sf /opt/pvb/start_pvbapp/start_pvbapp.app/Contents/MacOS/start_pvbapp /usr/bin/start_pvbapp
  148. ln -sf /opt/pvb/rllib/rlsvg/rlsvgcat.app/Contents/MacOS/rlsvgcat /usr/bin/rlsvgcat
  149. ln -sf /opt/pvb/rllib/rlhistory/rlhistory.app/Contents/MacOS/rlhistory /usr/bin/rlhistory
  150. ln -sf /opt/pvb/update_pvbrowser.sh /usr/bin/update_pvbrowser
  151. ln -sf /opt/pvb/language_bindings/lua/pvslua/pvslua.app/Contents/MacOS/pvslua /usr/bin/pvslua
  152. ln -sf /opt/pvb/language_bindings/lua/pvapplua/pvapplua.app/Contents/MacOS/pvapplua /usr/bin/pvapplua
  153. ln -sf /opt/pvb/rllib/lib/librllib.dylib /usr/lib/librllib.dylib
  154. ln -sf /opt/pvb/rllib/lib/librllib.dylib /usr/lib/librllib.dylib.1
  155. ln -sf /opt/pvb/rllib/lib/librllib.dylib /usr/lib/librllib.dylib.1.0
  156. ln -sf /opt/pvb/rllib/lib/librllib.dylib /usr/lib/librllib.dylib.1.0.0
  157. ln -sf /opt/pvb/pvb/pvserver/libpvsid.dylib /usr/lib/libpvsid.dylib
  158. ln -sf /opt/pvb/pvb/pvserver/libpvsid.dylib /usr/lib/libpvsid.dylib.1
  159. ln -sf /opt/pvb/pvb/pvserver/libpvsid.dylib /usr/lib/libpvsid.dylib.1.0
  160. ln -sf /opt/pvb/pvb/pvserver/libpvsid.dylib /usr/lib/libpvsid.dylib.1.0.0
  161. ln -sf /opt/pvb/pvb/pvserver/libpvsmt.dylib /usr/lib/libpvsmt.dylib
  162. ln -sf /opt/pvb/pvb/pvserver/libpvsmt.dylib /usr/lib/libpvsmt.dylib.1
  163. ln -sf /opt/pvb/pvb/pvserver/libpvsmt.dylib /usr/lib/libpvsmt.dylib.1.0
  164. ln -sf /opt/pvb/pvb/pvserver/libpvsmt.dylib /usr/lib/libpvsmt.dylib.1.0.0
  165. fi
  166. echo 'makeing /opt/pvb/pvsexample writeable...'
  167. cd /opt/pvb
  168. chmod ugoa+w pvsexample
  169. cd /opt/pvb/pvsexample
  170. chmod ugoa+w *
  171. if [ "$PVB_OSTYPE" == "linux" ]; then
  172. echo 'creating pvbrowserdemo...'
  173. echo '#!/bin/bash' > /usr/bin/pvbrowserdemo
  174. echo '# run pvsexample' >> /usr/bin/pvbrowserdemo
  175. echo 'xterm -e "/opt/pvb/pvsexample/pvsexample -cd=/opt/pvb/pvsexample -sleep=300" &' >> /usr/bin/pvbrowserdemo
  176. echo 'pvbrowser &' >> /usr/bin/pvbrowserdemo
  177. chmod ugoa+x /usr/bin/pvbrowserdemo
  178. # copy qt designer plugins to destination
  179. if [ -d /usr/lib64/qt4/plugins ]; then
  180. export PLUGIN=$(find /usr/lib64/qt4/plugins/ -name designer)
  181. if [ "x$PLUGIN" != "x" ]; then
  182. echo copy qt designer plugins to $PLUGIN/ ...
  183. cp /opt/pvb/designer/plugins/* $PLUGIN/
  184. fi
  185. fi
  186. if [ -d /usr/lib/qt4/plugins ]; then
  187. export PLUGIN=$(find /usr/lib/qt4/plugins/ -name designer)
  188. if [ "x$PLUGIN" != "x" ]; then
  189. echo copy qt designer plugins to $PLUGIN/ ...
  190. cp /opt/pvb/designer/plugins/* $PLUGIN/
  191. fi
  192. fi
  193. fi
  194. echo '################################################################'
  195. echo '# pvbrowser is now installed !!! #'
  196. echo '# Have a lot of fun #'
  197. echo '# commands: #'
  198. echo '# pvbrowserdemo - a small demo #'
  199. echo '# pvbrowser - pvbrowser client #'
  200. echo '# pvdevelop - integrated development environment #'
  201. echo '# pvslua - the lua pvserver #'
  202. echo '# Hint: copy the following shortcuts to your desktop #'
  203. echo '# /opt/pvb/pvbrowser.desktop /opt/pvb/pvdevelop.desktop #'
  204. echo '# #'
  205. echo '# Example pvserver: #'
  206. echo '# cd /opt/pvb/pvsexample #'
  207. echo '# qmake pvsexample.pro #'
  208. echo '# make clean #'
  209. echo '# make #'
  210. echo '# ./pvsexample -sleep=100 #'
  211. echo '# pvbrowser # in other terminal #'
  212. echo '# #'
  213. echo '# if you want to use Qt Designer for designing your masks, #'
  214. echo '# copy the plugins to Qt Designer (read designer/README.txt) #'
  215. echo '# Now type: #'
  216. echo '# exit #'
  217. echo '################################################################'