From 51d8c2000f46b9c0a8f45ce8d927f23ef5b6193f Mon Sep 17 00:00:00 2001 From: FĂ©lix Sipma Date: Fri, 16 Oct 2015 20:40:48 +0200 Subject: convert symlink properties to File.isSymlinkedTo --- src/Propellor/Property/Nginx.hs | 3 +-- src/Propellor/Property/Prosody.hs | 3 +-- src/Propellor/Property/SiteSpecific/JoeySites.hs | 33 +++++++++++------------- src/Propellor/Property/Uwsgi.hs | 3 +-- 4 files changed, 18 insertions(+), 24 deletions(-) diff --git a/src/Propellor/Property/Nginx.hs b/src/Propellor/Property/Nginx.hs index d0d4d3a9..1bd285c7 100644 --- a/src/Propellor/Property/Nginx.hs +++ b/src/Propellor/Property/Nginx.hs @@ -20,8 +20,7 @@ siteEnabled hn cf = enable disable `onChange` reloaded where test = not <$> doesFileExist (siteVal hn) - prop = property "nginx site in place" $ makeChange $ - createSymbolicLink target dir + prop = dir `File.isSymlinkedTo` target target = siteValRelativeCfg hn dir = siteVal hn disable = trivial $ File.notPresent (siteVal hn) diff --git a/src/Propellor/Property/Prosody.hs b/src/Propellor/Property/Prosody.hs index 78a2c529..7dbfb1e1 100644 --- a/src/Propellor/Property/Prosody.hs +++ b/src/Propellor/Property/Prosody.hs @@ -22,8 +22,7 @@ confEnabled conf cf = enable disable `onChange` reloaded where test = not <$> doesFileExist (confValPath conf) - prop = property "prosody conf in place" $ makeChange $ - createSymbolicLink target dir + prop = dir `File.isSymlinkedTo` target target = confValRelativePath conf dir = confValPath conf confValRelativePath conf' = "../conf.avail" conf' <.> "cfg.lua" diff --git a/src/Propellor/Property/SiteSpecific/JoeySites.hs b/src/Propellor/Property/SiteSpecific/JoeySites.hs index 3f3205e6..25062b42 100644 --- a/src/Propellor/Property/SiteSpecific/JoeySites.hs +++ b/src/Propellor/Property/SiteSpecific/JoeySites.hs @@ -96,11 +96,8 @@ oldUseNetServer hosts = propertyList "olduse.net server" $ props & oldUseNetInstalled "oldusenet-server" & oldUseNetBackup & check (not . isSymbolicLink <$> getSymbolicLinkStatus newsspool) - (property "olduse.net spool in place" $ makeChange $ do - removeDirectoryRecursive newsspool - createSymbolicLink (datadir "news") newsspool - ) - & "/etc/news/leafnode/config" `File.hasContent` + (newsspool `File.isSymlinkedTo` (datadir "news")) + & "/etc/news/leafnode/config" `File.hasContent` [ "# olduse.net configuration (deployed by propellor)" , "expire = 1000000" -- no expiry via texpire , "server = " -- no upstream server @@ -260,7 +257,7 @@ annexWebSite origin hn uuid remotes = propertyList (hn ++" website using git-ann dir = "/srv/web/" ++ hn postupdatehook = dir ".git/hooks/post-update" setup = userScriptProperty (User "joey") setupscript - setupscript = + setupscript = [ "cd " ++ shellEscape dir , "git annex reinit " ++ shellEscape uuid ] ++ map addremote remotes ++ @@ -294,7 +291,7 @@ apachecfg hn withssl middle | withssl = vhost False ++ vhost True | otherwise = vhost False where - vhost ssl = + vhost ssl = [ "" , " ServerAdmin grue@joeyh.name" , " ServerName "++hn++":"++show port @@ -319,13 +316,13 @@ apachecfg hn withssl middle mainhttpscert :: Bool -> Apache.ConfigFile mainhttpscert False = [] -mainhttpscert True = +mainhttpscert True = [ " SSLEngine on" , " SSLCertificateFile /etc/ssl/certs/web.pem" , " SSLCertificateKeyFile /etc/ssl/private/web.pem" , " SSLCertificateChainFile /etc/ssl/certs/startssl.pem" ] - + gitAnnexDistributor :: Property HasInfo gitAnnexDistributor = combineProperties "git-annex distributor, including rsync server and signer" $ props & Apt.installed ["rsync"] @@ -352,7 +349,7 @@ downloads hosts = annexWebSite "/srv/git/downloads.git" "840760dc-08f0-11e2-8c61-576b7e66acfd" [("eubackup", "ssh://eubackup.kitenet.net/~/lib/downloads/")] `requires` Ssh.knownHost hosts "eubackup.kitenet.net" (User "joey") - + tmp :: Property HasInfo tmp = propertyList "tmp.kitenet.net" $ props & annexWebSite "/srv/git/joey/tmp.git" @@ -376,7 +373,7 @@ twitRss = combineProperties "twitter rss" $ props "./twitRss " ++ shellEscape url ++ " > " ++ shellEscape ("../" ++ desc ++ ".rss") compiled = userScriptProperty (User "joey") [ "cd " ++ dir - , "ghc --make twitRss" + , "ghc --make twitRss" ] `requires` Apt.installed [ "libghc-xml-dev" @@ -438,7 +435,7 @@ githubBackup = propertyList "github-backup box" $ props gitriddance (r, msg) = "(cd " ++ r ++ " && gitriddance " ++ shellEscape msg ++ ")" githubKeys :: Property HasInfo -githubKeys = +githubKeys = let f = "/home/joey/.github-keys" in File.hasPrivContent f anyContext `onChange` File.ownerGroup f (User "joey") (Group "joey") @@ -502,14 +499,14 @@ kiteMailServer = propertyList "kitenet.net mail server" $ props ] `onChange` Service.restarted "spamassassin" `describe` "spamd enabled" `requires` Apt.serviceInstalledRunning "cron" - + & Apt.serviceInstalledRunning "spamass-milter" -- Add -m to prevent modifying messages Subject or body. & "/etc/default/spamass-milter" `File.containsLine` "OPTIONS=\"-m -u spamass-milter -i 127.0.0.1\"" `onChange` Service.restarted "spamass-milter" `describe` "spamass-milter configured" - + & Apt.serviceInstalledRunning "amavisd-milter" & "/etc/default/amavisd-milter" `File.containsLines` [ "# Propellor deployed" @@ -629,7 +626,7 @@ kiteMailServer = propertyList "kitenet.net mail server" $ props `onChange` Postfix.dedupMainCf `onChange` Postfix.reloaded `describe` "postfix configured" - + & Apt.serviceInstalledRunning "dovecot-imapd" & Apt.serviceInstalledRunning "dovecot-pop3d" & "/etc/dovecot/conf.d/10-mail.conf" `File.containsLine` @@ -666,7 +663,7 @@ kiteMailServer = propertyList "kitenet.net mail server" $ props , "inbox-path={localhost/novalidate-cert/NoRsh}inbox" ] `describe` "pine configured to use local imap server" - + & Apt.serviceInstalledRunning "mailman" where ctx = Context "kitenet.net" @@ -816,7 +813,7 @@ legacyWebSites = propertyList "legacy web sites" $ props , "RewriteRule ^/joey/index.html http://www.kitenet.net/joey/ [R]" , "RewriteRule ^/wifi http://www.kitenet.net/wifi/ [R]" , "RewriteRule ^/wifi/index.html http://www.kitenet.net/wifi/ [R]" - + , "# Old ikiwiki filenames for kitenet.net wiki." , "rewritecond $1 !^/~" , "rewritecond $1 !^/doc/" @@ -903,7 +900,7 @@ legacyWebSites = propertyList "legacy web sites" $ props , "rewritecond $1 !.*/index$" , "rewriterule (.+).rss$ http://joeyh.name/$1/index.rss [l]" - + , "# Redirect all to joeyh.name." , "rewriterule (.*) http://joeyh.name$1 [r]" ] diff --git a/src/Propellor/Property/Uwsgi.hs b/src/Propellor/Property/Uwsgi.hs index 8beea17a..c6ae880b 100644 --- a/src/Propellor/Property/Uwsgi.hs +++ b/src/Propellor/Property/Uwsgi.hs @@ -22,8 +22,7 @@ appEnabled an cf = enable disable `onChange` reloaded where test = not <$> doesFileExist (appVal an) - prop = property "uwsgi app in place" $ makeChange $ - createSymbolicLink target dir + prop = dir `File.isSymlinkedTo` target target = appValRelativeCfg an dir = appVal an disable = trivial $ File.notPresent (appVal an) -- cgit v1.2.3