Inside the file /home/phil/src/mire/src/mire/rooms.clj:
mire/rooms.clj
I tried using java.io.File so I'd have access to getAbsolutePath, but
this is inaccurate:
(.getAbsoluteFile (java.io.File. *file*)) =>
/home/phil/src/mire/mire/rooms.clj
There should be a "src" directory in between "mire" and "mire".
It looks like the value of *file* is relative to the classpath entry
where the file was loaded from, but getAbsoluteFile is assuming it's
relative to the current directory.
How do you get the absolute path for the current file?
-Phil
> I wrote these a while ago, and I'm not sure if they're still useful or not, but I'll just send them along without any guarantee. I
> have used them like (__FILE__) and (__DIR__) when I wanted to get access to things relative to the current file.
>
> (defmacro __FILE__ []
> `(if *file*
> (let [f# (ClassLoader/getSystemResource *file*)]
> (if f#
> (.getCanonicalPath (java.io.File. (.toURI f#)))
> (.getCanonicalPath (java.io.File. *file*))))))
Wow, that's quite a set of hoops to jump through.
I don't think I could have figured that out on my own; thanks!
-Phil