164 lines
3.7 KiB
Plaintext
164 lines
3.7 KiB
Plaintext
note
|
|
description : "Objects that ..."
|
|
author : "$Author$"
|
|
date : "$Date$"
|
|
revision : "$Revision$"
|
|
|
|
class
|
|
EWF_WIZARD
|
|
|
|
inherit
|
|
WIZARD
|
|
|
|
create
|
|
make
|
|
|
|
feature {NONE} -- Initialization
|
|
|
|
make
|
|
-- Initialize `Current'.
|
|
do
|
|
initialize
|
|
get_information
|
|
if is_valid and attached layout as lay then
|
|
generate_project (lay)
|
|
end
|
|
end
|
|
|
|
feature -- Access
|
|
|
|
project_directory_name: detachable READABLE_STRING_8
|
|
|
|
projet_name: detachable READABLE_STRING_8
|
|
|
|
use_router: BOOLEAN
|
|
|
|
router_type: detachable READABLE_STRING_8
|
|
|
|
connector: detachable READABLE_STRING_8
|
|
|
|
feature -- Form
|
|
|
|
get_information
|
|
local
|
|
e: EXECUTION_ENVIRONMENT
|
|
do
|
|
create e
|
|
project_directory_name := e.get ("ISE_PROJECTS")
|
|
if
|
|
attached project_directory_name as pdn and then
|
|
attached string_question ("Project directory (default=" + pdn + ")? ", <<["q", Void]>>, pdn, False) as r_pdn
|
|
then
|
|
project_directory_name := r_pdn.string
|
|
elseif attached string_question ("Project directory ? ", <<["q", Void]>>, Void, False) as r_pdn then
|
|
project_directory_name := r_pdn.string
|
|
end
|
|
if project_directory_name = Void then
|
|
die (-1)
|
|
end
|
|
|
|
if attached string_question ("Project name ? ", Void, Void, False) as pn then
|
|
projet_name := pn.string
|
|
else
|
|
projet_name := "ewf"
|
|
end
|
|
|
|
if boolean_question ("Do you want to use WSF_ROUTER (Y|n) ? ", <<["y", True], ["Y", True]>>, "Y") then
|
|
use_router := True
|
|
router_type := "uri-template"
|
|
else
|
|
use_router := False
|
|
end
|
|
|
|
if attached string_question ("[
|
|
Default connector ?
|
|
1 - Eiffel Web Nino (standalone web server)
|
|
2 - CGI application (requires to setup httpd server)
|
|
3 - libFCGI application (requires to setup httpd server)
|
|
Your choice:
|
|
]", <<["1", "nino"], ["2", "cgi"], ["3", "libfcgi"]>>, "1", True) as conn
|
|
then
|
|
connector := conn
|
|
else
|
|
connector := "nino"
|
|
end
|
|
end
|
|
|
|
is_valid: BOOLEAN
|
|
do
|
|
Result := project_directory_name /= Void and projet_name /= Void
|
|
end
|
|
|
|
generate_project (a_layout: WIZARD_LAYOUT)
|
|
require
|
|
is_valid
|
|
local
|
|
d: DIRECTORY
|
|
dn: DIRECTORY_NAME
|
|
tfn: FILE_NAME
|
|
res: WIZARD_SUCCEED_RESPONSE
|
|
do
|
|
if attached project_directory_name as pdn then
|
|
if attached projet_name as pn then
|
|
variables.force (pn, "TARGET_NAME")
|
|
variables.force (new_uuid, "UUID")
|
|
variables.force ("none", "CONCURRENCY")
|
|
if attached connector as conn then
|
|
variables.force (conn, "EWF_CONNECTOR")
|
|
end
|
|
variables.force ("9999", "EWF_NINO_PORT")
|
|
|
|
create dn.make_from_string (pdn)
|
|
dn.extend (pn)
|
|
create d.make (dn.string)
|
|
if not d.exists then
|
|
d.recursive_create_dir
|
|
end
|
|
create tfn.make_from_string (dn.string)
|
|
tfn.set_file_name (pn)
|
|
tfn.add_extension ("ecf")
|
|
copy_resource_template ("template.ecf", tfn.string)
|
|
|
|
create tfn.make_from_string (dn.string)
|
|
|
|
tfn.set_file_name ("ewf")
|
|
tfn.add_extension ("ini")
|
|
copy_resource_template ("ewf.ini", tfn.string)
|
|
|
|
|
|
create res.make (tfn.string, d.name)
|
|
|
|
create dn.make_from_string (pdn)
|
|
dn.extend (pn)
|
|
dn.extend ("src")
|
|
create d.make (dn.string)
|
|
if not d.exists then
|
|
d.recursive_create_dir
|
|
end
|
|
create tfn.make_from_string (dn.string)
|
|
tfn.set_file_name ("ewf_application")
|
|
tfn.add_extension ("e")
|
|
if attached router_type as rt then
|
|
check rt.same_string ("uri-template") end
|
|
copy_resource_template ("ewf_application-"+ rt +".e", tfn.string)
|
|
else
|
|
copy_resource_template ("ewf_application.e", tfn.string)
|
|
end
|
|
|
|
|
|
send_response (res)
|
|
end
|
|
end
|
|
end
|
|
|
|
feature -- Output
|
|
|
|
|
|
|
|
feature {NONE} -- Implementation
|
|
|
|
invariant
|
|
-- invariant_clause: True
|
|
|
|
end
|