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 :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
|
||||||
|
|
|
@ -1,5 +1,18 @@
|
||||||
|
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
|
||||||
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
|
||||||
|
|
Loading…
Reference in a new issue