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

Safe HaskellNone
LanguageHaskell98

Propellor.Property.Parted

Contents

Synopsis

Types

data TableType Source #

Types of partition tables supported by parted.

Constructors

MSDOS 
GPT 
AIX 
AMIGA 
BSD 
DVH 
LOOP 
MAC 
PC98 
SUN 

partTableSize :: PartTable -> ByteSize Source #

Gets the total size of the disk specified by the partition table.

data Partition Source #

A partition on the disk.

Constructors

Partition 

Fields

mkPartition :: Fs -> PartSize -> Partition Source #

Makes a Partition with defaults for non-important values.

data Fs Source #

Filesystems etc that can be used for a partition.

Constructors

EXT2 
EXT3 
EXT4 
BTRFS 
REISERFS 
XFS 
FAT 
VFAT 
NTFS 
LinuxSwap 

Instances

Eq Fs Source # 

Methods

(==) :: Fs -> Fs -> Bool #

(/=) :: Fs -> Fs -> Bool #

Show Fs Source # 

Methods

showsPrec :: Int -> Fs -> ShowS #

show :: Fs -> String #

showList :: [Fs] -> ShowS #

PartedVal Fs Source # 

Methods

pval :: Fs -> String Source #

newtype PartSize Source #

All partition sizing is done in megabytes, so that parted can automatically lay out the partitions.

Note that these are SI megabytes, not mebibytes.

Constructors

MegaBytes Integer 

toPartSize :: ByteSize -> PartSize Source #

Rounds up to the nearest MegaByte.

type MkfsOpts = [String] Source #

Options passed to a mkfs.* command when making a filesystem.

Eg, ["-m0"]

data PartType Source #

Type of a partition.

Constructors

Primary 
Logical 
Extended 

Properties

partitioned :: Eep -> FilePath -> PartTable -> Property DebianLike Source #

Partitions a disk using parted, and formats the partitions.

The FilePath can be a block device (eg, /dev/sda), or a disk image file.

This deletes any existing partitions in the disk! Use with EXTREME caution!

parted :: Eep -> FilePath -> [String] -> Property (DebianLike + ArchLinux) Source #

Runs parted on a disk with the specified parameters.

Parted is run in script mode, so it will never prompt for input. It is asked to use cylinder alignment for the disk.

installed :: Property (DebianLike + ArchLinux) Source #

Gets parted installed.

PartSpec combinators

calcPartTable :: DiskSize -> TableType -> [PartSpec DiskPart] -> PartTable Source #

Calculate a partition table, for a given size of disk.

For example:

	calcPartTable (DiskSize (1024 * 1024 * 1024 * 100)) MSDOS
 		[ partition EXT2 `mountedAt` "/boot"
 			`setSize` MegaBytes 256
 			`setFlag` BootFlag
		, partition EXT4 `mountedAt` "/"
			`useDisk` RemainingSpace
		]

newtype DiskSize Source #

Size of a disk, in bytes.

Constructors

DiskSize ByteSize 

useDiskSpace :: PartSpec DiskPart -> DiskSpaceUse -> PartSpec DiskPart Source #

Make a partition use some percentage of the size of the disk (less all fixed size partitions), or the remaining space in the disk.