git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Add versionTag to psc-publish output

This allows us to get the README via the Github API on the Pursuit server.

commitf5e790d5e9338cce3e4d05c7fde4b8c0f836b0f9 authorHarry Garrood <harry@garrood.me> dateThu 7 May 2015, 13:35 (11 years ago) parent45de2a5
2 files changed+16−11
psc-publish/Main.hs+12−11 src/Language/PureScript/Docs/Types.hs+4
psc-publish/Main.hs+12−11
@@ -97,12 +97,13 @@ preparePackage' = do
9797
9898 pkgMeta <- liftIO (Bower.decodeFile "bower.json")
9999 >>= flip catchLeft (userError . CouldntParseBowerJSON)
100− pkgVersion <- getVersionFromGitTag
101− pkgGithub <- getBowerInfo pkgMeta
102− (pkgBookmarks, pkgModules) <- getModulesAndBookmarks
100+ (pkgVersionTag, pkgVersion) <- getVersionFromGitTag
101+ pkgGithub <- getBowerInfo pkgMeta
102+ (pkgBookmarks, pkgModules) <- getModulesAndBookmarks
103103
104− let declaredDeps = map fst (bowerDependencies pkgMeta ++ bowerDevDependencies pkgMeta)
105− pkgResolvedDependencies <- getResolvedDependencies declaredDeps
104+ let declaredDeps = map fst (bowerDependencies pkgMeta ++
105+ bowerDevDependencies pkgMeta)
106+ pkgResolvedDependencies <- getResolvedDependencies declaredDeps
106107
107108 let pkgUploader = D.NotYetKnown
108109
@@ -117,19 +118,19 @@ getModulesAndBookmarks = do
117118 renderModules bookmarks modules =
118119 return (bookmarks, map D.renderModule modules)
119120
120−getVersionFromGitTag :: PrepareM Version
121+getVersionFromGitTag :: PrepareM (String, Version)
121122getVersionFromGitTag = do
122123 out <- readProcess' "git" ["tag", "--list", "--points-at", "HEAD"] ""
123− let vs = map clean (lines out)
124− case mapMaybe D.parseVersion' vs of
124+ let vs = map trimWhitespace (lines out)
125+ case mapMaybe parseMay vs of
125126 [] -> userError TagMustBeCheckedOut
126127 [x] -> return x
127− xs -> userError (AmbiguousVersions xs)
128+ xs -> userError (AmbiguousVersions (map snd xs))
128129 where
129− clean =
130− trimWhitespace >>> dropPrefix "v"
131130 trimWhitespace =
132131 dropWhile isSpace >>> reverse >>> dropWhile isSpace >>> reverse
132+ parseMay str =
133+ (str,) <$> D.parseVersion' (dropPrefix "v" str)
133134 dropPrefix prefix str =
134135 fromMaybe str (stripPrefix prefix str)
135136
src/Language/PureScript/Docs/Types.hs+4
@@ -38,6 +38,7 @@ import Language.PureScript.Docs.RenderedCode as ReExports
3838data Package a = Package
3939 { pkgMeta :: PackageMeta
4040 , pkgVersion :: Version
41+ , pkgVersionTag :: String
4142 , pkgModules :: [RenderedModule]
4243 , pkgBookmarks :: [Bookmark]
4344 , pkgResolvedDependencies :: [(PackageName, Version)]
@@ -56,6 +57,7 @@ verifyPackage :: GithubUser -> UploadedPackage -> VerifiedPackage
5657verifyPackage verifiedUser Package{..} =
5758 Package pkgMeta
5859 pkgVersion
60+ pkgVersionTag
5961 pkgModules
6062 pkgBookmarks
6163 pkgResolvedDependencies
@@ -156,6 +158,7 @@ asPackage :: (forall e. Parse e a) -> Parse PackageError (Package a)
156158asPackage uploader =
157159 Package <$> key "packageMeta" asPackageMeta .! ErrorInPackageMeta
158160 <*> key "version" asVersion
161+ <*> key "versionTag" asString
159162 <*> key "modules" (eachInArray asRenderedModule)
160163 <*> key "bookmarks" asBookmarks .! ErrorInPackageMeta
161164 <*> key "resolvedDependencies" asResolvedDependencies
@@ -263,6 +266,7 @@ instance A.ToJSON a => A.ToJSON (Package a) where
263266 A.object $
264267 [ "packageMeta" .= pkgMeta
265268 , "version" .= showVersion pkgVersion
269+ , "versionTag" .= pkgVersionTag
266270 , "modules" .= pkgModules
267271 , "bookmarks" .= map (fmap (first P.runModuleName)) pkgBookmarks
268272 , "resolvedDependencies" .= assocListToJSON (T.pack . runPackageName)