anchor.diff:  #!/usr/bin/env escript
   %% -*- erlang -*-
  -%%! -name riak_demo@127.0.0.1 -pa ebin
  +%%! -name riak_demo@127.0.0.1 -pa ebin -setcookie xyzzy
   main([ConfigFile]) ->
       case file:consult(ConfigFile) of
           {ok, Config} ->
  -            run_demo(proplists:get_value(riak_hostname, Config),
  -                     proplists:get_value(doorbell_port, Config),
  +            run_demo(proplists:get_value(riak_nodename, Config),
  +                     proplists:get_value(riak_hostname, Config),
                        proplists:get_value(riak_cookie, Config));
           Error ->
               io:format("Error: could not open config file: ~p~n", [Error]),
  
positive.code:     io:format("usage: riak_demo.escript CONFIG_FILENAME~n"),
      halt(1).
  
  run_demo(Hostname, Port, Cookie) when is_list(Hostname),
                                        is_integer(Port),
                                        is_atom(Cookie) ->
      io:format("Attempting to connect to ~s:~p with cookie ~p...~n",
                [Hostname, Port, Cookie]),
      case riak:client_connect(Hostname, Port, Cookie) of
          {ok, Client} ->
              io:format("Connected successfully~n"),
              continue_demo(Client);
          Error ->
              io:format("Error: failed to connect to Riak cluster: ~p", [Error])
      end;
  run_demo(Hostname, Port, Cookie) ->
      io:format("Error: invalid configuration file:~n"),
      if is_list(Hostname) -> ok;
         true -> io:format("  riak_hostname must be a list (ex. \"127.0.0.1\")~n")
      end,
      if is_integer(Port) -> ok;
         true -> io:format("  doorbell_port must be an integer (ex. 9000)~n")
      end,
      if is_atom(Cookie) -> ok;
         true -> io:format("  riak_cookie must be an atom (ex. 'riak_cookie')~n")
  
negative.code:     usage().
  
  continue_demo(Client) ->
      io:format("Looking for pre-existing object at {<<\"riak_demo\">>, <<\"demo\">>}...~n"),
      WrittenValue =
          case Client:get(<<"riak_demo">>, <<"demo">>, 1) of
              {error, notfound} ->
                  io:format("  No pre-existing object found, creating new~n"),
                  demo_write(Client, riak_object:new(<<"riak_demo">>, <<"demo">>, undefined));
              {ok, Object} ->
                  io:format("  Pre-existing object found, modifying~n"),
                  demo_write(Client, Object);
              Error ->
                  io:format("Error: request for {<<\"riak_demo\">>, <<\"demo\">>} failed: ~p~n",
                            [Error]),
                  halt(1)
          end,
  