aboutsummaryrefslogtreecommitdiff
path: root/modules/jar/src
diff options
context:
space:
mode:
authorStuart Sierra <mail@stuartsierra.com>2010-08-07 16:41:53 -0400
committerStuart Sierra <mail@stuartsierra.com>2010-08-07 16:41:53 -0400
commita6a92b9b3d2bfd9a56e1e5e9cfba706d1aeeaae5 (patch)
treef1f3da9887dc2dc557df3282b0bcbd4d701ec593 /modules/jar/src
parente7930c85290f77815cdb00a60604feedfa2d0194 (diff)
Split all namespaces into sub-modules.
* Examples and tests have not been copied over. * Clojure test/compile phases are commented out in parent POM. * May require installing parent POM before full build.
Diffstat (limited to 'modules/jar/src')
-rw-r--r--modules/jar/src/main/clojure/clojure/contrib/jar.clj35
1 files changed, 35 insertions, 0 deletions
diff --git a/modules/jar/src/main/clojure/clojure/contrib/jar.clj b/modules/jar/src/main/clojure/clojure/contrib/jar.clj
new file mode 100644
index 00000000..df471f27
--- /dev/null
+++ b/modules/jar/src/main/clojure/clojure/contrib/jar.clj
@@ -0,0 +1,35 @@
+;;; jar.clj: utilities for working with Java JAR files
+
+;; 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
+ ^{:author "Stuart Sierra",
+ :doc "Utilities for working with Java JAR files"}
+ clojure.contrib.jar
+ (:import (java.io File)
+ (java.util.jar JarFile)))
+
+(defn jar-file?
+ "Returns true if file is a normal file with a .jar or .JAR extension."
+ [^File file]
+ (and (.isFile file)
+ (or (.endsWith (.getName file) ".jar")
+ (.endsWith (.getName file) ".JAR"))))
+
+(defn filenames-in-jar
+ "Returns a sequence of Strings naming the non-directory entries in
+ the JAR file."
+ [^JarFile jar-file]
+ (map #(.getName %)
+ (filter #(not (.isDirectory %))
+ (enumeration-seq (.entries jar-file)))))