Advertisement
Guest User

ssss

a guest
Oct 7th, 2014
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.69 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. # Uncomment the following line to override the JVM search sequence
  4. # INSTALL4J_JAVA_HOME_OVERRIDE=
  5. # Uncomment the following line to add additional VM parameters
  6. # INSTALL4J_ADD_VM_PARAMS=
  7.  
  8. read_db_entry() {
  9. if [ -n "$INSTALL4J_NO_DB" ]; then
  10. return 1
  11. fi
  12. db_file=$HOME/.install4j
  13. if [ ! -f "$db_file" ]; then
  14. return 1
  15. fi
  16. if [ ! -x "$java_exc" ]; then
  17. return 1
  18. fi
  19. found=1
  20. exec 7< $db_file
  21. while read r_type r_dir r_ver_major r_ver_minor r_ver_micro r_ver_patch r_ver_vendor<&7; do
  22. if [ "$r_type" = "JRE_VERSION" ]; then
  23. if [ "$r_dir" = "$test_dir" ]; then
  24. ver_major=$r_ver_major
  25. ver_minor=$r_ver_minor
  26. ver_micro=$r_ver_micro
  27. ver_patch=$r_ver_patch
  28. fi
  29. elif [ "$r_type" = "JRE_INFO" ]; then
  30. if [ "$r_dir" = "$test_dir" ]; then
  31. is_openjdk=$r_ver_major
  32. found=0
  33. break
  34. fi
  35. fi
  36. done
  37. exec 7<&-
  38.  
  39. return $found
  40. }
  41.  
  42. create_db_entry() {
  43. tested_jvm=true
  44. echo testing JVM in $test_dir ...
  45. version_output=`"$bin_dir/java" $1 -version 2>&1`
  46. is_gcj=`expr "$version_output" : '.*gcj'`
  47. is_openjdk=`expr "$version_output" : '.*OpenJDK'`
  48. if [ "$is_gcj" = "0" ]; then
  49. java_version=`expr "$version_output" : '.*"\(.*\)".*'`
  50. ver_major=`expr "$java_version" : '\([0-9][0-9]*\)\..*'`
  51. ver_minor=`expr "$java_version" : '[0-9][0-9]*\.\([0-9][0-9]*\)\..*'`
  52. ver_micro=`expr "$java_version" : '[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*'`
  53. ver_patch=`expr "$java_version" : '.*_\(.*\)'`
  54. fi
  55. if [ "$ver_patch" = "" ]; then
  56. ver_patch=0
  57. fi
  58. if [ -n "$INSTALL4J_NO_DB" ]; then
  59. return
  60. fi
  61. db_new_file=${db_file}_new
  62. if [ -f "$db_file" ]; then
  63. awk '$1 != "'"$test_dir"'" {print $0}' $db_file > $db_new_file
  64. rm $db_file
  65. mv $db_new_file $db_file
  66. fi
  67. dir_escaped=`echo "$test_dir" | sed -e 's/ /\\\\ /g'`
  68. echo "JRE_VERSION $dir_escaped $ver_major $ver_minor $ver_micro $ver_patch" >> $db_file
  69. echo "JRE_INFO $dir_escaped $is_openjdk" >> $db_file
  70. }
  71.  
  72. test_jvm() {
  73. tested_jvm=na
  74. test_dir=$1
  75. bin_dir=$test_dir/bin
  76. java_exc=$bin_dir/java
  77. if [ -z "$test_dir" ] || [ ! -d "$bin_dir" ] || [ ! -f "$java_exc" ] || [ ! -x "$java_exc" ]; then
  78. return
  79. fi
  80.  
  81. tested_jvm=false
  82. read_db_entry || create_db_entry $2
  83.  
  84. if [ "$ver_major" = "" ]; then
  85. return;
  86. fi
  87. if [ "$ver_major" -lt "1" ]; then
  88. return;
  89. elif [ "$ver_major" -eq "1" ]; then
  90. if [ "$ver_minor" -lt "6" ]; then
  91. return;
  92. fi
  93. fi
  94.  
  95. if [ "$ver_major" = "" ]; then
  96. return;
  97. fi
  98. app_java_home=$test_dir
  99. }
  100.  
  101. add_class_path() {
  102. if [ -n "$1" ] && [ `expr "$1" : '.*\*'` -eq "0" ]; then
  103. local_classpath="$local_classpath${local_classpath:+:}$1"
  104. fi
  105. }
  106.  
  107. compiz_workaround() {
  108. if [ "$is_openjdk" != "0" ]; then
  109. return;
  110. fi
  111. if [ "$ver_major" = "" ]; then
  112. return;
  113. fi
  114. if [ "$ver_major" -gt "1" ]; then
  115. return;
  116. elif [ "$ver_major" -eq "1" ]; then
  117. if [ "$ver_minor" -gt "6" ]; then
  118. return;
  119. elif [ "$ver_minor" -eq "6" ]; then
  120. if [ "$ver_micro" -gt "0" ]; then
  121. return;
  122. elif [ "$ver_micro" -eq "0" ]; then
  123. if [ "$ver_patch" -gt "09" ]; then
  124. return;
  125. fi
  126. fi
  127. fi
  128. fi
  129.  
  130.  
  131. osname=`uname -s`
  132. if [ "$osname" = "Linux" ]; then
  133. compiz=`ps -ef | grep -v grep | grep compiz`
  134. if [ -n "$compiz" ]; then
  135. export AWT_TOOLKIT=MToolkit
  136. fi
  137. fi
  138.  
  139. app_java_home=$test_dir
  140. }
  141.  
  142.  
  143. read_vmoptions() {
  144. vmoptions_file=`eval echo "$1"`
  145. if [ ! -r "$vmoptions_file" ]; then
  146. vmoptions_file="$prg_dir/$vmoptions_file"
  147. fi
  148. if [ -r "$vmoptions_file" ]; then
  149. exec 8< "$vmoptions_file"
  150. while read cur_option<&8; do
  151. is_comment=`expr "W$cur_option" : 'W *#.*'`
  152. if [ "$is_comment" = "0" ]; then
  153. vmo_classpath=`expr "W$cur_option" : 'W *-classpath \(.*\)'`
  154. vmo_classpath_a=`expr "W$cur_option" : 'W *-classpath/a \(.*\)'`
  155. vmo_classpath_p=`expr "W$cur_option" : 'W *-classpath/p \(.*\)'`
  156. vmo_include=`expr "W$cur_option" : 'W *-include-options \(.*\)'`
  157. if [ ! "$vmo_classpath" = "" ]; then
  158. local_classpath="$i4j_classpath:$vmo_classpath"
  159. elif [ ! "$vmo_classpath_a" = "" ]; then
  160. local_classpath="${local_classpath}:${vmo_classpath_a}"
  161. elif [ ! "$vmo_classpath_p" = "" ]; then
  162. local_classpath="${vmo_classpath_p}:${local_classpath}"
  163. elif [ "$vmo_include" = "" ]; then
  164. if [ "W$vmov_1" = "W" ]; then
  165. vmov_1="$cur_option"
  166. elif [ "W$vmov_2" = "W" ]; then
  167. vmov_2="$cur_option"
  168. elif [ "W$vmov_3" = "W" ]; then
  169. vmov_3="$cur_option"
  170. elif [ "W$vmov_4" = "W" ]; then
  171. vmov_4="$cur_option"
  172. elif [ "W$vmov_5" = "W" ]; then
  173. vmov_5="$cur_option"
  174. else
  175. vmoptions_val="$vmoptions_val $cur_option"
  176. fi
  177. fi
  178. fi
  179. done
  180. exec 8<&-
  181. if [ ! "$vmo_include" = "" ]; then
  182. read_vmoptions "$vmo_include"
  183. fi
  184. fi
  185. }
  186.  
  187.  
  188. run_unpack200() {
  189. if [ -f "$1/lib/rt.jar.pack" ]; then
  190. old_pwd200=`pwd`
  191. cd "$1"
  192. echo "Preparing JRE ..."
  193. jar_files="lib/rt.jar lib/charsets.jar lib/plugin.jar lib/deploy.jar lib/ext/localedata.jar lib/jsse.jar"
  194. for jar_file in $jar_files
  195. do
  196. if [ -f "${jar_file}.pack" ]; then
  197. bin/unpack200 -r ${jar_file}.pack $jar_file
  198.  
  199. if [ $? -ne 0 ]; then
  200. echo "Error unpacking jar files. Aborting."
  201. echo "You might need administrative priviledges for this operation."
  202. exit 1
  203. fi
  204. fi
  205. done
  206. cd "$old_pwd200"
  207. fi
  208. }
  209.  
  210. old_pwd=`pwd`
  211.  
  212. progname=`basename "$0"`
  213. linkdir=`dirname "$0"`
  214.  
  215. cd "$linkdir"
  216. prg="$progname"
  217.  
  218. while [ -h "$prg" ] ; do
  219. ls=`ls -ld "$prg"`
  220. link=`expr "$ls" : '.*-> \(.*\)$'`
  221. if expr "$link" : '.*/.*' > /dev/null; then
  222. prg="$link"
  223. else
  224. prg="`dirname $prg`/$link"
  225. fi
  226. done
  227.  
  228. prg_dir=`dirname "$prg"`
  229. progname=`basename "$prg"`
  230. cd "$prg_dir"
  231. prg_dir=`pwd`
  232. app_home=../
  233. cd "$app_home"
  234. app_home=`pwd`
  235. bundled_jre_home="$app_home/jre"
  236.  
  237. if [ "__i4j_lang_restart" = "$1" ]; then
  238. cd "$old_pwd"
  239. else
  240. cd "$prg_dir"/.
  241.  
  242. fi
  243. if [ ! "__i4j_lang_restart" = "$1" ]; then
  244. run_unpack200 "$bundled_jre_home"
  245. run_unpack200 "$bundled_jre_home/jre"
  246. fi
  247. if [ -z "$app_java_home" ]; then
  248. test_jvm $INSTALL4J_JAVA_HOME_OVERRIDE
  249. fi
  250.  
  251. if [ -z "$app_java_home" ]; then
  252. if [ -f "$app_home/.install4j/pref_jre.cfg" ]; then
  253. read file_jvm_home < "$app_home/.install4j/pref_jre.cfg"
  254. test_jvm "$file_jvm_home"
  255. if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
  256. rm $HOME/.install4j
  257. test_jvm "$file_jvm_home"
  258. fi
  259. fi
  260. fi
  261.  
  262. if [ -z "$app_java_home" ]; then
  263. test_jvm "$app_home/jre"
  264. if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
  265. rm $HOME/.install4j
  266. test_jvm "$app_home/jre"
  267. fi
  268. fi
  269.  
  270. if [ -z "$app_java_home" ]; then
  271. path_java=`which java 2> /dev/null`
  272. path_java_home=`expr "$path_java" : '\(.*\)/bin/java$'`
  273. test_jvm $path_java_home
  274. fi
  275.  
  276.  
  277. if [ -z "$app_java_home" ]; then
  278. common_jvm_locations="/opt/i4j_jres/* /usr/local/i4j_jres/* $HOME/.i4j_jres/* /usr/bin/java* /usr/bin/jdk* /usr/bin/jre* /usr/bin/j2*re* /usr/bin/j2sdk* /usr/java* /usr/jdk* /usr/jre* /usr/j2*re* /usr/j2sdk* /usr/java/j2*re* /usr/java/j2sdk* /opt/java* /usr/java/jdk* /usr/java/jre* /usr/lib/java/jre /usr/local/java* /usr/local/jdk* /usr/local/jre* /usr/local/j2*re* /usr/local/j2sdk* /usr/jdk/java* /usr/jdk/jdk* /usr/jdk/jre* /usr/jdk/j2*re* /usr/jdk/j2sdk* /usr/lib/jvm/* /usr/lib/java* /usr/lib/jdk* /usr/lib/jre* /usr/lib/j2*re* /usr/lib/j2sdk*"
  279. for current_location in $common_jvm_locations
  280. do
  281. if [ -z "$app_java_home" ]; then
  282. test_jvm $current_location
  283. fi
  284.  
  285. done
  286. fi
  287.  
  288. if [ -z "$app_java_home" ]; then
  289. test_jvm $JAVA_HOME
  290. fi
  291.  
  292. if [ -z "$app_java_home" ]; then
  293. test_jvm $JDK_HOME
  294. fi
  295.  
  296. if [ -z "$app_java_home" ]; then
  297. test_jvm $INSTALL4J_JAVA_HOME
  298. fi
  299.  
  300. if [ -z "$app_java_home" ]; then
  301. if [ -f "$app_home/.install4j/inst_jre.cfg" ]; then
  302. read file_jvm_home < "$app_home/.install4j/inst_jre.cfg"
  303. test_jvm "$file_jvm_home"
  304. if [ -z "$app_java_home" ] && [ $tested_jvm = "false" ]; then
  305. rm $HOME/.install4j
  306. test_jvm "$file_jvm_home"
  307. fi
  308. fi
  309. fi
  310.  
  311. if [ -z "$app_java_home" ]; then
  312. echo No suitable Java Virtual Machine could be found on your system.
  313. echo The version of the JVM must be at least 1.6.
  314. echo Please define INSTALL4J_JAVA_HOME to point to a suitable JVM.
  315. echo You can also try to delete the JVM cache file $HOME/.install4j
  316. exit 83
  317. fi
  318.  
  319.  
  320. compiz_workaround
  321. i4j_classpath="$app_home/.install4j/i4jruntime.jar"
  322. local_classpath=""
  323. add_class_path "$i4j_classpath"
  324. add_class_path "$app_home/server/lib/sqljdbc.jar"
  325. add_class_path "$app_home/server/lib/fcserver.jar"
  326. add_class_path "$app_home/server/lib/log4j.jar"
  327. add_class_path "$app_home/server/lib/xerces.jar"
  328. add_class_path "$app_home/server/lib/jdom.jar"
  329. add_class_path "$app_home/server/lib/mysql.jar"
  330. add_class_path "$app_home/server/lib/crimson.jar"
  331. add_class_path "$app_home/server/lib/dbpool.jar"
  332. add_class_path "$app_home/server/lib/bcprov.jar"
  333. add_class_path "$app_home/server/lib/httpcore.jar"
  334. add_class_path "$app_home/server/lib/httpcore-nio.jar"
  335. add_class_path "$app_home/server/lib/httpcore-niossl.jar"
  336. add_class_path "$app_home/server/lib/datedFileAppender.jar"
  337. add_class_path "$app_home/server/lib/mina-core.jar"
  338. add_class_path "$app_home/server/lib/slf4j-api.jar"
  339. add_class_path "$app_home/server/lib/slf4j-log4j.jar"
  340. add_class_path "$app_home/server/lib/commons-beanutils-bean-collections.jar"
  341. add_class_path "$app_home/server/lib/commons-beanutils-core.jar"
  342. add_class_path "$app_home/server/lib/commons-codec.jar"
  343. add_class_path "$app_home/server/lib/commons-collections.jar"
  344. add_class_path "$app_home/server/lib/commons-httpclient.jar"
  345. add_class_path "$app_home/server/lib/commons-io.jar"
  346. add_class_path "$app_home/server/lib/commons-lang.jar"
  347. add_class_path "$app_home/server/lib/commons-logging.jar"
  348. add_class_path "$app_home/server/lib/commons-pool.jar"
  349. add_class_path "$app_home/server/lib/ehcache.jar"
  350. add_class_path "$app_home/server/lib/jetty.jar"
  351. add_class_path "$app_home/server/lib/jetty-util.jar"
  352. add_class_path "$app_home/server/lib/jta.jar"
  353. add_class_path "$app_home/server/lib/quartz.jar"
  354. add_class_path "$app_home/server/lib/servletapi.jar"
  355. add_class_path "$app_home/server/lib/spring-beans.jar"
  356. add_class_path "$app_home/server/lib/spring-context.jar"
  357. add_class_path "$app_home/server/lib/spring-core.jar"
  358. add_class_path "$app_home/server/lib/whirlycache.jar"
  359. add_class_path "$app_home/server/lib/red5-minimal.jar"
  360. add_class_path "$app_home/server/lib/json.jar"
  361. add_class_path "$app_home/server/lib/proxool.jar"
  362. add_class_path "$app_home/server/lib/proxool-cglib.jar"
  363. add_class_path "$app_home/server/lib/hsqldb.jar"
  364. add_class_path "$app_home/server/lib/velocity-dep.jar"
  365. add_class_path "$app_home/server/lib/velocity.jar"
  366. add_class_path "$app_home/server/lib/mail.jar"
  367. add_class_path "$app_home/server/lib/aspirin.jar"
  368. add_class_path "$app_home/server/lib/dnsjava.jar"
  369. add_class_path "$app_home/server/lib/activation.jar"
  370. add_class_path "$app_home/server/lib/ojdbc.jar"
  371. add_class_path "$app_home/server/lib/derby.jar"
  372. add_class_path "$app_home/server/lib/derbyclient.jar"
  373. add_class_path "$app_home/server/lib/derbynet.jar"
  374. add_class_path "$app_home/server/lib/smackx.jar"
  375. add_class_path "$app_home/server/lib/smack.jar"
  376. add_class_path "$app_home/server/lib/opencsv.jar"
  377. add_class_path "$app_home/server/lib/rome.jar"
  378. add_class_path "$app_home/server/lib/scribe.jar"
  379. add_class_path "$app_home/server/lib/netty.jar"
  380.  
  381. vmoptions_val=""
  382. read_vmoptions "$prg_dir/$progname.vmoptions"
  383. INSTALL4J_ADD_VM_PARAMS="$INSTALL4J_ADD_VM_PARAMS $vmoptions_val"
  384.  
  385. output_log=$prg_dir/output.log
  386. case "$1" in
  387. start)
  388. echo '' > $output_log
  389. TMPFILE=`mktemp -t XXXXXXXX` && {
  390. echo '#!/bin/bash' > $TMPFILE
  391. echo '' >> $TMPFILE
  392. echo 'file=$1' >> $TMPFILE
  393. echo 'cursor=0' >> $TMPFILE
  394. echo '' >> $TMPFILE
  395. echo 'function printDelta()' >> $TMPFILE
  396. echo '{' >> $TMPFILE
  397. echo ' value=0' >> $TMPFILE
  398. echo ' while read line' >> $TMPFILE
  399. echo ' do' >> $TMPFILE
  400. echo ' value=`expr $value + 1`' >> $TMPFILE
  401. echo ' if [ "$value" -gt "$cursor" ]' >> $TMPFILE
  402. echo ' then' >> $TMPFILE
  403. echo ' echo $line' >> $TMPFILE
  404. echo ' fi' >> $TMPFILE
  405. echo ' done < $file' >> $TMPFILE
  406. echo ' cursor=$value' >> $TMPFILE
  407. echo '}' >> $TMPFILE
  408. echo '' >> $TMPFILE
  409. echo 'size=`wc -c $1`' >> $TMPFILE
  410. echo 'printDelta' >> $TMPFILE
  411. echo '' >> $TMPFILE
  412. echo 'while [ true ]; do' >> $TMPFILE
  413. echo ' sleep 5' >> $TMPFILE
  414. echo ' newsize=`wc -c $file`' >> $TMPFILE
  415. echo ' if [ "$newsize" == "$size" ]' >> $TMPFILE
  416. echo ' then' >> $TMPFILE
  417. echo ' exit' >> $TMPFILE
  418. echo ' else' >> $TMPFILE
  419. echo ' printDelta' >> $TMPFILE
  420. echo ' fi' >> $TMPFILE
  421. echo ' size=$newsize' >> $TMPFILE
  422. echo 'done' >> $TMPFILE
  423. chmod +x $TMPFILE
  424. /bin/bash $TMPFILE $output_log &
  425. sleep 0
  426. rm -f $TMPFILE
  427. }
  428. ;;
  429. esac
  430. if [ "W$vmov_1" = "W" ]; then
  431. vmov_1="-Di4j.vmov=true"
  432. fi
  433. if [ "W$vmov_2" = "W" ]; then
  434. vmov_2="-Di4j.vmov=true"
  435. fi
  436. if [ "W$vmov_3" = "W" ]; then
  437. vmov_3="-Di4j.vmov=true"
  438. fi
  439. if [ "W$vmov_4" = "W" ]; then
  440. vmov_4="-Di4j.vmov=true"
  441. fi
  442. if [ "W$vmov_5" = "W" ]; then
  443. vmov_5="-Di4j.vmov=true"
  444. fi
  445.  
  446. case "$1" in
  447. start)
  448. echo "Starting fcserver"
  449.  
  450. nohup "$app_java_home/bin/java" -Dinstall4j.jvmDir="$app_java_home" -Dexe4j.moduleName="$prg_dir/$progname" "$vmov_1" "$vmov_2" "$vmov_3" "$vmov_4" "$vmov_5" $INSTALL4J_ADD_VM_PARAMS -classpath "$local_classpath" com.install4j.runtime.Launcher start com.topcmm.jchat.FCServer false false "$prg_dir/output.log" "$prg_dir/output.log" true true false "s_hpnyne.png" true true 0 0 "" 20 20 "Arial" "0,0,0" 8 500 "version 9.9" 20 40 "Arial" "0,0,0" 8 500 -1 > /dev/null 2>&1 &
  451.  
  452.  
  453. ;;
  454. stop)
  455. echo "Shutting down fcserver"
  456.  
  457. "$app_java_home/bin/java" -Dinstall4j.jvmDir="$app_java_home" -Dexe4j.moduleName="$prg_dir/$progname" -classpath "$local_classpath" com.install4j.runtime.Launcher stop
  458.  
  459.  
  460. ;;
  461. status)
  462.  
  463. "$app_java_home/bin/java" -Dinstall4j.jvmDir="$app_java_home" -Dexe4j.moduleName="$prg_dir/$progname" -classpath "$local_classpath" com.install4j.runtime.Launcher status
  464.  
  465.  
  466. ;;
  467. *)
  468. echo "Usage: $0 {start|stop|status}"
  469. exit 1
  470. ;;
  471. esac
  472.  
  473. exit $?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement