module Debian.Debianize.Types ( Top(..) , PackageInfo(..) , Site(..) , Server(..) , InstallFile(..) , DebType(..) , DebAction(..) ) where import Debian.Orphans () import Debian.Relation (BinPkgName) import Debian.Version (DebianVersion) import Distribution.Package (PackageName) import Prelude hiding (init, unlines, log) newtype Top = Top {unTop :: FilePath} data PackageInfo = PackageInfo { cabalName :: PackageName , devDeb :: Maybe (BinPkgName, DebianVersion) , profDeb :: Maybe (BinPkgName, DebianVersion) , docDeb :: Maybe (BinPkgName, DebianVersion) } deriving (Eq, Ord, Show) -- | Information about the web site we are packaging. data Site = Site { domain :: String -- ^ The domain name assigned to the server. -- An apache configuration will be generated to -- redirect requests from this domain to hostname:port , serverAdmin :: String -- ^ Apache ServerAdmin parameter , server :: Server -- ^ The hint to install the server job } deriving (Read, Show, Eq, Ord) -- | Information about the server we are packaging. data Server = Server { hostname :: String -- ^ Host on which the server will run , port :: Int -- ^ Port on which the server will run. -- Obviously, this must assign each and -- every server package to a different -- port. , headerMessage :: String -- ^ A comment that will be inserted to -- explain how the file was generated , retry :: String -- ^ start-stop-daemon --retry argument , serverFlags :: [String] -- ^ Extra flags to pass to the server via the init script , installFile :: InstallFile -- ^ The hint to install the server executable } deriving (Read, Show, Eq, Ord) data InstallFile = InstallFile { execName :: String -- ^ The name of the executable file , sourceDir :: Maybe FilePath -- ^ where to find it, default is dist/build// , destDir :: Maybe FilePath -- ^ where to put it, default is usr/bin/ , destName :: String -- ^ name to give installed executable } deriving (Read, Show, Eq, Ord) data DebAction = Usage | Debianize | SubstVar DebType deriving (Read, Show, Eq, Ord) -- | A redundant data type, too lazy to expunge. data DebType = Dev | Prof | Doc deriving (Eq, Ord, Read, Show)