Files
EWF/draft/application/cms/src/web_cms.e

117 lines
2.2 KiB
Plaintext

note
description: "[
This class implements the Demo of WEB CMS service
]"
class
WEB_CMS
inherit
CMS_SERVICE
redefine
modules
end
WSF_DEFAULT_SERVICE
redefine
initialize
end
create
make_and_launch
feature -- Initialization
base_url: detachable READABLE_STRING_8
modules: ARRAYED_LIST [CMS_MODULE]
local
m: CMS_MODULE
once
Result := Precursor
-- Others
create {DEMO_MODULE} m.make (Current)
m.enable
Result.extend (m)
create {SHUTDOWN_MODULE} m.make
m.enable
Result.extend (m)
-- create {EIFFEL_LOGIN_MODULE} m.make
-- m.enable
-- Result.extend (m)
end
feature {NONE} -- Initialization
initialize
local
args: ARGUMENTS
cfg: detachable STRING
i,n: INTEGER
cms_config: CMS_CONFIGURATION
opts: WSF_SERVICE_LAUNCHER_OPTIONS_FROM_INI
do
create args
from
i := 1
n := args.argument_count
until
i > n or cfg /= Void
loop
if attached args.argument (i) as s then
if s.same_string ("--config") or s.same_string ("-c") then
if i < n then
cfg := args.argument (i + 1)
end
end
end
i := i + 1
end
if cfg = Void then
if file_exists ("cms.ini") then
cfg := "cms.ini"
end
end
if cfg /= Void then
create cms_config.make_from_file (cfg)
-- (create {EXECUTION_ENVIRONMENT}).change_working_directory (dir)
else
create cms_config.make
end
--| The following line is to be able to load options from the file ewf.ini
create opts.make_from_file ("ewf.ini")
service_options := opts
--| If you don't need any custom options, you are not obliged to redefine `initialize'
Precursor
base_url := cms_config.site_base_url (base_url)
initialize_cms
site_email := cms_config.site_email (site_email)
site_name := cms_config.site_name (site_name)
on_launched
end
on_launched
local
e: CMS_EMAIL
do
create e.make (site_email, site_email, "[" + site_name + "] launched...", "The site [" + site_name + "] was launched at " + (create {DATE_TIME}.make_now_utc).out + " UTC.")
mailer.safe_process_email (e)
end
file_exists (fn: STRING): BOOLEAN
local
f: RAW_FILE
do
create f.make (fn)
Result := f.exists and then f.is_readable
end
end