Skip to content

Commit

Permalink
install: Adds confirmation before overwriting existing source_dir
Browse files Browse the repository at this point in the history
  • Loading branch information
fhemberger committed Sep 4, 2011
1 parent 80f8a60 commit f03c4cd
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ server_port = "4000" # port for preview server eg. localhost:4000

desc "Initial setup for Octopress: copies the default theme into the path of Jekyll's generator. Rake install defaults to rake install[classic] to install a different theme run rake install[some_theme_name]"
task :install, :theme do |t, args|
if File.directory?(source_dir) || File.directory?("sass")
abort("rake aborted!") if ask("A theme is already installed, proceeding will overwrite existing files. Are you sure?", ['y', 'n']) == 'n'
end
# copy theme into working Jekyll directories
theme = args.theme || 'classic'
puts "## Copying "+theme+" theme into ./#{source_dir} and ./sass"
Expand Down Expand Up @@ -293,6 +296,20 @@ def ok_failed(condition)
end
end

def get_stdin(message)
print message
STDIN.gets.chomp
end

def ask(message, valid_options)
if valid_options
answer = get_stdin("#{message} #{valid_options.to_s.gsub(/"/, '').gsub(/, /,'/')} ") while !valid_options.include?(answer)
else
answer = get_stdin(message)
end
answer
end

desc "list tasks"
task :list do
puts "Tasks: #{(Rake::Task.tasks - [Rake::Task[:list]]).join(', ')}"
Expand Down

0 comments on commit f03c4cd

Please sign in to comment.