fastlane/lib/fastlane/auto_complete.rb in fastlane-2.24.0.beta.20170327010009 vs fastlane/lib/fastlane/auto_complete.rb in fastlane-2.24.0.beta.20170328010037
- old
+ new
@@ -2,23 +2,41 @@
module Fastlane
# Enable tab auto completion
class AutoComplete
def self.execute
- fastlane_conf_dir = "~/.fastlane"
- confirm = UI.confirm "This will copy a shell script into #{fastlane_conf_dir} that provides the command tab completion. Sound good?"
- return unless confirm
+ shell = ENV['SHELL']
- # create the ~/.fastlane directory
- fastlane_conf_dir = File.expand_path fastlane_conf_dir
- FileUtils.mkdir_p fastlane_conf_dir
+ if shell.end_with? "fish"
+ fish_completions_dir = "~/.config/fish/completions"
+ confirm = UI.confirm "This will copy a fish script into #{fish_completions_dir} that provides the command tab completion. If the directory does not exist it will be created. Sound good?"
+ return unless confirm
- # then copy all of the completions files into it from the gem
- completion_script_path = File.join(Fastlane::ROOT, 'lib', 'assets', 'completions')
- FileUtils.cp_r completion_script_path, fastlane_conf_dir
+ fish_completions_dir = File.expand_path fish_completions_dir
+ FileUtils.mkdir_p fish_completions_dir
- UI.success "Copied! To use auto complete for fastlane, add the following line to your favorite rc file (e.g. ~/.bashrc)"
- UI.important " . ~/.fastlane/completions/completion.sh"
- UI.success "Don't forget to source that file in your current shell! 🐚"
+ completion_script_path = File.join(Fastlane::ROOT, 'lib', 'assets', 'completions', 'completion.fish')
+ final_completion_script_path = File.join(fish_completions_dir, 'fastlane.fish')
+
+ FileUtils.cp completion_script_path, final_completion_script_path
+
+ UI.success "Copied! You can now use tab completion for lanes"
+ else
+ fastlane_conf_dir = "~/.fastlane"
+ confirm = UI.confirm "This will copy a shell script into #{fastlane_conf_dir} that provides the command tab completion. Sound good?"
+ return unless confirm
+
+ # create the ~/.fastlane directory
+ fastlane_conf_dir = File.expand_path fastlane_conf_dir
+ FileUtils.mkdir_p fastlane_conf_dir
+
+ # then copy all of the completions files into it from the gem
+ completion_script_path = File.join(Fastlane::ROOT, 'lib', 'assets', 'completions')
+ FileUtils.cp_r completion_script_path, fastlane_conf_dir
+
+ UI.success "Copied! To use auto complete for fastlane, add the following line to your favorite rc file (e.g. ~/.bashrc)"
+ UI.important " . ~/.fastlane/completions/completion.sh"
+ UI.success "Don't forget to source that file in your current shell! 🐚"
+ end
end
end
end