stackage-query 0.1.1 → 0.1.2
raw patch · 3 files changed
+20/−26 lines, 3 files
Files
- ChangeLog.md +9/−0
- Main.hs +10/−25
- stackage-query.cabal +1/−1
ChangeLog.md view
@@ -1,5 +1,10 @@ # Revision history for stackage-query +## 0.1.2 -- 2017-09-11+* drop update command+* always update to latest Stackage data from git+* error if no package found+ ## 0.1.1 -- 2017-07-02 * new commands for `constraints`, `dependencies`, `executables`, and `modules`@@ -13,3 +18,7 @@ * initial release on Hackage with commands to query package versions, reverse deps, Stackage owners, latest snapshots, and no of consumers.++# Local Variables:+# mode: text+# End:
Main.hs view
@@ -78,7 +78,6 @@ | Executables Snapshot Pkg | Modules Snapshot Pkg | Latest Project- | Update Project consumeParser :: Parser ConsumerOption consumeParser = ConsumerOption <$> option auto@@ -120,9 +119,6 @@ command "latest" (info (Latest <$> parseProject) (progDesc "Latest snap for PROJECT (nightly or lts)")) <>- command "update" (info (Update <$> parseProject)- (progDesc "git update PROJECT (nightly or lts)"))- <> command "ghc" (info (Ghc <$> parseSnap) (progDesc "GHC version for SNAP")) <>@@ -166,7 +162,6 @@ Executables s pkg -> buildplanExecutables s pkg Modules s pkg -> buildplanModules s pkg Latest prj -> buildplanLatest prj- Update prj -> buildplanUpdate prj versionOption = infoOption@@ -196,15 +191,15 @@ unless haveProj $ cloneProject configDir project return projectDir -findBuildPlanYaml :: Bool -> Snapshot -> IO FilePath-findBuildPlanYaml update snap = do+findBuildPlanYaml :: Snapshot -> IO FilePath+findBuildPlanYaml snap = do dir <- getProjectDir $ snapProject snap- when update $ updateProject False dir- findSnap True dir snap+ updateProject False dir+ findSnap dir snap getBuildPlan :: Snapshot -> IO BuildPlan getBuildPlan snap = do- ebp <- findBuildPlanYaml False snap >>= decodeFileEither+ ebp <- findBuildPlanYaml snap >>= decodeFileEither either (error . prettyPrintParseException) return ebp snapProject :: Snapshot -> Project@@ -213,17 +208,11 @@ snapProject (LtsMajor _) = LTS snapProject _ = Nightly -findSnap :: Bool -> FilePath -> Snapshot -> IO FilePath-findSnap update dir snap = do+findSnap :: FilePath -> Snapshot -> IO FilePath+findSnap dir snap = do fs <- sortProject . filter (show snap `isPrefixOf`) <$> getDirectoryContents dir if null fs- then- if update- then do- updateProject False dir- findSnap False dir snap- else- error $ "Snap " ++ show snap ++ " not found"+ then error $ "Snap " ++ show snap ++ " not found" else return (dir </> last fs) where sortProject :: [String] -> [String]@@ -323,7 +312,7 @@ evalPackageBuildPlan snap pkg expr = do bp <- getBuildPlan snap let mpkgplan = Data.Map.Strict.lookup (PackageName pkg) $ bpPackages bp- putStrLn $ maybe "Package not found" expr mpkgplan+ putStrLn $ maybe (error "Package not found") expr mpkgplan buildplanPackage :: Snapshot -> Pkg -> IO () buildplanPackage snap pkg =@@ -343,12 +332,8 @@ buildplanLatest :: Project -> IO () buildplanLatest prj = do- latest <- findBuildPlanYaml True (projectToSnap prj)+ latest <- findBuildPlanYaml (projectToSnap prj) putStrLn $ takeBaseName latest--buildplanUpdate :: Project -> IO ()-buildplanUpdate project =- getProjectDir project >>= updateProject True buildplanConstraints :: Snapshot -> Pkg -> IO () buildplanConstraints snap pkg =
stackage-query.cabal view
@@ -1,5 +1,5 @@ name: stackage-query-version: 0.1.1+version: 0.1.2 synopsis: Stackage package query description: Tool to query package metadata in Stackage license: MIT