X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=Java%2FJAR%2FArchive.hs;h=a4dd02669e9a09693223f3b169312c20eccca7c3;hb=743c0f2dca8434e69cce8389630091d37c28bc25;hp=0963a156eb61250a0cdfdd19c91fb7f45ec7bcc3;hpb=368ce628bdf8a7fa772a6860aed12f00baea3906;p=hs-java.git diff --git a/Java/JAR/Archive.hs b/Java/JAR/Archive.hs index 0963a15..a4dd026 100644 --- a/Java/JAR/Archive.hs +++ b/Java/JAR/Archive.hs @@ -3,6 +3,7 @@ module Java.JAR.Archive where import qualified Codec.Archive.LibZip as Zip import Data.Binary +import Data.List import qualified Data.ByteString.Lazy as B import Java.ClassPath.Types @@ -18,8 +19,10 @@ readJAREntry jarfile path = do -- | Read all entires from JAR file readAllJAR :: FilePath -> IO [Tree CPEntry] readAllJAR jarfile = do - files <- Zip.withArchive [] jarfile $ Zip.fileNames [] - return $ mapF (NotLoadedJAR jarfile) (buildTree files) + files <- Zip.withArchive [] jarfile $ Zip.fileNames [] + return $ mapF (NotLoadedJAR jarfile) (buildTree $ filter good files) + where + good file = ".class" `isSuffixOf` file -- | Read one class from JAR file readFromJAR :: FilePath -> FilePath -> IO (Class Direct)