anchor.diff:  %%%===================================================================
   
   ip() ->
  -    case application:get_env(bookshelf, ip) of
  -        undefined ->
  -            [{ip, "127.0.0.1"}];
  -        {ok, Ip} ->
  -            [{ip, Ip}]
  -    end.
  +    {ip, envy:get(bookshelf, ip, "127.0.0.1", string)}.
   
   reset_dispatch() ->
       [{dispatch, Dispatch}] = dispatch(),
  
positive.code:     "/tmp/".
  -else.
  disk_store() ->
      case application:get_env(bookshelf, disk_store) of
          undefined ->
              error({missing_config, {bookshelf, disk_store}});
          {ok, Path} when is_list(Path) ->
              case ends_with($/, Path) of
                  true ->
                      Path;
  
negative.code:                  {[], bksw_wm_index, Config}]}].
  
  port() ->
      {port, envy:get(bookshelf, port, 4321, positive_integer)}.
  
  keys() ->
      case envy:get(bookshelf, keys, undefined, any) of
          undefined ->
              error({missing_config, {bookshelf, keys}});
          {AWSAccessKey, SecretKey} ->
              {keys, {bksw_util:to_binary(AWSAccessKey),
                      bksw_util:to_binary(SecretKey)}}
      end.
  
  log_dir() ->
      {log_dir, envy:get(bookshelf, log_dir, code:priv_dir(bookshelf), any)}.
  
  reqid_header_name() ->
      envy:get(bookshelf, reqid_header_name, undefined, string).
  
  stream_download() ->
      envy:get(bookshelf, stream_download, false, boolean).
  