From 7f7249f801653e0bd7fa083ed001bf3c5a3c3900 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 16 Oct 2015 15:31:18 -0400 Subject: add a LinkTarget type to disambiguate parameters of isSymlinkedTo Something about making symlinks is very confusing about which parameter is which. It perhaps doesn't help that isSymlinkedTo has the target second, while ln has it first. Let's use a type to prevent confusion. Also, simplified some properties that now use isSymlinkedTo. Since isSymlinkedTo checks the link target, these properties don't need to check themselves that the link is in place. --- src/Propellor/Property/Uwsgi.hs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'src/Propellor/Property/Uwsgi.hs') diff --git a/src/Propellor/Property/Uwsgi.hs b/src/Propellor/Property/Uwsgi.hs index c6ae880b..7de1a85a 100644 --- a/src/Propellor/Property/Uwsgi.hs +++ b/src/Propellor/Property/Uwsgi.hs @@ -6,7 +6,6 @@ import Propellor.Base import qualified Propellor.Property.File as File import qualified Propellor.Property.Apt as Apt import qualified Propellor.Property.Service as Service -import System.Posix.Files type ConfigFile = [String] @@ -15,16 +14,11 @@ type AppName = String appEnabled :: AppName -> ConfigFile -> RevertableProperty appEnabled an cf = enable disable where - enable = check test prop + enable = appVal an `File.isSymlinkedTo` appValRelativeCfg an `describe` ("uwsgi app enabled " ++ an) `requires` appAvailable an cf `requires` installed `onChange` reloaded - where - test = not <$> doesFileExist (appVal an) - prop = dir `File.isSymlinkedTo` target - target = appValRelativeCfg an - dir = appVal an disable = trivial $ File.notPresent (appVal an) `describe` ("uwsgi app disable" ++ an) `requires` installed @@ -42,8 +36,8 @@ appCfg an = "/etc/uwsgi/apps-available/" ++ an appVal :: AppName -> FilePath appVal an = "/etc/uwsgi/apps-enabled/" ++ an -appValRelativeCfg :: AppName -> FilePath -appValRelativeCfg an = "../apps-available/" ++ an +appValRelativeCfg :: AppName -> File.LinkTarget +appValRelativeCfg an = File.LinkTarget $ "../apps-available/" ++ an installed :: Property NoInfo installed = Apt.installed ["uwsgi"] -- cgit v1.3-2-g0d8e