haven

Safe HaskellNone
LanguageHaskell2010

Main

Synopsis

Documentation

main :: IO () Source #

Takes multiple maven package descriptions as command line arguments and finds the dependencies of those maven packages. Package descriptions should be of the form groupid:artifactid:version

data Maven Source #

Instances
Eq Maven Source # 
Instance details

Defined in Main

Methods

(==) :: Maven -> Maven -> Bool #

(/=) :: Maven -> Maven -> Bool #

Ord Maven Source # 
Instance details

Defined in Main

Methods

compare :: Maven -> Maven -> Ordering #

(<) :: Maven -> Maven -> Bool #

(<=) :: Maven -> Maven -> Bool #

(>) :: Maven -> Maven -> Bool #

(>=) :: Maven -> Maven -> Bool #

max :: Maven -> Maven -> Maven #

min :: Maven -> Maven -> Maven #

Read Maven Source # 
Instance details

Defined in Main

Show Maven Source # 
Instance details

Defined in Main

Methods

showsPrec :: Int -> Maven -> ShowS #

show :: Maven -> String #

showList :: [Maven] -> ShowS #

toNix :: MavenNix -> String Source #

Create a nix record for a hashed maven package

getRepo :: (MonadReader HavenEnv m, MonadPlus m) => String -> m String Source #

Gets the repo with the given id, calling empty when it's not present

getArtifactFile :: (MonadIO m, MonadPlus m, MonadReader HavenEnv m) => Maven -> String -> String -> m ByteString Source #

Gets a given artifact for a Maven and hashes it. It will first check the local m2 dir, and then it will try to download it from the online repo. If both fail, an error is logged to stderr, and empty is called.

fetch :: (MonadIO m, MonadReader HavenEnv m) => String -> Maven -> MaybeT m [MavenNix] Source #

Hash a particular maven package's .pom and .jar files and parse the .pom file as xml

findChildrenByTagName :: String -> Element -> [Element] Source #

Retrieve an XML Element's children by tag name