moved wizard under tools/estudio_wizard
This commit is contained in:
136
tools/estudio_wizard/src/ewf_wizard_generator.e
Normal file
136
tools/estudio_wizard/src/ewf_wizard_generator.e
Normal file
@@ -0,0 +1,136 @@
|
||||
note
|
||||
description: "Summary description for {EWF_WIZARD_GENERATOR}."
|
||||
author: ""
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
class
|
||||
EWF_WIZARD_GENERATOR
|
||||
|
||||
inherit
|
||||
WIZARD_GENERATOR
|
||||
redefine
|
||||
copy_template
|
||||
end
|
||||
|
||||
SHARED_TEMPLATE_CONTEXT
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature -- Query
|
||||
|
||||
collection: detachable WIZARD_DATA
|
||||
|
||||
feature -- Execution
|
||||
|
||||
execute (a_collection: WIZARD_DATA)
|
||||
local
|
||||
d: DIRECTORY
|
||||
pdn, dn: PATH
|
||||
tfn: PATH
|
||||
res: WIZARD_SUCCEED_RESPONSE
|
||||
-- k: STRING_32
|
||||
do
|
||||
collection := a_collection
|
||||
if
|
||||
attached a_collection.item ("project:name") as pn and
|
||||
attached a_collection.item ("project:location") as l_loc
|
||||
then
|
||||
create pdn.make_from_string (l_loc)
|
||||
|
||||
variables.force (pn.as_lower, "APP_NAME")
|
||||
variables.force (pn.as_upper, "APP_ROOT")
|
||||
variables.force (new_uuid, "UUID")
|
||||
variables.force ("none", "CONCURRENCY")
|
||||
|
||||
variables.force ("yes", "WIZ_YES")
|
||||
variables.force ("no", "WIZ_NO")
|
||||
|
||||
dn := pdn
|
||||
create d.make_with_path (dn)
|
||||
if not d.exists then
|
||||
d.recursive_create_dir
|
||||
end
|
||||
|
||||
recursive_copy_templates (application.layout.resources_location, dn)
|
||||
|
||||
tfn := dn.extended (pn).appended_with_extension ("ecf")
|
||||
create res.make (tfn, d.path)
|
||||
|
||||
send_response (res)
|
||||
else
|
||||
send_response (create {WIZARD_FAILED_RESPONSE})
|
||||
end
|
||||
end
|
||||
|
||||
feature -- Templates
|
||||
|
||||
smarty_template_extensions: ARRAY [READABLE_STRING_32]
|
||||
once
|
||||
Result := <<"e", "ecf", "ini">>
|
||||
end
|
||||
|
||||
is_smarty_template_file (f: PATH): BOOLEAN
|
||||
do
|
||||
if attached f.extension as ext then
|
||||
Result := across smarty_template_extensions as ext_ic some ext_ic.item.is_case_insensitive_equal_general (ext) end
|
||||
end
|
||||
end
|
||||
|
||||
is_template_file (f: PATH): BOOLEAN
|
||||
do
|
||||
Result := is_smarty_template_file (f)
|
||||
end
|
||||
|
||||
copy_template (a_src: PATH; a_target: PATH)
|
||||
do
|
||||
if is_smarty_template_file (a_src) then
|
||||
copy_smarty_template (a_src, a_target)
|
||||
else
|
||||
Precursor (a_src, a_target)
|
||||
end
|
||||
end
|
||||
|
||||
copy_smarty_template (a_res: PATH; a_target: PATH)
|
||||
local
|
||||
tpl: TEMPLATE_FILE
|
||||
f,t: PLAIN_TEXT_FILE
|
||||
inspectors: ARRAYED_LIST [TEMPLATE_INSPECTOR]
|
||||
do
|
||||
create f.make_with_path (a_res)
|
||||
if f.exists and f.is_readable then
|
||||
create tpl.make_from_file (f.path.name)
|
||||
if attached collection as l_collection then
|
||||
tpl.add_value (l_collection, "WIZ")
|
||||
end
|
||||
across
|
||||
variables as ic
|
||||
loop
|
||||
tpl.add_value (ic.item, ic.key)
|
||||
end
|
||||
template_context.set_template_folder (application.layout.templates_location)
|
||||
create inspectors.make (2)
|
||||
inspectors.force (create {WIZARD_DATA_TEMPLATE_INSPECTOR}.register ({detachable WIZARD_DATA}))
|
||||
inspectors.force (create {WIZARD_PAGE_DATA_TEMPLATE_INSPECTOR}.register ({detachable WIZARD_PAGE_DATA}))
|
||||
tpl.analyze
|
||||
tpl.get_output
|
||||
across
|
||||
inspectors as ic
|
||||
loop
|
||||
ic.item.unregister
|
||||
end
|
||||
if attached tpl.output as l_output then
|
||||
create t.make_with_path (a_target)
|
||||
if not t.exists or else t.is_writable then
|
||||
t.create_read_write
|
||||
t.put_string (l_output)
|
||||
t.close
|
||||
end
|
||||
else
|
||||
copy_file (a_res, a_target)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user