Merge pull request #128 from wireframe/force-rc
This commit is contained in:
@@ -66,12 +66,15 @@ module Homesick
|
||||
end
|
||||
|
||||
desc 'rc CASTLE', 'Run the .homesickrc for the specified castle'
|
||||
method_option :force,
|
||||
default: false,
|
||||
desc: 'Evaluate .homesickrc without prompting.'
|
||||
def rc(name = DEFAULT_CASTLE_NAME)
|
||||
inside repos_dir do
|
||||
destination = Pathname.new(name)
|
||||
homesickrc = destination.join('.homesickrc').expand_path
|
||||
if homesickrc.exist?
|
||||
proceed = shell.yes?("#{name} has a .homesickrc. Proceed with evaling it? (This could be destructive)")
|
||||
proceed = options[:force] || shell.yes?("#{name} has a .homesickrc. Proceed with evaling it? (This could be destructive)")
|
||||
if proceed
|
||||
say_status 'eval', homesickrc
|
||||
inside destination do
|
||||
|
||||
@@ -169,6 +169,26 @@ describe Homesick::CLI do
|
||||
end
|
||||
end
|
||||
|
||||
context 'when options[:force] == true' do
|
||||
let(:homesick) { Homesick::CLI.new [], force: true }
|
||||
before do
|
||||
expect_any_instance_of(Thor::Shell::Basic).to_not receive(:yes?)
|
||||
end
|
||||
|
||||
it 'executes the .homesickrc' do
|
||||
castle.file('.homesickrc') do |file|
|
||||
file << "File.open(Dir.pwd + '/testing', 'w') do |f|
|
||||
f.print 'testing'
|
||||
end"
|
||||
end
|
||||
|
||||
expect(homesick).to receive(:say_status).with('eval', kind_of(Pathname))
|
||||
homesick.rc castle
|
||||
|
||||
expect(castle.join('testing')).to exist
|
||||
end
|
||||
end
|
||||
|
||||
context 'when told not to do so' do
|
||||
before do
|
||||
expect_any_instance_of(Thor::Shell::Basic).to receive(:yes?).with(be_a(String)).and_return(false)
|
||||
|
||||
Reference in New Issue
Block a user