aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/classpath.clj
diff options
context:
space:
mode:
authorStuart Sierra <mail@stuartsierra.com>2009-04-19 18:23:28 +0000
committerStuart Sierra <mail@stuartsierra.com>2009-04-19 18:23:28 +0000
commit98de5647ce68e29d6e3a200640dd388ca8cb3b05 (patch)
tree1be5e24974c04bff2918cabbc4872e4f6c2273c9 /src/clojure/contrib/classpath.clj
parent721587466da5d45b68ee2c3e5aaa29a2cd7ff2d4 (diff)
Added new libs: jar.clj, classpath.clj, find_namespaces.clj
Diffstat (limited to 'src/clojure/contrib/classpath.clj')
-rw-r--r--src/clojure/contrib/classpath.clj36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/clojure/contrib/classpath.clj b/src/clojure/contrib/classpath.clj
new file mode 100644
index 00000000..e78686f5
--- /dev/null
+++ b/src/clojure/contrib/classpath.clj
@@ -0,0 +1,36 @@
+;;; classpath.clj: utilities for working with the Java class path
+
+;; by Stuart Sierra, http://stuartsierra.com/
+;; April 19, 2009
+
+;; Copyright (c) Stuart Sierra, 2009. All rights reserved. The use
+;; and distribution terms for this software are covered by the Eclipse
+;; Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
+;; which can be found in the file epl-v10.html at the root of this
+;; distribution. By using this software in any fashion, you are
+;; agreeing to be bound by the terms of this license. You must not
+;; remove this notice, or any other, from this software.
+
+
+(ns clojure.contrib.classpath
+ (:require [clojure.contrib.jar :as jar])
+ (:import (java.io File)
+ (java.util.jar JarFile)))
+
+(defn classpath
+ "Returns a sequence of File objects of the elements on CLASSPATH."
+ []
+ (map #(File. %)
+ (.split (System/getProperty "java.class.path")
+ (System/getProperty "path.separator"))))
+
+(defn classpath-directories
+ "Returns a sequence of File objects for the directories on classpath."
+ []
+ (filter #(.isDirectory %) (classpath)))
+
+(defn classpath-jarfiles
+ "Returns a sequence of JarFile objects for the JAR files on classpath."
+ []
+ (map #(JarFile. %) (filter jar/jar-file? (classpath))))
+