diff --git a/src/main/java/JettyLauncher.java b/src/main/java/JettyLauncher.java index 7b85a1e..4bb5848 100644 --- a/src/main/java/JettyLauncher.java +++ b/src/main/java/JettyLauncher.java @@ -27,6 +27,8 @@ contextPath = dim[1]; } else if(dim[0].equals("--https") && (dim[1].equals("1") || dim[1].equals("true"))) { forceHttps = true; + } else if(dim[0].equals("--data")){ + System.setProperty("gitbucket.home", dim[1]); } } } diff --git a/src/main/scala/servlet/AutoUpdateListener.scala b/src/main/scala/servlet/AutoUpdateListener.scala index 5ebc4cb..e38966d 100644 --- a/src/main/scala/servlet/AutoUpdateListener.scala +++ b/src/main/scala/servlet/AutoUpdateListener.scala @@ -87,7 +87,7 @@ /** * The version file (GITBUCKET_HOME/version). */ - val versionFile = new File(GitBucketHome, "version") + lazy val versionFile = new File(GitBucketHome, "version") /** * Returns the current version from the version file. @@ -115,6 +115,10 @@ private val logger = LoggerFactory.getLogger(classOf[AutoUpdateListener]) override def contextInitialized(event: ServletContextEvent): Unit = { + val datadir = event.getServletContext.getInitParameter("gitbucket.home") + if(datadir != null){ + System.setProperty("gitbucket.home", datadir) + } org.h2.Driver.load() event.getServletContext.setInitParameter("db.url", s"jdbc:h2:${DatabaseHome}") diff --git a/src/main/scala/util/Directory.scala b/src/main/scala/util/Directory.scala index 383a3be..8ea3325 100644 --- a/src/main/scala/util/Directory.scala +++ b/src/main/scala/util/Directory.scala @@ -8,9 +8,15 @@ */ object Directory { - val GitBucketHome = (scala.util.Properties.envOrNone("GITBUCKET_HOME") match { - case Some(env) => new File(env) - case None => new File(System.getProperty("user.home"), "gitbucket") + val GitBucketHome = (System.getProperty("gitbucket.home") match { + // -Dgitbucket.home= + case path if(path != null) => new File(path) + case _ => scala.util.Properties.envOrNone("GITBUCKET_HOME") match { + // environment variable GITBUCKET_HOME + case Some(env) => new File(env) + // default is HOME/gitbucket + case None => new File(System.getProperty("user.home"), "gitbucket") + } }).getAbsolutePath val GitBucketConf = new File(GitBucketHome, "gitbucket.conf") diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index fbd2d05..481584b 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -27,28 +27,6 @@ GitRepositoryServlet /git/* - - @@ -56,7 +34,7 @@ servlet.AutoUpdateListener - + db.user sa @@ -103,4 +81,14 @@ 1440 + + + + + \ No newline at end of file