@@ -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