From a1aa9ddd72dfdec47399f29319f821f542906365 Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 4 Nov 2014 00:00:40 +0100 Subject: mv **.hs src/ --- CGroup/Types.hs | 51 --------------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 CGroup/Types.hs (limited to 'CGroup/Types.hs') diff --git a/CGroup/Types.hs b/CGroup/Types.hs deleted file mode 100644 index 98422f3..0000000 --- a/CGroup/Types.hs +++ /dev/null @@ -1,51 +0,0 @@ --- | --- Module: CGroup.Types --- Copyright: (c) 2014 Tomislav Viljetić --- License: BSD3 --- Maintainer: Tomislav Viljetić --- - -module CGroup.Types - ( - -- * CGroup - CGroup - , cgroup - , cgroupPath - -- * Other types - , ProcessID - ) where - -import Data.Monoid -import qualified System.FilePath as FP - - --- | A 'CGroup' is defined by two 'FilePath's, a mount point and a cgroup --- name. The mount point specifies where the cgroup hierarchy is mounted. --- The cgroup name is a directory, relative to the mount point. -data CGroup = CGroup { mountPoint, cgroupName :: FilePath } - deriving Show - - --- | Smart constructor. Takes a mount point and a cgroup name. --- It will return 'Nothing' if the cgroup could point outside the mount point, --- i.e. if the cgroup name is an absolute path, or contains @".."@. -cgroup :: FilePath -> FilePath -> Maybe CGroup -cgroup mp0 cgn0 - | ".." `elem` parts = Nothing - | FP.isAbsolute cgn = Nothing - | otherwise = Just CGroup { mountPoint = mp, cgroupName = cgn } - where - mp = normaliseMountPoint mp0 - cgn = normaliseCGroupName cgn0 - parts = FP.splitDirectories cgn - normaliseMountPoint = FP.addTrailingPathSeparator . FP.normalise - normaliseCGroupName = FP.dropTrailingPathSeparator . FP.normalise - - --- | Path of a cgroup's tasks file. -cgroupPath :: CGroup -> FilePath -cgroupPath CGroup { mountPoint = mp, cgroupName = cgn } = - mp <> cgn - - -type ProcessID = Int -- cgit v1.2.3