import qualified Codec.Archive.LibZip as Zip
import Data.Binary
+import Data.List
import qualified Data.ByteString.Lazy as B
import Java.ClassPath.Types
-- | 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)