From 832e172a67b00b75cc0ed0488eb91ea76a66ad36 Mon Sep 17 00:00:00 2001 From: Alexey Pushkin Date: Wed, 22 May 2013 00:32:12 +0400 Subject: [PATCH 1/3] Build and run using Leiningen. No need to copy clojure jar manually, figure out tools.jar location and edit startup scripts. --- README.TXT | 20 +++---------- build.xml | 26 ----------------- liverepl-agent/build.xml | 29 ------------------- liverepl-agent/lib/empty.dir | 0 liverepl-agent/src/META-INF/MANIFEST.MF | 3 -- liverepl-server/build.xml | 33 ---------------------- liverepl-server/lib/put-clojure.jar-here | 0 liverepl-server/src/META-INF/MANIFEST.MF | 1 - liverepl.bat | 8 ------ liverepl.sh | 36 ------------------------ project.clj | 8 ++++++ src/liverepl/main.clj | 14 +++++++++ 12 files changed, 26 insertions(+), 152 deletions(-) delete mode 100644 build.xml delete mode 100644 liverepl-agent/build.xml delete mode 100644 liverepl-agent/lib/empty.dir delete mode 100644 liverepl-agent/src/META-INF/MANIFEST.MF delete mode 100644 liverepl-server/build.xml delete mode 100644 liverepl-server/lib/put-clojure.jar-here delete mode 100644 liverepl-server/src/META-INF/MANIFEST.MF delete mode 100644 liverepl.bat delete mode 100755 liverepl.sh create mode 100644 project.clj create mode 100644 src/liverepl/main.clj diff --git a/README.TXT b/README.TXT index 5f09259..706c259 100644 --- a/README.TXT +++ b/README.TXT @@ -29,19 +29,7 @@ Build ===== To build: - - Copy clojure.jar to: ./liverepl-server/lib/clojure.jar - - Run ant - -The build will be copied to: ./build/ - ----------------------------------------- - -Configuration -============= - -Edit liverepl.bat to point to your installed JDK + lein uberjar ---------------------------------------- @@ -51,18 +39,18 @@ Operation To see a list of running Java processes on the system, and their process ids, enter: - liverepl + lein run To see the available ClassLoaders for a specific process, enter: - liverepl + lein run -- where the pid is the process id for the process, obtained in the step above. To connect a repl to the process, enter: - liverepl + lein run -- where the pid is the process id for the process. -- and the classloader-id was obtained in the step above. diff --git a/build.xml b/build.xml deleted file mode 100644 index 07a2908..0000000 --- a/build.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/liverepl-agent/build.xml b/liverepl-agent/build.xml deleted file mode 100644 index 312fe7b..0000000 --- a/liverepl-agent/build.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/liverepl-agent/lib/empty.dir b/liverepl-agent/lib/empty.dir deleted file mode 100644 index e69de29..0000000 diff --git a/liverepl-agent/src/META-INF/MANIFEST.MF b/liverepl-agent/src/META-INF/MANIFEST.MF deleted file mode 100644 index c90400e..0000000 --- a/liverepl-agent/src/META-INF/MANIFEST.MF +++ /dev/null @@ -1,3 +0,0 @@ -Manifest-Version: 1.0 -Agent-Class: net.djpowell.liverepl.agent.Agent -Main-Class: net.djpowell.liverepl.client.Main diff --git a/liverepl-server/build.xml b/liverepl-server/build.xml deleted file mode 100644 index 398a0b4..0000000 --- a/liverepl-server/build.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/liverepl-server/lib/put-clojure.jar-here b/liverepl-server/lib/put-clojure.jar-here deleted file mode 100644 index e69de29..0000000 diff --git a/liverepl-server/src/META-INF/MANIFEST.MF b/liverepl-server/src/META-INF/MANIFEST.MF deleted file mode 100644 index 9d885be..0000000 --- a/liverepl-server/src/META-INF/MANIFEST.MF +++ /dev/null @@ -1 +0,0 @@ -Manifest-Version: 1.0 diff --git a/liverepl.bat b/liverepl.bat deleted file mode 100644 index 18ca4ee..0000000 --- a/liverepl.bat +++ /dev/null @@ -1,8 +0,0 @@ -@echo off -rem Starter script for Clojure liverepl - -set JDK_HOME=c:\jdk -set LIVEREPL_HOME=%~dp0 -set CLOJURE_JAR=%LIVEREPL_HOME%\clojure.jar - -"%JDK_HOME%\bin\java" -cp "%LIVEREPL_HOME%\liverepl-agent.jar";"%JDK_HOME%\lib\tools.jar" net.djpowell.liverepl.client.Main "%CLOJURE_JAR%" "%LIVEREPL_HOME%\liverepl-agent.jar" "%LIVEREPL_HOME%\liverepl-server.jar" %* diff --git a/liverepl.sh b/liverepl.sh deleted file mode 100755 index 3b005a3..0000000 --- a/liverepl.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -# Starter script for Clojure liverepl - -[ -z "$JDK_HOME" ] && JDK_HOME=/usr/lib/jvm/default-java -LIVEREPL_HOME="$(cd -P -- "$(dirname -- "$0")" && pwd -P)" - -MAIN=net.djpowell.liverepl.client.Main -CLOJURE_JAR=$(find $LIVEREPL_HOME/build -name 'clojure-*[0-9].jar' | head -1) -AGENT_JAR="$LIVEREPL_HOME/build/liverepl-agent.jar" -SERVER_JAR="$LIVEREPL_HOME/build/liverepl-server.jar" - - -if [ "Darwin" = "`uname -s`" ]; then - CLASSPATH="${CLASSPATH}${JAVA_HOME}/bundle/Classes/classes.jar" -elif [ ! -f "$JDK_HOME/lib/tools.jar" ]; then - echo 'Unable to find $JDK_HOME/lib/tools.jar' - echo "Please set the JDK_HOME environment variable to the location of your JDK." - exit 1 -else - CLASSPATH="${CLASSPATH}${JDK_HOME}/lib/tools.jar" -fi - -if [ "$TERM" != "dumb" ]; then - if which rlwrap >/dev/null ; then - echo "Found rlwrap" - breakchars="(){}[],^%$#@\"\";:''|\\" - WRAP="exec rlwrap --remember -c -b \"$breakchars\" " - fi -fi - -CLASSPATH="$CLASSPATH:$AGENT_JAR" - -${WRAP}java -cp $CLASSPATH $MAIN "$CLOJURE_JAR" "$AGENT_JAR" "$SERVER_JAR" "$@" - - - diff --git a/project.clj b/project.clj new file mode 100644 index 0000000..7a80dc1 --- /dev/null +++ b/project.clj @@ -0,0 +1,8 @@ +(defproject liverepl "1.2.0-SNAPSHOT" + :dependencies [[org.clojure/clojure "1.5.1"]] + :java-source-paths ["liverepl-agent/src" "liverepl-server/src"] + :manifest {"Agent-Class" "net.djpowell.liverepl.agent.Agent" + "Main-Class" "net.djpowell.liverepl.client.Main"} + :uberjar-name "liverepl.jar" + :main liverepl.main + :plugins [[lein-jdk-tools "0.1.1"]]) \ No newline at end of file diff --git a/src/liverepl/main.clj b/src/liverepl/main.clj new file mode 100644 index 0000000..a60645d --- /dev/null +++ b/src/liverepl/main.clj @@ -0,0 +1,14 @@ +(ns liverepl.main) + +(defn- liverepl-jar-path [] + (str (System/getProperty "user.dir") "/target/liverepl.jar")) + +(defn- gen-args [& args] + (let [jar-path (liverepl-jar-path) + jar-args [jar-path jar-path jar-path] + full-args (reduce conj jar-args args)] + (into-array full-args))) + +(defn -main [& args] + (let [full-args (if args (apply gen-args args) (gen-args))] + (net.djpowell.liverepl.client.Main/main full-args))) \ No newline at end of file From 0659da4ae6e936f86778ec6e2f4cceecbbd3ba46 Mon Sep 17 00:00:00 2001 From: Alexey Pushkin Date: Wed, 22 May 2013 16:52:51 +0400 Subject: [PATCH 2/3] Added nrepl to dependencies --- project.clj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/project.clj b/project.clj index 7a80dc1..87dd771 100644 --- a/project.clj +++ b/project.clj @@ -1,8 +1,10 @@ (defproject liverepl "1.2.0-SNAPSHOT" - :dependencies [[org.clojure/clojure "1.5.1"]] + :dependencies [[org.clojure/clojure "1.5.1"] + [org.clojure/tools.nrepl "0.2.3"] + [clojure-complete "0.2.3"]] :java-source-paths ["liverepl-agent/src" "liverepl-server/src"] :manifest {"Agent-Class" "net.djpowell.liverepl.agent.Agent" "Main-Class" "net.djpowell.liverepl.client.Main"} :uberjar-name "liverepl.jar" :main liverepl.main - :plugins [[lein-jdk-tools "0.1.1"]]) \ No newline at end of file + :plugins [[lein-jdk-tools "0.1.1"]]) From 9e77e95c25e1ec52d677eba7394755b052bfb71e Mon Sep 17 00:00:00 2001 From: Alexey Pushkin Date: Wed, 9 Oct 2019 11:34:46 +0400 Subject: [PATCH 3/3] nrepl --- nrepl.clj | 6 ++++++ project.clj | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 nrepl.clj diff --git a/nrepl.clj b/nrepl.clj new file mode 100644 index 0000000..f91996f --- /dev/null +++ b/nrepl.clj @@ -0,0 +1,6 @@ +(use '[clojure.tools.nrepl.server :only (start-server stop-server)]) +(defn nrepl-handler [] + (require 'cider.nrepl) + (ns-resolve 'cider.nrepl 'cider-nrepl-handler)) +(defonce server (start-server :port 7889 + :handler (nrepl-handler))) diff --git a/project.clj b/project.clj index 87dd771..6321d2e 100644 --- a/project.clj +++ b/project.clj @@ -1,7 +1,8 @@ (defproject liverepl "1.2.0-SNAPSHOT" - :dependencies [[org.clojure/clojure "1.5.1"] - [org.clojure/tools.nrepl "0.2.3"] - [clojure-complete "0.2.3"]] + :dependencies [[org.clojure/clojure "1.7.0"] + [org.clojure/tools.nrepl "0.2.12"] + [clojure-complete "0.2.3"] + [cider/cider-nrepl "0.18.0-SNAPSHOT"]] :java-source-paths ["liverepl-agent/src" "liverepl-server/src"] :manifest {"Agent-Class" "net.djpowell.liverepl.agent.Agent" "Main-Class" "net.djpowell.liverepl.client.Main"}