Commit bc59fd04 authored by Riyad Preukschas's avatar Riyad Preukschas

Add a warning prompt to the setup task

parent 48a5012b
namespace :gitlab do namespace :gitlab do
namespace :app do namespace :app do
desc "GITLAB | Setup production application" desc "GITLAB | Setup production application"
task :setup => [ task :setup => :environment do
'db:setup', setup
'db:seed_fu', end
'gitlab:enable_automerge'
] def setup
warn_user_is_not_gitlab
puts "This will create the necessary database tables and seed the database."
puts "You will lose any previous data stored in the database."
ask_to_continue
puts ""
Rake::Task["db:setup"].invoke
Rake::Task["db:seed_fu"].invoke
Rake::Task["gitlab:enable_automerge"].invoke
rescue Gitlab::TaskAbortedByUserError
puts "Quitting...".red
exit 1
end
end end
end end
module Gitlab
class TaskAbortedByUserError < StandardError; end
end
namespace :gitlab do namespace :gitlab do
# Ask if the user wants to continue
#
# Returns "yes" the user chose to continue
# Raises Gitlab::TaskAbortedByUserError if the user chose *not* to continue
def ask_to_continue
answer = prompt("Do you want to continue (yes/no)? ".blue, %w{yes no})
raise Gitlab::TaskAbortedByUserError unless answer == "yes"
end
# Check which OS is running # Check which OS is running
# #
# It will primarily use lsb_relase to determine the OS. # It will primarily use lsb_relase to determine the OS.
...@@ -22,6 +35,20 @@ namespace :gitlab do ...@@ -22,6 +35,20 @@ namespace :gitlab do
os_name.try(:squish!) os_name.try(:squish!)
end end
# Prompt the user to input something
#
# message - the message to display before input
# choices - array of strings of acceptible answers or nil for any answer
#
# Returns the user's answer
def prompt(message, choices = nil)
begin
print(message)
answer = STDIN.gets.chomp
end while choices.present? && !choices.include?(answer)
answer
end
# Runs the given command and matches the output agains the given pattern # Runs the given command and matches the output agains the given pattern
# #
# Returns nil if nothing matched # Returns nil if nothing matched
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment