anchor.diff:      ok.
       
   
  -read_op_config(Path) ->
  -    Files = [filename:join(Path,"oidc_provider.conf")],
  -    register_files(oidc_op,Files).
  -    
  -
  -set_oidc_ops() ->
  -    OPs = econfig:sections(oidc_op),
  -    IsEmpty = fun({K, V},In) ->
  -                      case V of
  -                          <<>> -> [K | In];
  -                          "" -> [K | In];
  -                          _ -> In
  -                      end
  -              end,
  -    AddValidOps = fun(OpId,_List) ->
  -                          Id = binary:list_to_bin(OpId),
  -                          Desc = get_binary_value(oidc_op,OpId,"Description",""),
  -                          ClientId = get_binary_value(oidc_op,OpId,"ClientId",""),
  -                          Secret = get_binary_value(oidc_op,OpId,"Secret",""),
  -                          ConfigEndpoint = get_binary_value(oidc_op,OpId,"ConfigEndpoint",""),
  -                          LocalEndpoint = ?CONFIG(local_endpoint),
  -                          OpEntries = [{"Description", Desc}, 
  -                                       {"ClientId" ,ClientId}, 
  -                                       {"Secret" ,Secret}, 
  -                                       {"ConfigEndpoint" ,ConfigEndpoint}],
  -                          case lists:foldl(IsEmpty,[],OpEntries) of
  -                              [] -> 
  -                                  oidcc:add_openid_provider(Id, Desc, ClientId,
  -                                                            Secret,
  -                                                            ConfigEndpoint, 
  -                                                            LocalEndpoint);
  -                              _List -> noop
  -                          end
  -                  end,
  -    lists:foldl(AddValidOps,[],OPs).
  -    
   
   register_files(Name,Files) ->
       register_single_config(Name,only_first(Files)).  
  
positive.code:     LPort = local_port(),
      LocalEndpoint = << LProt/binary, HostName/binary, LPort/binary, EpReturn/binary >>, 
      set_config(local_endpoint,LocalEndpoint),
      apply_idh_settings(),
      ok.
  
  apply_idh_settings() ->
      Type = get_string_value(main,"IDH","Type",undefined),
  
negative.code: %%%
  
  read_configs() -> 
      ok = read_main_config(),
      ok = read_plugin_configs(),
      ok = start_cowboy().
  
  
  
  read_main_config() ->
      Files = generate_file_list("main.conf"),
      ok = register_files(main,Files),
      ok = ensure_config_found(),
      ok = apply_main_settings().
  
  ensure_config_found() ->
      ensure_config_found(get_(config_path, undefined)).
  
  ensure_config_found(undefined) ->
      return_error(2,"no configuration path found, path scanned are ~p",[generate_path_list()]);
  ensure_config_found(_Defined) ->
      ok.
  
  read_plugin_configs() ->
      read_plugin_configs(get_(config_path, undefined)). 
  
  read_plugin_configs(_Path) ->
      % TODO: implement
      ok.
  
  return_error(Number, Format, Params) ->
      error_logger:error_msg(Format,Params),
      erlang:halt(Number).
  
  
  apply_main_settings() ->
      HostName = get_binary_value(main,"","HostName","localhost"),
  