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?",