John <[email protected]> writes:
> Hi,
>
> I am trying to use lein.py, from above, on Windows (Vista).
>
> It works nicely for some commands (e.g. lein.py compile),
> after removing the extra space in two places e.g.
> 'leiningen-%s-standalone .jar' ->
> 'leiningen-%s-standalone.jar'
> and
> '1.1.0-alpha-SNAPSHOT/cloju re-1.1.0-alpha-SNAPSHOT.jar' ->
> '1.1.0-alpha-SNAPSHOT/clojure-1.1.0-alpha-SNAPSHOT.jar'
It's really strange. These additional spaces don't exist in my original script.
They were added by google groups or something.
> But I still have the following error with the 'lein.py install' and
> 'lein.py jar' commands:
>
> E:\temp\leiningen\myproject> E:\etc\clojure\Leiningen\lein.py install
> Exception in thread "main" java.util.regex.PatternSyntaxException:
> Illegal/unsupported escape sequence near index 9
> ^E:\temp\leiningen\myproject
> ^ (NO_SOURCE_FILE:0)
> at clojure.lang.Compiler.eval(Compiler.java:5274)
> at clojure.lang.Compiler.eval(Compiler.java:5226)
> ...
>
> E:\temp\leiningen\myproject> E:\etc\clojure\Leiningen\lein.py jar
> Exception in thread "main" java.util.regex.PatternSyntaxException:
> Illegal/unsupported escape sequence near index 9
> ^E:\temp\leiningen\myproject
> ^ (NO_SOURCE_FILE:0)
> at clojure.lang.Compiler.eval(Compiler.java:5274)
> at clojure.lang.Compiler.eval(Compiler.java:5226)
> ...
>
> I am guessing that this means that the backslash in 'temp\leiningen'
> needs to be escaped
> somewhere in the python script (lein.py) above.
> (I am not clear why the first backslash (in E:\temp) is not reported
> as the error (index 4).)
>
> I have tried many guesses (I am not familiar with python (V2.6)).
> Can anyone make some suggestions?
I don't think it is `lein.py` problem anymore.
Leiningen uses regular expressions on paths and as usually
there is a problem with windows path separator.
I took a look in leiningen source and this small patch made
command "jar" working for me on Windows
(I haven't looked at "install" command, but probably it is the same
problem):
<patch>
diff --git a/src/leiningen/jar.clj b/src/leiningen/jar.clj
index 227bccd..d1dd766 100644
--- a/src/leiningen/jar.clj
+++ b/src/leiningen/jar.clj
@@ -22,13 +22,17 @@
(str "Main-Class: " main))])
"\n")))))
+(defn unix-path [path]
+ (.replaceAll path "\\\\" "/"))
+
(defmulti copy-to-jar (fn [project jar-os spec] (:type spec)))
(defmethod copy-to-jar :path [project jar-os spec]
(doseq [child (file-seq (file (:path spec)))]
(when-not (.isDirectory child)
- (let [path (str child)
- path (re-sub (re-pattern (str "^" (:root project))) "" path)
+ (let [path (unix-path (str child))
+ path (re-sub (re-pattern (str "^" (unix-path (:root project))))
+ "" path)
path (re-sub #"^/resources" "" path)
path (re-sub #"^/classes" "" path)
path (re-sub #"^/src" "" path)
</patch>
HTH,
Rob
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en