From 26dcbb4f3081a4ef544f5ff53cf1c969cab17496 Mon Sep 17 00:00:00 2001 From: Arne H Juul Date: Tue, 13 Jun 2017 08:53:09 +0200 Subject: VESPA_HOME should not end with / anymore * best practice for HOME-like env vars is to be just the name of the directory without trailing slash. --- .../main/java/com/yahoo/vespa/defaults/Defaults.java | 18 ++++++++++-------- defaults/src/vespa/defaults.cpp | 16 +++------------- 2 files changed, 13 insertions(+), 21 deletions(-) (limited to 'defaults') diff --git a/defaults/src/main/java/com/yahoo/vespa/defaults/Defaults.java b/defaults/src/main/java/com/yahoo/vespa/defaults/Defaults.java index 0fe6f8abe4f..928b8920e3c 100644 --- a/defaults/src/main/java/com/yahoo/vespa/defaults/Defaults.java +++ b/defaults/src/main/java/com/yahoo/vespa/defaults/Defaults.java @@ -31,12 +31,14 @@ public class Defaults { static private String findVespaHome() { Optional vespaHomeEnv = Optional.ofNullable(System.getenv("VESPA_HOME")); if ( ! vespaHomeEnv.isPresent() || vespaHomeEnv.get().trim().isEmpty()) { - log.info("VESPA_HOME not set, using /opt/vespa/"); - return "/opt/vespa/"; + log.info("VESPA_HOME not set, using /opt/vespa"); + return "/opt/vespa"; } String vespaHome = vespaHomeEnv.get().trim(); - if ( ! vespaHome.endsWith("/")) - vespaHome = vespaHome + "/"; + if (vespaHome.endsWith("/")) { + int sz = vespaHome.length() - 1; + vespaHome = vespaHome.substring(0, sz); + } return vespaHome; } @@ -71,9 +73,9 @@ public class Defaults { public String vespaUser() { return vespaUser; } /** - * Returns the path to the root under which Vespa should read and write files, ending by "/". - * - * @return the vespa home directory, ending by "/" + * Returns the path to the root under which Vespa should read and write files. + * Will not end with a "/". + * @return the vespa home directory */ public String vespaHome() { return vespaHome; } @@ -90,7 +92,7 @@ public class Defaults { public String underVespaHome(String path) { if (path.startsWith("/")) return path; if (path.startsWith("./")) return path; - return vespaHome() + path; + return vespaHome() + "/" + path; } /** diff --git a/defaults/src/vespa/defaults.cpp b/defaults/src/vespa/defaults.cpp index 073d5978717..a7d290bde93 100644 --- a/defaults/src/vespa/defaults.cpp +++ b/defaults/src/vespa/defaults.cpp @@ -13,8 +13,7 @@ namespace { -const char *defaultHome = "/opt/vespa/"; -char computedHome[PATH_MAX]; +const char *defaultHome = "/opt/vespa"; const char *defaultUser = "yahoo"; int defaultWebServicePort = 8080; int defaultPortBase = 19000; @@ -45,20 +44,11 @@ void findDefaults() { const char *env = getenv("VESPA_HOME"); if (env != NULL && *env != '\0') { DIR *dp = NULL; - if (*env == '/') { + if (*env == '/' || *env == '.') { dp = opendir(env); } if (dp != NULL) { - size_t len = strlen(env); - if (env[len-1] == '/') { - // already ends with slash - defaultHome = env; - } else { - // append slash - strncpy(computedHome, env, PATH_MAX); - strncat(computedHome, "/", PATH_MAX); - defaultHome = computedHome; - } + defaultHome = env; // fprintf(stderr, "debug\tVESPA_HOME is '%s'\n", defaultHome); closedir(dp); } else { -- cgit v1.2.3