Add a warning prompt to the setup task
This commit is contained in:
parent
48a5012b21
commit
bc59fd046f
2 changed files with 46 additions and 5 deletions
|
@ -1,10 +1,24 @@
|
|||
namespace :gitlab do
|
||||
namespace :app do
|
||||
desc "GITLAB | Setup production application"
|
||||
task :setup => [
|
||||
'db:setup',
|
||||
'db:seed_fu',
|
||||
'gitlab:enable_automerge'
|
||||
]
|
||||
task :setup => :environment do
|
||||
setup
|
||||
end
|
||||
|
||||
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
|
||||
|
|
|
@ -1,5 +1,18 @@
|
|||
module Gitlab
|
||||
class TaskAbortedByUserError < StandardError; end
|
||||
end
|
||||
|
||||
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
|
||||
#
|
||||
# It will primarily use lsb_relase to determine the OS.
|
||||
|
@ -22,6 +35,20 @@ namespace :gitlab do
|
|||
os_name.try(:squish!)
|
||||
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
|
||||
#
|
||||
# Returns nil if nothing matched
|
||||
|
|
Loading…
Reference in a new issue