lib/cli/manifest_helper.rb in vmc-IronFoundry-0.3.16.IF.1 vs lib/cli/manifest_helper.rb in vmc-IronFoundry-0.3.16.IF.2
- old
+ new
@@ -80,26 +80,15 @@
def configure_app(many=false)
name = manifest("name") ||
set(ask("Application Name", :default => manifest("name")), "name")
- url_template = manifest("url") || DEFAULTS["url"]
- url_resolved = url_template.dup
- resolve_lexically(url_resolved)
- url = ask("Application Deployed URL", :default => url_resolved)
- url = url_template if url == url_resolved
-
- # common error case is for prompted users to answer y or Y or yes or
- # YES to this ask() resulting in an unintended URL of y. Special
- # case this common error
- url = DEFAULTS["url"] if YES_SET.member? url
-
- set url, "url"
-
- unless manifest "framework"
+ if manifest "framework"
+ framework = VMC::Cli::Framework.lookup_by_framework manifest("framework","name")
+ else
framework = detect_framework
set framework.name, "framework", "name"
set(
{ "mem" => framework.mem,
"description" => framework.description,
@@ -108,15 +97,48 @@
"framework",
"info"
)
end
+ default_runtime = manifest "runtime"
+ if not default_runtime
+ default_runtime = framework.default_runtime(@application)
+ set(detect_runtime(default_runtime), "runtime") if framework.prompt_for_runtime?
+ end
+ default_command = manifest "command"
+ set ask("Start Command", :default => default_command), "command" if framework.require_start_command?
+
+ url_template = manifest("url") || DEFAULTS["url"]
+ url_resolved = url_template.dup
+ resolve_lexically(url_resolved)
+
+ if !framework.require_url?
+ url_resolved = "None"
+ end
+ url = ask("Application Deployed URL", :default => url_resolved)
+
+ if url == url_resolved && url != "None"
+ url = url_template
+ end
+
+ # common error case is for prompted users to answer y or Y or yes or
+ # YES to this ask() resulting in an unintended URL of y. Special
+ # case this common error
+ url = url_resolved if YES_SET.member? url
+
+ if(url == "None")
+ url = nil
+ end
+
+ set url, "url"
+
+ default_mem = manifest("mem")
+ default_mem = framework.memory(manifest("runtime")) if not default_mem
set ask(
"Memory reservation",
:default =>
- manifest("mem") ||
- manifest("framework", "info", "mem") ||
+ default_mem ||
DEFAULTS["mem"],
:choices => ["128M", "256M", "512M", "1G", "2G"]
), "mem"
set ask(
@@ -180,9 +202,27 @@
)
display "Selected #{framework}"
end
framework
+ end
+
+ # Detect the appropriate runtime.
+ def detect_runtime(default, prompt_ok=true)
+ runtime = nil
+ runtime_keys=[]
+ runtimes_info.keys.each {|runtime_key| runtime_keys << runtime_key.dup }
+ runtime_keys.sort!
+ if prompt_ok
+ runtime = ask(
+ "Select Runtime",
+ :indexed => true,
+ :default => default,
+ :choices => runtime_keys
+ )
+ display "Selected #{runtime}"
+ end
+ runtime
end
def bind_services(user_services, chosen = 0)
svcname = ask(
"Which one?",