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
|
## 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
|
## 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
|
### Gather information about GitLab and the system it runs on
|
||||||
|
|
||||||
This command gathers information about your GitLab installation and the System
|
This command gathers information about your GitLab installation and the System
|
||||||
|
|
|
@ -1,10 +1,22 @@
|
||||||
namespace :gitlab do
|
namespace :gitlab do
|
||||||
namespace :app do
|
desc "GITLAB | Setup production application"
|
||||||
desc "GITLAB | Setup production application"
|
task :setup => :environment do
|
||||||
task :setup => [
|
setup
|
||||||
'db:setup',
|
end
|
||||||
'db:seed_fu',
|
|
||||||
'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
|
||||||
|
|
|
@ -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