propellor-5.3.2: property-based host configuration management in haskell

Safe HaskellNone
LanguageHaskell98

Propellor.Types.OS

Synopsis

Documentation

data System Source #

High level description of a operating system.

Instances

Eq System Source # 

Methods

(==) :: System -> System -> Bool

(/=) :: System -> System -> Bool

Show System Source # 

Methods

showsPrec :: Int -> System -> ShowS

show :: System -> String

showList :: [System] -> ShowS

data Distribution Source #

Constructors

Debian DebianKernel DebianSuite 
Buntish Release

A well-known Debian derivative founded by a space tourist. The actual name of this distribution is not used in Propellor per http://joeyh.name/blog/entry/trademark_nonsense/

ArchLinux 
FreeBSD FreeBSDRelease 

Instances

Eq Distribution Source # 

Methods

(==) :: Distribution -> Distribution -> Bool

(/=) :: Distribution -> Distribution -> Bool

Show Distribution Source # 

Methods

showsPrec :: Int -> Distribution -> ShowS

show :: Distribution -> String

showList :: [Distribution] -> ShowS

data TargetOS Source #

Properties can target one or more OS's; the targets are part of the type of the property, so need to be kept fairly simple.

Instances

Eq TargetOS Source # 

Methods

(==) :: TargetOS -> TargetOS -> Bool

(/=) :: TargetOS -> TargetOS -> Bool

Ord TargetOS Source # 

Methods

compare :: TargetOS -> TargetOS -> Ordering

(<) :: TargetOS -> TargetOS -> Bool

(<=) :: TargetOS -> TargetOS -> Bool

(>) :: TargetOS -> TargetOS -> Bool

(>=) :: TargetOS -> TargetOS -> Bool

max :: TargetOS -> TargetOS -> TargetOS

min :: TargetOS -> TargetOS -> TargetOS

Show TargetOS Source # 

Methods

showsPrec :: Int -> TargetOS -> ShowS

show :: TargetOS -> String

showList :: [TargetOS] -> ShowS

type EqT TargetOS OSDebian OSDebian Source # 
type EqT TargetOS OSDebian OSBuntish Source # 
type EqT TargetOS OSDebian OSArchLinux Source # 
type EqT TargetOS OSDebian OSFreeBSD Source # 
type EqT TargetOS OSBuntish OSDebian Source # 
type EqT TargetOS OSBuntish OSBuntish Source # 
type EqT TargetOS OSBuntish OSArchLinux Source # 
type EqT TargetOS OSBuntish OSFreeBSD Source # 
type EqT TargetOS OSArchLinux OSDebian Source # 
type EqT TargetOS OSArchLinux OSBuntish Source # 
type EqT TargetOS OSArchLinux OSArchLinux Source # 
type EqT TargetOS OSArchLinux OSFreeBSD Source # 
type EqT TargetOS OSFreeBSD OSDebian Source # 
type EqT TargetOS OSFreeBSD OSBuntish Source # 
type EqT TargetOS OSFreeBSD OSArchLinux Source # 
type EqT TargetOS OSFreeBSD OSFreeBSD Source # 

data DebianKernel Source #

Most of Debian ports are based on Linux. There also exist hurd-i386, kfreebsd-i386, kfreebsd-amd64 ports

Constructors

Linux 
KFreeBSD 
Hurd 

Instances

Eq DebianKernel Source # 

Methods

(==) :: DebianKernel -> DebianKernel -> Bool

(/=) :: DebianKernel -> DebianKernel -> Bool

Show DebianKernel Source # 

Methods

showsPrec :: Int -> DebianKernel -> ShowS

show :: DebianKernel -> String

showList :: [DebianKernel] -> ShowS

data DebianSuite Source #

Debian has several rolling suites, and a number of stable releases, such as Stable "stretch".

Instances

Eq DebianSuite Source # 

Methods

(==) :: DebianSuite -> DebianSuite -> Bool

(/=) :: DebianSuite -> DebianSuite -> Bool

Show DebianSuite Source # 

Methods

showsPrec :: Int -> DebianSuite -> ShowS

show :: DebianSuite -> String

showList :: [DebianSuite] -> ShowS

data FreeBSDRelease Source #

FreeBSD breaks their releases into Production and Legacy.

Instances

Eq FreeBSDRelease Source # 
Show FreeBSDRelease Source # 

Methods

