@@ -30,12 +30,15 @@ public class ClojureNReplMojo extends AbstractClojureCompilerMojo {
30
30
*/
31
31
@ Parameter private String replScript ;
32
32
33
- @ Parameter (defaultValue = "4005 " , property = "clojure.nrepl.port" )
33
+ @ Parameter (defaultValue = "0 " , property = "clojure.nrepl.port" )
34
34
protected int port ;
35
35
36
36
@ Parameter (defaultValue = "localhost" , property = "clojure.nrepl.host" )
37
37
protected String nreplHost ;
38
38
39
+ @ Parameter (property = "clojure.nrepl.unix.socket" )
40
+ protected String nreplUnixSocket ;
41
+
39
42
@ Parameter (property = "clojure.nrepl.handler" )
40
43
private String nreplHandler ;
41
44
@@ -46,9 +49,13 @@ public void execute() throws MojoExecutionException {
46
49
StringBuilder sb = new StringBuilder ();
47
50
sb .append ("(do " );
48
51
sb .append ("(nrepl.server/start-server" );
49
- sb .append (" :bind \" " ).append (nreplHost ).append ("\" " );
50
- sb .append (" :port " );
51
- sb .append (Integer .toString (port ));
52
+ if (unixSocketConfigured ()) {
53
+ sb .append (" :socket \" " ).append (nreplUnixSocket ).append ("\" " );
54
+ } else {
55
+ sb .append (" :bind \" " ).append (nreplHost ).append ("\" " );
56
+ sb .append (" :port " );
57
+ sb .append (Integer .toString (port ));
58
+ }
52
59
appendNreplHandler (sb );
53
60
if (middlewareConfigured () && noNreplHandlerAvailable ()) {
54
61
sb .append (" :handler (nrepl.server/default-handler " );
@@ -120,6 +127,10 @@ private boolean middlewareConfigured() {
120
127
return nreplMiddlewares != null && nreplMiddlewares .length > 0 ;
121
128
}
122
129
130
+ private boolean unixSocketConfigured () {
131
+ return nreplUnixSocket != null && nreplUnixSocket .length () > 0 ;
132
+ }
133
+
123
134
private String windowsEscapeCommandLineArg (String arg ) {
124
135
return "\" " + arg .replace ("\" " , "\\ \" " ) + "\" " ;
125
136
}
0 commit comments