diff options
| author | Joey Hess <joey@kitenet.net> | 2014-03-30 00:08:02 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-03-30 00:08:02 -0400 |
| commit | 92957b27ece2d4fb2eb4ce9121dd26ee94985b48 (patch) | |
| tree | c25c4dbd5d497958ba011ad7382ab92fc3cc8f45 /HostProp.hs | |
| parent | 0ab0216d0b400fae78a6a6916ef9f82ed31dc0fa (diff) | |
cabalized and added a wrapper program
Diffstat (limited to 'HostProp.hs')
| -rw-r--r-- | HostProp.hs | 37 |
1 files changed, 37 insertions, 0 deletions
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?)" |
