anchor.diff: -%% @doc this module takes care of running a plugin in an environment and
  -%% controlling and validating its results.
  +%% @doc this module takes care of running a plugin and controlling and
  +%% validating its results.
   %% It is implemented as a gen_server so that each run of a plugin has a
   %% corresponding process in the VM.
   -module(watts_plugin_runner).
  
positive.code:       params => Params}.
  
  
  %% @doc create the command to execute and the environment
  -spec create_cmd_and_env(binary(), binary(), boolean())
                          -> {string(), undefined | binary()}.
  create_cmd_and_env(Cmd, EncJson, false) ->
      {binary_to_list(<< Cmd/binary, <<" ">>/binary, EncJson/binary >>),
       undefined};
  create_cmd_and_env(Cmd, EncJson, true) ->
      {binary_to_list(Cmd), EncJson}.
  
  
  
negative.code:                    true -> true;
                     _    -> false
                 end,
      {CmdLine, CmdStdin} = create_cmd_and_stdin(Cmd, EncodedJson, UseStdin),
      % marcus: this is useful for logging!!
      lager:debug("runner ~p: the command line is (parameter in base64url): ~p. CmdStdin: ~p",
                  [self(), CmdLine, CmdStdin]),
  