⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 openproj.sh

📁 open projects 1.4: is for project
💻 SH
字号:
#!/bin/bash##The contents of this file are subject to the Common Public Attribution License#Version 1.0 (the "License"); you may not use this file except in compliance with#the License. You may obtain a copy of the License at#http://www.projity.com/license . The License is based on the Mozilla Public#License Version 1.1 but Sections 14 and 15 have been added to cover use of#software over a computer network and provide for limited attribution for the#Original Developer. In addition, Exhibit A has been modified to be consistent#with Exhibit B.##Software distributed under the License is distributed on an "AS IS" basis,#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the#specific language governing rights and limitations under the License. The#Original Code is OpenProj. The Original Developer is the Initial Developer and#is Projity, Inc. All portions of the code written by Projity are Copyright (c)#2006, 2007. All Rights Reserved. Contributors Projity, Inc.##Alternatively, the contents of this file may be used under the terms of the#Projity End-User License Agreeement (the Projity License), in which case the#provisions of the Projity License are applicable instead of those above. If you#wish to allow use of your version of this file only under the terms of the#Projity License and not to allow others to use your version of this file under#the CPAL, indicate your decision by deleting the provisions above and replace#them with the notice and other provisions required by the Projity  License. If#you do not delete the provisions above, a recipient may use your version of this#file under either the CPAL or the Projity License.##[NOTE: The text of this license may differ slightly from the text of the notices#in Exhibits A and B of the license at http://www.projity.com/license. You should#use the latest text at http://www.projity.com/license for your modifications.#You may not remove this license text from the source files.]##Attribution Information: Attribution Copyright Notice: Copyright (c) 2006, 2007#Projity, Inc. Attribution Phrase (not exceeding 10 words): Powered by OpenProj,#an open source solution from Projity. Attribution URL: http://www.projity.com#Graphic Image as provided in the Covered Code as file:  openproj_logo.png with#alternatives listed on http://www.projity.com/logo##Display of Attribution Information is required in Larger Works which are defined#in the CPAL as a work which combines Covered Code or portions thereof with code#not governed by the terms of the CPAL. However, in addition to the other notice#obligations, all copies of the Covered Code in Executable and Source Code form#distributed must, as a form of attribution of the original author, include on#each user interface screen the "OpenProj" logo visible to all users.  The#OpenProj logo should be located horizontally aligned with the menu bar and left#justified on the top left of the screen adjacent to the File menu.  The logo#must be at least 100 x 25 pixels.  When users click on the "OpenProj" logo it#must direct them back to http://www.projity.com.#CONF_DIR="$HOME/.openproj"RUN_CONF="$CONF_DIR/run.conf"VERSION_FILE="$CONF_DIR/java-version"JAVA_INSTALL_DIR="/usr/java"JAVA_INSTALL_DIR_EXE="bin/java"JAVA_INSTALL_DIR2="/usr/lib/jvm"JAVA_INSTALL_DIR_EXE2="bin/java"JAVA_INSTALL_DIR3="/opt/ibm"JAVA_INSTALL_DIR_EXE3="jre/bin/java"MIN_JAVA_VERSION="1.5"#Default conf valuesJAVA_EXE="java"JAVA_OPTS="-Xms128m -Xmx768m"#OPENPROJ_HOME0="/usr/share/openproj"OPENPROJ_HOME0=`(dirname $0)`OPENPROJ_HOME="$OPENPROJ_HOME0"LOG_LEVEL="DEBUG"LOG_FILE="/dev/null"AUTO_CONFIGURATION="1"ARGS="$@"JAVA_OK="0"FIRST_JAVA_WITH_CORRECT_VERSION=""OS_NAME=`uname`if [ "x$OS_NAME" = "xSunOS" ]; then	TAIL_COMMAND="/usr/xpg4/bin/tail"else	TAIL_COMMAND="tail"ficreate_run_conf() {	echo "#Auto-generated parameters" > "$RUN_CONF"	echo "AUTO_CONFIGURATION=\"$AUTO_CONFIGURATION\"" >> "$RUN_CONF"	echo "JAVA_EXE=\"$JAVA_EXE\"" >> "$RUN_CONF"	if [ "x$OS_NAME" = "xLinux" ]; then		OS_ID=`lsb_release -i 2> /dev/null | sed "s/.*:[ \t]*\(.*\)/\1/"`		OS_RELEASE=`lsb_release -r 2> /dev/null | sed "s/.*:[ \t]*\(.*\)/\1/"`	else		#OS_ID=`uname -v`		OS_RELEASE=`uname -r`	fi	echo "OS_NAME=\"$OS_NAME\"" >> "$RUN_CONF"	echo "OS_ID=\"$OS_ID\"" >> "$RUN_CONF"	echo "OS_RELEASE=\"$OS_RELEASE\"" >> "$RUN_CONF"	if [ "x$OS_ID" = "xSUSE LINUX" ]; then		#fix broken prefs on SLED10/IBM		JAVA_OPTS="$JAVA_OPTS -Djava.util.prefs.userRoot=$HOME/.java/.userPrefs -Djava.util.prefs.systemRoot=$HOME/.openproj"	fi	echo "JAVA_OPTS=\"$JAVA_OPTS\"" >> "$RUN_CONF"	#echo "OPENPROJ_HOME=\"$OPENPROJ_HOME\"" >> "$RUN_CONF"	echo "LOG_LEVEL=\"$LOG_LEVEL\"" >> "$RUN_CONF"	echo "LOG_FILE=\"$LOG_FILE\"" >> "$RUN_CONF"}check_java() {	JAVA_EXE="$1"	echo "Checking $JAVA_EXE"	"$JAVA_EXE" -version > "$VERSION_FILE" 2>&1 || rm -f "$VERSION_FILE"	if [ -r "$VERSION_FILE" ]; then		JAVA_VERSION=`cat "$VERSION_FILE" | head -n 1 | awk '{ print substr($3, 2, length($3)-2); }'`		if [ "x$OS_NAME" = "xSunOS" ]; then			echo "    Java version: $JAVA_VERSION \c"		else			echo -n "    Java version: $JAVA_VERSION "		fi		#Comparable format		MIN_JAVA_VERSION=`echo "$MIN_JAVA_VERSION" | sed -e 's;\.;0;g'`		JAVA_VERSION=`echo "$JAVA_VERSION" | awk '{ print substr($1, 1, 3); }' | sed -e 's;\.;0;g'`		if [ "$JAVA_VERSION" ]; then			if [ "$JAVA_VERSION" -ge "$MIN_JAVA_VERSION" ];	then				echo "OK"				JAVA_IMPL=`cat "$VERSION_FILE" | head -n 2 | "$TAIL_COMMAND" -n 1 | awk '{ print $1; }'`				if [ "x$OS_NAME" = "xSunOS" ]; then					echo "    Java implementation: $JAVA_IMPL \c"				else					echo -n "    Java implementation: $JAVA_IMPL "				fi				if [ "x$FIRST_JAVA_WITH_CORRECT_VERSION" = "x" ]; then					FIRST_JAVA_WITH_CORRECT_VERSION="$JAVA_EXE"				fi				if [ "x$JAVA_IMPL" = "xJava(TM)" ] || [ "x$JAVA_IMPL" = "xIcedTea" ]; then					echo "OK"					create_run_conf					JAVA_OK="1"				else					echo "NOK, OpenProj requires Sun, IBM or IcedTea implementation"				fi			else				echo "NOK, version < 1.5"			fi		else			echo "NOK"		fi	else		echo "    Error"	fi}run_openproj() {	if [ "$LOG_LEVEL" ] && [ "x$LOG_LEVEL" = "xDEBUG" ]; then		"$JAVA_EXE" $JAVA_OPTS -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > "$LOG_FILE"	else		"$JAVA_EXE" $JAVA_OPTS -jar "$OPENPROJ_HOME/openproj.jar" $ARGS > /dev/null 2>&1	fi}if [ ! -d "$CONF_DIR" ]; then	mkdir "$CONF_DIR"	OS_ID=`lsb_release -i 2> /dev/null | sed "s/.*:[ \t]*\(.*\)/\1/"`	if [ "x$OS_ID" = "xSUSE LINUX" ]; then		#fix broken prefs on SLED10/IBM		mkdir "$CONF_DIR/.systemPrefs"	fifiif [ -f "$RUN_CONF" ]; then	. "$RUN_CONF"	OPENPROJ_HOME="$OPENPROJ_HOME0"	#OPENPROJ_HOME can be harmful with multiple versions. disable	JAVA_OK="1"	ARGS0="$ARGS"	ARGS="--silentlyFail true $ARGS"	run_openproj || if [[ $? -eq 126 || $? -eq 127 || $? -eq 64 ]]; then		#126 command invoked cannot execute		#127 command not found		#64 bad java version/impl		if [ "x$AUTO_CONFIGURATION" != "x0" ]; then			JAVA_OK="0"			#auto-detection will be performed		fi	fi	ARGS="$ARGS0"fiif [ "$JAVA_OK" -eq "0" ]; then	echo "Java auto-detection..."	if [ "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then		check_java "$JAVA_HOME/bin/java"	fi	if [ "$JAVA_OK" -eq "0" ]; then		check_java "java"	fi	#search in $JAVA_INSTALL_DIR	if [ "$JAVA_OK" -eq "0" ] && [ -d "$JAVA_INSTALL_DIR" ]; then		J="$JAVA_INSTALL_DIR/latest/$JAVA_INSTALL_DIR_EXE"		if [ -x "$J" ]; then			check_java "$J"		fi		if [ "$JAVA_OK" -eq "0" ]; then			J="$JAVA_INSTALL_DIR/default/$JAVA_INSTALL_DIR_EXE"			if [ -x "$J" ]; then				check_java "$J"			fi		fi		if [ "$JAVA_OK" -eq "0" ]; then			for i in $JAVA_INSTALL_DIR/* ; do				J="$i/$JAVA_INSTALL_DIR_EXE"				if [ "$J" = "$JAVA_INSTALL_DIR/latest" ] || [ "$J" = "$JAVA_INSTALL_DIR/default" ]; then					#already checked					continue				fi				if [ -x "$J" ]; then					check_java "$J"					if [ "$JAVA_OK" -eq "1" ]; then						break					fi				fi			done		fi	fi	JAVA_INSTALL_DIR="$JAVA_INSTALL_DIR2"	JAVA_INSTALL_DIR_EXE="$JAVA_INSTALL_DIR_EXE2"	#search in $JAVA_INSTALL_DIR	if [ "$JAVA_OK" -eq "0" ] && [ -d "$JAVA_INSTALL_DIR" ]; then		J="$JAVA_INSTALL_DIR/latest/$JAVA_INSTALL_DIR_EXE"		if [ -x "$J" ]; then			check_java "$J"		fi		if [ "$JAVA_OK" -eq "0" ]; then			J="$JAVA_INSTALL_DIR/default/$JAVA_INSTALL_DIR_EXE"			if [ -x "$J" ]; then				check_java "$J"			fi		fi		if [ "$JAVA_OK" -eq "0" ]; then			for i in $JAVA_INSTALL_DIR/* ; do				J="$i/$JAVA_INSTALL_DIR_EXE"				if [ "$J" = "$JAVA_INSTALL_DIR/latest" ] || [ "$J" = "$JAVA_INSTALL_DIR/default" ]; then					#already checked					continue				fi				if [ -x "$J" ]; then					check_java "$J"					if [ "$JAVA_OK" -eq "1" ]; then						break					fi				fi			done		fi	fi	JAVA_INSTALL_DIR="$JAVA_INSTALL_DIR3"	JAVA_INSTALL_DIR_EXE="$JAVA_INSTALL_DIR_EXE3"	#search in $JAVA_INSTALL_DIR	if [ "$JAVA_OK" -eq "0" ] && [ -d "$JAVA_INSTALL_DIR" ]; then		J="$JAVA_INSTALL_DIR/latest/$JAVA_INSTALL_DIR_EXE"		if [ -x "$J" ]; then			check_java "$J"		fi		if [ "$JAVA_OK" -eq "0" ]; then			J="$JAVA_INSTALL_DIR/default/$JAVA_INSTALL_DIR_EXE"			if [ -x "$J" ]; then				check_java "$J"			fi		fi		if [ "$JAVA_OK" -eq "0" ]; then			for i in $JAVA_INSTALL_DIR/* ; do				J="$i/$JAVA_INSTALL_DIR_EXE"				if [ "$J" = "$JAVA_INSTALL_DIR/latest" ] || [ "$J" = "$JAVA_INSTALL_DIR/default" ]; then					#already checked					continue				fi				if [ -x "$J" ]; then					check_java "$J"					if [ "$JAVA_OK" -eq "1" ]; then						break					fi				fi			done		fi	fi	if [ "$JAVA_OK" -eq "0" ]; then		echo "Java not found or incorrect version."		echo "Please install Sun, IBM or IcedTea JRE 1.5+ or set JAVA_HOME environment variable if it's already installed."	else		echo "Java OK"	fi	if [ "$JAVA_OK" -eq "1" ]; then		run_openproj	else		if [ "x$FIRST_JAVA_WITH_CORRECT_VERSION" != "x" ]; then			echo "Trying $FIRST_JAVA_WITH_CORRECT_VERSION ..."			JAVA_EXE="$FIRST_JAVA_WITH_CORRECT_VERSION"			create_run_conf			run_openproj			echo $?		fi	fifi

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -