module Changelogged.Bump.General where import Turtle import Prelude hiding (FilePath) import Data.Text (Text) import System.Console.ANSI (Color(..)) import Changelogged.Types import Changelogged.Pure import Changelogged.Utils import Changelogged.Bump.Common -- |Generate new version based on given level and current version. generateVersion :: Level -> Text -> IO Text generateVersion lev current = return $ bump (delimited current) lev -- |Infer version from changelog. generateVersionByChangelog :: Bool -> FilePath -> Text -> IO (Maybe Text) generateVersionByChangelog True _ _ = do coloredPrint Yellow "You are bumping version with no explicit version modifiers and changelog checks. It can result in anything. Please retry.\n" return Nothing generateVersionByChangelog False changelogFile curVersion = do versionedChanges <- getChangelogEntries changelogFile case versionedChanges of Just lev -> Just <$> generateVersion lev curVersion Nothing -> do coloredPrint Yellow ("WARNING: keep old version since " <> showPath changelogFile <> " apparently does not contain any new entries.\n") return Nothing