I wanted to start using propellor in the most simple way and the requirement to have a GPG key, signed commits, propellor updating itself, and so on was way too much to start with.

So I wrote this Haskell file:


    module Main where
    
    import           Propellor
    import           Propellor.Engine
    import qualified Propellor.Property.Apt as Apt
    
    main :: IO ()
    main = mainProperties myHost
    
    myHost :: Host
    myHost = host "local" $ props
      & Apt.installed [
          "etckeeper"
        , "git"
        , "rsync"
        , "tmux"
        , "tree"
        , "unattended-upgrades"
        , "zsh"
      ]

And then used the Debian package *entr* to scp the executable to a test server and have it executed there:

    echo mytest-exe | entr scp /_ mytesthost:

and on the test host:

    echo mytest-exe | entr sudo ./mytest-exe

Maybe somebody finds this useful as a starting point to learn propellor.
