Skip to content

Commit

Permalink
Add strict_prompts option
Browse files Browse the repository at this point in the history
This adds a `strict_prompts` key to the `liftoffrc` and a
`--[no]-strict-prompts` command line flag.

Enabling this option causes Liftoff to skip the prompt for keys that
already have a default value.
  • Loading branch information
jpsim authored and gfontenot committed Mar 27, 2014
1 parent 211bdab commit c6a05f8
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 3 deletions.
1 change: 1 addition & 0 deletions defaults/liftoffrc
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ enable_static_analyzer: true
indentation_level: 4
use_tabs: false
use_cocoapods: true
strict_prompts: false

run_script_phases:
- todo.sh: Warn for TODO and FIXME comments
Expand Down
4 changes: 4 additions & 0 deletions lib/liftoff/cli.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ def global_options
exit
end

opts.on('--[no-]strict-prompts', 'Enable/Disable strict prompts') do |strict_prompts|
@options[:strict_prompts] = strict_prompts
end

opts.on('--[no-]cocoapods', 'Enable/Disable Cocoapods') do |use_cocoapods|
@options[:use_cocoapods] = use_cocoapods
end
Expand Down
11 changes: 9 additions & 2 deletions lib/liftoff/option_fetcher.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,20 @@ def fetch_options
private

def fetch_option_for(attribute, prompt)
value = ask("#{prompt}? ") { |q| q.default = @configuration.public_send(attribute) }
@configuration.public_send("#{attribute}=", value)
default = @configuration.public_send(attribute)
unless skip_prompt?(default)
value = ask("#{prompt}? ") { |q| q.default = default }
@configuration.public_send("#{attribute}=", value)
end
rescue EOFError
puts
fetch_option_for(attribute, prompt)
rescue Interrupt
exit 1
end

def skip_prompt?(default)
default && @configuration.strict_prompts
end
end
end
3 changes: 2 additions & 1 deletion lib/liftoff/project_configuration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ class ProjectConfiguration
:application_target_groups,
:unit_test_target_groups,
:use_cocoapods,
:run_script_phases
:run_script_phases,
:strict_prompts

attr_writer :author,
:company_identifier,
Expand Down

0 comments on commit c6a05f8

Please sign in to comment.