struct
type t = {
host: Host.t;
action: Program.t;
} [@@deriving yojson]
let shell ?(host=Host.tmp_on_localhost) s = { host; action = `Shell_command s}
let program ?(host=Host.tmp_on_localhost) action = { host; action}
let get_host t = t.host
let log {host; action} =
Log.(s "Action: " % Program.log action
% s " on " % s (Host.to_string_hum host))
let to_string_hum c = Log.to_long_string (log c)
end