freckle-app-1.1.0.0: Haskell application toolkit used at Freckle
Safe HaskellNone
LanguageHaskell2010

Freckle.App.Version

Description

Facilities for inferring an application version

Various inputs are checked: files written during a docker build, git information, or falling back to an unknown version. This is useful for Bugsnag reports, client age comparison, etc.

Synopsis

Documentation

data AppVersion Source #

Constructors

AppVersion 

Instances

Instances details
Eq AppVersion Source # 
Instance details

Defined in Freckle.App.Version

Show AppVersion Source # 
Instance details

Defined in Freckle.App.Version

HasAppVersion AppVersion Source # 
Instance details

Defined in Freckle.App.Bugsnag

getAppVersion :: MonadUnliftIO m => m AppVersion Source #

Attempt to infer an AppVersion

  • If files exist under /app-version they ar read, otherwise
  • If we're in a Git repository commit information is used, otherwise
  • An Unknown version as of the current time is returned

tryGetAppVersion :: MonadUnliftIO m => FilePath -> m (Either [String] AppVersion) Source #

A more testable version of getAppVersion

  • Reports what didn't work in Left
  • Accepts a parent path, for file-system version information