class EL_APPLICATION_CONFIGURATION
Application configuration object
note
description: "Application configuration object"
author: "Finnian Reilly"
copyright: "Copyright (c) 2001-2022 Finnian Reilly"
contact: "finnian at eiffel hyphen loop dot com"
license: "MIT license (See: en.wikipedia.org/wiki/MIT_License)"
date: "2023-06-20 8:00:13 GMT (Tuesday 20th June 2023)"
revision: "10"
deferred class
EL_APPLICATION_CONFIGURATION
inherit
EL_FILE_PERSISTENT_I
EL_SHARED_APPLICATION
EL_MODULE_DIRECTORY
EL_APPLICATION_CONSTANTS
EL_SOLITARY
redefine
make
end
feature {NONE} -- Initialization
make
-- if local config file does not exist, use master copy in installation
-- or else just build the default
local
path_list: EL_FILE_PATH_LIST; config_path: FILE_PATH
do
Precursor
config_path := Application.user_config_dir + base_name
path_list := << config_path, Installation_config_dir + base_name >>
path_list.find_first_true (agent {FILE_PATH}.exists)
if path_list.found then
make_from_file (path_list.path)
else
make_default
end
set_file_path (config_path)
if not file_path.exists then
File_system.make_directory (Application.user_config_dir)
store
end
ensure then
user_file_exists: file_path.exists
end
make_default
deferred
end
feature -- Element change
reload
do
make_from_file (file_path)
end
feature {NONE} -- Implementation
base_name: ZSTRING
deferred
end
installation_config_dir: DIR_PATH
do
Result := Directory.Application_installation.joined_dir_tuple (
[Standard_option.config, Application.option_name]
)
end
end