cartel-0.8.0.0: lib/Cartel/Defaults.hs
-- | Default values for the data types in "Cartel.Ast". These
-- defaults are genrally filled in with blank values. Use these
-- default values where you can; by doing so you help future-proof
-- your code. Use the default as a starting point and fill in the
-- values that you need.
module Cartel.Defaults where
import qualified Cartel.Ast as A
-- | A default 'A.Properties'. 'A.prCabalVersion' is @(1, 14)@ to
-- specify Cabal version 1.14; 'A.prBuildType' is 'A.Simple', and
-- 'A.prLicense' is 'A.BSD3'. All other items are either the empty
-- 'String' or the empty list, including the 'A.prVersion', which is
-- left empty.
properties :: A.Properties
properties = A.Properties
{ A.prName = ""
, A.prVersion = A.Version []
, A.prCabalVersion = (1, 14)
, A.prBuildType = A.Simple
, A.prLicense = A.BSD3
, A.prLicenseFile = ""
, A.prLicenseFiles = []
, A.prCopyright = ""
, A.prAuthor = ""
, A.prMaintainer = ""
, A.prStability = ""
, A.prHomepage = ""
, A.prBugReports = ""
, A.prPackageUrl = ""
, A.prSynopsis = ""
, A.prDescription = []
, A.prCategory = ""
, A.prTestedWith = []
, A.prDataFiles = []
, A.prDataDir = ""
, A.prExtraSourceFiles = []
, A.prExtraDocFiles = []
, A.prExtraTmpFiles = []
}
-- | A default 'A.Cabal'. 'properties' is used for 'A.cProperties',
-- and 'A.cLibrary' is 'Nothing'; all other lists are empty.
cabal :: A.Cabal
cabal = A.Cabal
{ A.cProperties = properties
, A.cRepositories = []
, A.cFlags = []
, A.cLibrary = Nothing
, A.cExecutables = []
, A.cTestSuites = []
, A.cBenchmarks = []
}
-- | A default 'A.Repository'. You must supply the VCS type,
-- information about the kind of repository ('A.Head' or 'A.This'),
-- and the repository location. 'A.repoBranch' and 'A.repoSubdir'
-- are empty.
repository
:: A.Vcs
-- ^ Type of VCS in use
-> Maybe String
-- ^ To use the @this@ repo kind, use Just String, where the
-- String is the tag corresponding to the current branch. To use
-- the @head@ repository kind, use Nothing.
-> String
-- ^ Repo location
-> A.Repository
repository v ms l = A.Repository
{ A.repoVcs = v
, A.repoKind = maybe A.Head (const A.This) ms
, A.repoLocation = l
, A.repoBranch = ""
, A.repoTag = maybe "" id ms
, A.repoSubdir = ""
}
-- | A default 'A.Flag'. 'A.flName' and 'A.flDescription' are
-- empty; 'A.flDefault' is 'True', and 'A.flManual' is 'False'.
flag :: A.Flag
flag = A.Flag
{ A.flName = ""
, A.flDescription = ""
, A.flDefault = True
, A.flManual = False
}