From 998cc4064ac4f614e6b9ddd768781ebae470e84b Mon Sep 17 00:00:00 2001 From: Vaidas Pilkauskas <(none)> Date: Fri, 23 Dec 2016 20:03:59 +0200 Subject: [PATCH] Add server parameter to control address Nailgun server binds to --- src/main/scala/com/typesafe/zinc/Nailgun.scala | 10 ++++++---- src/main/scala/com/typesafe/zinc/Settings.scala | 1 + src/universal/bin/zinc | 6 ++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/scala/com/typesafe/zinc/Nailgun.scala b/src/main/scala/com/typesafe/zinc/Nailgun.scala index f6ca62e06..b852fae3e 100644 --- a/src/main/scala/com/typesafe/zinc/Nailgun.scala +++ b/src/main/scala/com/typesafe/zinc/Nailgun.scala @@ -4,8 +4,9 @@ package com.typesafe.zinc -import com.martiansoftware.nailgun.{ Alias, AliasManager, NGContext, NGServer } +import com.martiansoftware.nailgun.{ Alias, NGContext, NGServer } import java.io.File +import java.net.InetAddress import sbt.Path class Nailgun // for classOf @@ -21,8 +22,9 @@ object Nailgun { */ def main(args: Array[String]): Unit = { val port = try args(0).toInt catch { case _: Exception => DefaultPort } + val server = try InetAddress.getByName(args(2)) catch { case _: Exception => null } val timeout = try Util.duration(args(1), DefaultTimeout) catch { case _: Exception => DefaultTimeout } - start(port, timeout) + start(server, port, timeout) } /** @@ -60,8 +62,8 @@ object Nailgun { * Start the nailgun server. * Available aliased commands are 'zinc', 'status', and 'shutdown'. */ - def start(port: Int, timeout: Long): Unit = { - val server = new NGServer(null, port) + def start(address: InetAddress, port: Int, timeout: Long): Unit = { + val server = new NGServer(address, port) val am = server.getAliasManager am.addAlias(new Alias("zinc", "scala incremental compiler", classOf[Nailgun])) am.addAlias(new Alias("status", "status of nailgun server", classOf[Nailgun])) diff --git a/src/main/scala/com/typesafe/zinc/Settings.scala b/src/main/scala/com/typesafe/zinc/Settings.scala index 24f3c72cb..496266de0 100644 --- a/src/main/scala/com/typesafe/zinc/Settings.scala +++ b/src/main/scala/com/typesafe/zinc/Settings.scala @@ -243,6 +243,7 @@ object Settings { header("Nailgun options:"), dummy( "-nailed", "Run as daemon with nailgun server"), + dummy( "-server", "Set nailgun server address (if nailed)"), dummy( "-port", "Set nailgun port (if nailed)"), dummy( "-start", "Ensure nailgun server is running (if nailed)"), dummy( "-status", "Report nailgun server status (if nailed)"), diff --git a/src/universal/bin/zinc b/src/universal/bin/zinc index a0be69ff5..f65f785f1 100755 --- a/src/universal/bin/zinc +++ b/src/universal/bin/zinc @@ -49,6 +49,7 @@ function fork_command { # nailgun settings declare nailgun_port=3030 +declare nailgun_server="0.0.0.0" declare timeout=0 unset nailed start status shutdown @@ -63,6 +64,7 @@ while [[ $# -gt 0 ]] ; do -nailed) nailed=1; shift ;; -port) nailgun_port="$2"; shift 2 ;; + -server) nailgun_server="$2"; shift 2 ;; -start) start=1; shift ;; -status) status=1; shift ;; -shutdown) shutdown=1; shift ;; @@ -209,7 +211,7 @@ function nailgun { "${java_options[@]}" \ -Dzinc.home="$home_path" \ -classpath "$classpath" \ - com.typesafe.zinc.Nailgun $nailgun_port $timeout + com.typesafe.zinc.Nailgun $nailgun_port $timeout $nailgun_server # give some time for startup local attempts=50 while ! check_port $nailgun_port ; do @@ -218,7 +220,7 @@ function nailgun { sleep 0.1 done fi - exec_command "$script_dir/nailgun" --nailgun-port $nailgun_port "$@" + exec_command "$script_dir/nailgun" --nailgun-server $nailgun_server --nailgun-port $nailgun_port "$@" } if [ -n "$nailed" ] ; then