Merge pull request #2650 from riyad/setup-task-warning
Improve setup task, by making it less dangerous
This commit is contained in:
commit
309e2ceaf8
4 changed files with 47 additions and 21 deletions
|
@ -260,7 +260,7 @@ used for the `email.from` setting in `config/gitlab.yml`)
|
|||
|
||||
## Initialise Database and Activate Advanced Features
|
||||
|
||||
sudo -u gitlab -H bundle exec rake gitlab:app:setup RAILS_ENV=production
|
||||
sudo -u gitlab -H bundle exec rake gitlab:setup RAILS_ENV=production
|
||||
|
||||
|
||||
## Install Init Script
|
||||
|
|
|
@ -1,16 +1,3 @@
|
|||
### Setup production application
|
||||
|
||||
Runs the following rake tasks:
|
||||
|
||||
* db:setup (Create the database, load the schema, and initialize with the seed data)
|
||||
* db:seed_fu (Loads seed data for the current environment.)
|
||||
* gitlab:app:enable_automerge (see "Features")
|
||||
|
||||
```
|
||||
bundle exec rake gitlab:app:setup RAILS_ENV=production
|
||||
```
|
||||
|
||||
|
||||
### Gather information about GitLab and the system it runs on
|
||||
|
||||
This command gathers information about your GitLab installation and the System
|
||||
|
|
|
@ -1,10 +1,22 @@
|
|||
namespace :gitlab do
|
||||
namespace :app do
|
||||
desc "GITLAB | Setup production application"
|
||||
task :setup => [
|
||||
'db:setup',
|
||||
'db:seed_fu',
|
||||
'gitlab:enable_automerge'
|
||||
]
|
||||
desc "GITLAB | Setup production application"
|
||||
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
|
||||
|
|
|
@ -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