From 92957b27ece2d4fb2eb4ce9121dd26ee94985b48 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 30 Mar 2014 00:08:02 -0400 Subject: cabalized and added a wrapper program --- HostProp.hs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 HostProp.hs (limited to 'HostProp.hs') diff --git a/HostProp.hs b/HostProp.hs new file mode 100644 index 00000000..821fe9ef --- /dev/null +++ b/HostProp.hs @@ -0,0 +1,37 @@ +import Property +import HostName +import qualified Property.Apt as Apt +import qualified Property.Ssh as Ssh +import qualified Property.User as User +import qualified Property.Hostname as Hostname +import qualified Property.GitHome as GitHome +import qualified Property.Reboot as Reboot + +main :: IO () +main = ensureProperties . getProperties =<< getHostName + +{- This is where the system's HostName, either as returned by uname + - or one specified on the command line is converted into a list of + - Properties for that system. -} +getProperties :: HostName -> [Property] +getProperties "clam" = + [ Apt.stdSourcesList Apt.Unstable `onChange` Apt.upgrade + , Apt.installed ["etckeeper"] + , Hostname.set "clam.kitenet.net" + , Apt.installed ["ssh"] + , Ssh.uniqueHostKeys + , Apt.installed ["git", "myrepos"] + , GitHome.installedFor "root" + , check (Ssh.hasAuthorizedKeys "root") $ + Ssh.passwordAuthentication False + , User.nonsystem "joey" + , Apt.installed ["sudo"] + , fileHasContent "/etc/sudoers" ["joey ALL=(ALL:ALL) ALL"] + , GitHome.installedFor "joey" + , Apt.removed ["exim4"] `onChange` Apt.autoRemove + , Apt.installed ["tor"] + , Apt.installed ["systemd-sysv"] `onChange` Reboot.scheduled "+10" + ] +-- add more hosts here... +--getProperties "foo" = +getProperties h = error $ "Unknown host: " ++ h ++ " (perhaps you should specify the real hostname on the command line?)" -- cgit v1.2.3