showsPrec :: Int -> FreeBSDRelease -> ShowS

show :: FreeBSDRelease -> String

showList :: [FreeBSDRelease] -> ShowS

data FBSDVersion Source #

Constructors

FBSD101 
FBSD102 
FBSD093 

Instances

Eq FBSDVersion Source # 

Methods

(==) :: FBSDVersion -> FBSDVersion -> Bool

(/=) :: FBSDVersion -> FBSDVersion -> Bool

Show FBSDVersion Source # 

Methods

showsPrec :: Int -> FBSDVersion -> ShowS

show :: FBSDVersion -> String

showList :: [FBSDVersion] -> ShowS

IsString FBSDVersion Source # 

Methods

fromString :: String -> FBSDVersion

ConfigurableValue FBSDVersion Source # 

Methods

val :: FBSDVersion -> String Source #

type Release = String Source #

data Architecture Source #

Many of these architecture names are based on the names used by Debian, with a few exceptions for clarity.

Constructors

X86_64

64 bit Intel, called "amd64" in Debian

X86_32

32 bit Intel, called "i386" in Debian

ARMHF 
ARMEL 
PPC 
PPC64 
SPARC 
SPARC64 
MIPS 
MIPSEL 
MIPS64EL 
SH4 
IA64

Itanium

S390 
S390X 
ALPHA 
HPPA 
M68K 
ARM64 
X32

New Linux ABI for 64 bit CPUs using 32-bit integers. Not widely used.

Instances

Eq Architecture Source # 

Methods

(==) :: Architecture -> Architecture -> Bool

(/=) :: Architecture -> Architecture -> Bool

Show Architecture Source # 

Methods

showsPrec :: Int -> Architecture -> ShowS

show :: Architecture -> String

showList :: [Architecture] -> ShowS

type HostName = String #

type UserName = String Source #

newtype User Source #

Constructors

User UserName 

Instances

Eq User Source # 

Methods

(==) :: User -> User -> Bool

(/=) :: User -> User -> Bool

Ord User Source # 

Methods

compare :: User -> User -> Ordering

(<) :: User -> User -> Bool

(<=) :: User -> User -> Bool

(>) :: User -> User -> Bool

(>=) :: User -> User -> Bool

max :: User -> User -> User

min :: User -> User -> User

Show User Source # 

Methods

showsPrec :: Int -> User -> ShowS

show :: User -> String

showList :: [User] -> ShowS

ConfigurableValue User Source # 

Methods

val :: User -> String Source #

newtype Group Source #

Constructors

Group String 

Instances

Eq Group Source # 

Methods

(==) :: Group -> Group -> Bool

(/=) :: Group -> Group -> Bool

Ord Group Source # 

Methods

compare :: Group -> Group -> Ordering

(<) :: Group -> Group -> Bool

(<=) :: Group -> Group -> Bool

(>) :: Group -> Group -> Bool

(>=) :: Group -> Group -> Bool

max :: Group -> Group -> Group

min :: Group -> Group -> Group

Show Group Source # 

Methods

showsPrec :: Int -> Group -> ShowS

show :: Group -> String

showList :: [Group] -> ShowS

ConfigurableValue Group Source # 

Methods

val :: Group -> String Source #

userGroup :: User -> Group Source #

Makes a Group with the same name as the User.

newtype Port Source #

Constructors

Port Int 

Instances

Eq Port Source # 

Methods

(==) :: Port -> Port -> Bool

(/=) :: Port -> Port -> Bool

Ord Port Source # 

Methods

compare :: Port -> Port -> Ordering

(<) :: Port -> Port -> Bool

(<=) :: Port -> Port -> Bool

(>) :: Port -> Port -> Bool

(>=) :: Port -> Port -> Bool

max :: Port -> Port -> Port

min :: Port -> Port -> Port

Show Port Source # 

Methods

showsPrec :: Int -> Port -> ShowS

show :: Port -> String

showList :: [Port] -> ShowS

ConfigurableValue Port Source # 

Methods

val :: Port -> String Source #

Publishable Port Source # 

Methods

toPublish :: Port -> String

Publishable (Bound Port) Source # 

Methods

toPublish :: Bound Port -> String

Publishable (Bound Port) Source # 

Methods

toPublish :: Bound Port -> String

Publishable (Proto, Bound Port) Source # 

Methods

toPublish :: (Proto, Bound Port) -> String