From 4d34b837d2d81c76a50e8b7f1d31c80af3238f36 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 21 Jan 2015 23:28:47 -0400 Subject: reorg --- config-joey.hs | 2 +- propellor.cabal | 2 +- src/Propellor/Property/Journald.hs | 53 ++++++++++++++++++++++++++++++ src/Propellor/Property/Systemd/Journald.hs | 53 ------------------------------ 4 files changed, 55 insertions(+), 55 deletions(-) create mode 100644 src/Propellor/Property/Journald.hs delete mode 100644 src/Propellor/Property/Systemd/Journald.hs diff --git a/config-joey.hs b/config-joey.hs index cd401657..81066983 100644 --- a/config-joey.hs +++ b/config-joey.hs @@ -25,7 +25,7 @@ import qualified Propellor.Property.Grub as Grub import qualified Propellor.Property.Obnam as Obnam import qualified Propellor.Property.Gpg as Gpg import qualified Propellor.Property.Systemd as Systemd -import qualified Propellor.Property.Systemd.Journald as Journald +import qualified Propellor.Property.Journald as Journald import qualified Propellor.Property.OS as OS import qualified Propellor.Property.HostingProvider.DigitalOcean as DigitalOcean import qualified Propellor.Property.HostingProvider.CloudAtCost as CloudAtCost diff --git a/propellor.cabal b/propellor.cabal index a0a67a8c..e1830c47 100644 --- a/propellor.cabal +++ b/propellor.cabal @@ -85,6 +85,7 @@ Library Propellor.Property.Gpg Propellor.Property.Group Propellor.Property.Grub + Propellor.Property.Journald Propellor.Property.Mount Propellor.Property.Network Propellor.Property.Nginx @@ -100,7 +101,6 @@ Library Propellor.Property.Sudo Propellor.Property.Systemd Propellor.Property.Systemd.Core - Propellor.Property.Systemd.Journald Propellor.Property.Tor Propellor.Property.User Propellor.Property.HostingProvider.CloudAtCost diff --git a/src/Propellor/Property/Journald.hs b/src/Propellor/Property/Journald.hs new file mode 100644 index 00000000..d21def0a --- /dev/null +++ b/src/Propellor/Property/Journald.hs @@ -0,0 +1,53 @@ +module Propellor.Property.Journald where +import Propellor +import qualified Propellor.Property.Systemd as Systemd +import Utility.DataUnits + +-- | Configures journald, restarting it so the changes take effect. +configured :: Systemd.Option -> String -> Property +configured option value = + Systemd.configured "/etc/systemd/journald.conf" option value + `onChange` Systemd.restarted "systemd-journald" + +-- The string is parsed to get a data size. +-- Examples: "100 megabytes" or "0.5tb" +type DataSize = String + +configuredSize :: Systemd.Option -> DataSize -> Property +configuredSize option s = case readSize dataUnits s of + Just sz -> configured option (systemdSizeUnits sz) + Nothing -> property ("unable to parse " ++ option ++ " data size " ++ s) noChange + +systemMaxUse :: DataSize -> Property +systemMaxUse = configuredSize "SystemMaxUse" + +runtimeMaxUse :: DataSize -> Property +runtimeMaxUse = configuredSize "RuntimeMaxUse" + +systemKeepFree :: DataSize -> Property +systemKeepFree = configuredSize "SystemKeepFree" + +runtimeKeepFree :: DataSize -> Property +runtimeKeepFree = configuredSize "RuntimeKeepFree" + +systemMaxFileSize :: DataSize -> Property +systemMaxFileSize = configuredSize "SystemMaxFileSize" + +runtimeMaxFileSize :: DataSize -> Property +runtimeMaxFileSize = configuredSize "RuntimeMaxFileSize" + +-- Generates size units as used in journald.conf. +systemdSizeUnits :: Integer -> String +systemdSizeUnits sz = filter (/= ' ') (roughSize cfgfileunits True sz) + where + cfgfileunits :: [Unit] + cfgfileunits = + [ Unit (p 6) "E" "exabyte" + , Unit (p 5) "P" "petabyte" + , Unit (p 4) "T" "terabyte" + , Unit (p 3) "G" "gigabyte" + , Unit (p 2) "M" "megabyte" + , Unit (p 1) "K" "kilobyte" + ] + p :: Integer -> Integer + p n = 1024^n diff --git a/src/Propellor/Property/Systemd/Journald.hs b/src/Propellor/Property/Systemd/Journald.hs deleted file mode 100644 index 978cd54d..00000000 --- a/src/Propellor/Property/Systemd/Journald.hs +++ /dev/null @@ -1,53 +0,0 @@ -module Propellor.Property.Systemd.Journald where -import Propellor -import qualified Propellor.Property.Systemd as Systemd -import Utility.DataUnits - --- | Configures journald, restarting it so the changes take effect. -configured :: Systemd.Option -> String -> Property -configured option value = - Systemd.configured "/etc/systemd/journald.conf" option value - `onChange` Systemd.restarted "systemd-journald" - --- The string is parsed to get a data size. --- Examples: "100 megabytes" or "0.5tb" -type DataSize = String - -configuredSize :: Systemd.Option -> DataSize -> Property -configuredSize option s = case readSize dataUnits s of - Just sz -> configured option (systemdSizeUnits sz) - Nothing -> property ("unable to parse " ++ option ++ " data size " ++ s) noChange - -systemMaxUse :: DataSize -> Property -systemMaxUse = configuredSize "SystemMaxUse" - -runtimeMaxUse :: DataSize -> Property -runtimeMaxUse = configuredSize "RuntimeMaxUse" - -systemKeepFree :: DataSize -> Property -systemKeepFree = configuredSize "SystemKeepFree" - -runtimeKeepFree :: DataSize -> Property -runtimeKeepFree = configuredSize "RuntimeKeepFree" - -systemMaxFileSize :: DataSize -> Property -systemMaxFileSize = configuredSize "SystemMaxFileSize" - -runtimeMaxFileSize :: DataSize -> Property -runtimeMaxFileSize = configuredSize "RuntimeMaxFileSize" - --- Generates size units as used in journald.conf. -systemdSizeUnits :: Integer -> String -systemdSizeUnits sz = filter (/= ' ') (roughSize cfgfileunits True sz) - where - cfgfileunits :: [Unit] - cfgfileunits = - [ Unit (p 6) "E" "exabyte" - , Unit (p 5) "P" "petabyte" - , Unit (p 4) "T" "terabyte" - , Unit (p 3) "G" "gigabyte" - , Unit (p 2) "M" "megabyte" - , Unit (p 1) "K" "kilobyte" - ] - p :: Integer -> Integer - p n = 1024^n -- cgit v1.2.3