Unpack JARs for running servers in $site_path/tmp

Instead of unpacking a running server into ~/.gerritcodereview/tmp
only use that location for commands like init where there is no active
site. From gerrit.sh always use $site_path/tmp for the JARs to isolate
servers that run on the same host under the same UNIX user account.

Change-Id: I688490ffbbf70312767bb766dc7ccbea52401ad1
This commit is contained in:
Shawn O. Pearce 2012-05-09 15:09:21 -07:00
parent 0ad46d4d12
commit 450f0cc262
2 changed files with 34 additions and 25 deletions

View File

@ -423,36 +423,42 @@ public final class GerritLauncher {
}
private static File tmproot() {
// Try to find the user's home directory. If we can't find it
// return null so the JVM's default temporary directory is used
// instead. This is probably /tmp or /var/tmp.
//
String userHome = System.getProperty("user.home");
if (userHome == null || "".equals(userHome)) {
userHome = System.getenv("HOME");
File tmp;
String gerritTemp = System.getenv("GERRIT_TMP");
if (gerritTemp != null && gerritTemp.length() > 0) {
tmp = new File(gerritTemp);
} else {
// Try to find the user's home directory. If we can't find it
// return null so the JVM's default temporary directory is used
// instead. This is probably /tmp or /var/tmp.
//
String userHome = System.getProperty("user.home");
if (userHome == null || "".equals(userHome)) {
System.err.println("warning: cannot determine home directory");
System.err.println("warning: using system temporary directory instead");
return null;
userHome = System.getenv("HOME");
if (userHome == null || "".equals(userHome)) {
System.err.println("warning: cannot determine home directory");
System.err.println("warning: using system temporary directory instead");
return null;
}
}
}
// Ensure the home directory exists. If it doesn't, try to make it.
//
final File home = new File(userHome);
if (!home.exists()) {
if (home.mkdirs()) {
System.err.println("warning: created " + home.getAbsolutePath());
} else {
System.err.println("warning: " + home.getAbsolutePath() + " not found");
System.err.println("warning: using system temporary directory instead");
return null;
// Ensure the home directory exists. If it doesn't, try to make it.
//
final File home = new File(userHome);
if (!home.exists()) {
if (home.mkdirs()) {
System.err.println("warning: created " + home.getAbsolutePath());
} else {
System.err.println("warning: " + home.getAbsolutePath() + " not found");
System.err.println("warning: using system temporary directory instead");
return null;
}
}
}
// Use $HOME/.gerritcodereview/tmp for our temporary file area.
//
final File tmp = new File(new File(home, ".gerritcodereview"), "tmp");
// Use $HOME/.gerritcodereview/tmp for our temporary file area.
//
tmp = new File(new File(home, ".gerritcodereview"), "tmp");
}
if (!tmp.exists() && !tmp.mkdirs()) {
System.err.println("warning: cannot create " + tmp.getAbsolutePath());
System.err.println("warning: using system temporary directory instead");

View File

@ -176,6 +176,8 @@ test -r "$GERRIT_CONFIG" || {
GERRIT_PID="$GERRIT_SITE/logs/gerrit.pid"
GERRIT_RUN="$GERRIT_SITE/logs/gerrit.run"
GERRIT_TMP="$GERRIT_SITE/tmp"
export GERRIT_TMP
##################################################
# Check for JAVA_HOME
@ -492,6 +494,7 @@ case "$ACTION" in
echo " GERRIT_SITE = $GERRIT_SITE"
echo " GERRIT_CONFIG = $GERRIT_CONFIG"
echo " GERRIT_PID = $GERRIT_PID"
echo " GERRIT_TMP = $GERRIT_TMP"
echo " GERRIT_WAR = $GERRIT_WAR"
echo " GERRIT_FDS = $GERRIT_FDS"
echo " GERRIT_USER = $GERRIT_USER"