From d6b0ac96f7b2952edb8aad0efcd48e0bccd23fe0 Mon Sep 17 00:00:00 2001
From: Jacob Vosmaer <contact@jacobvosmaer.nl>
Date: Tue, 25 Feb 2014 12:15:18 +0100
Subject: [PATCH] Invoke Kernel#system with separate arguments

---
 lib/gitlab/upgrader.rb              | 22 +++++++++++++---------
 lib/tasks/gitlab/generate_docs.rake |  2 +-
 lib/tasks/gitlab/test.rake          | 12 ++++++------
 lib/tasks/sidekiq.rake              |  8 ++++----
 spec/support/test_env.rb            | 13 +++++++------
 5 files changed, 31 insertions(+), 26 deletions(-)

diff --git a/lib/gitlab/upgrader.rb b/lib/gitlab/upgrader.rb
index f17ad0d79c..0fe4888665 100644
--- a/lib/gitlab/upgrader.rb
+++ b/lib/gitlab/upgrader.rb
@@ -50,21 +50,25 @@ module Gitlab
 
     def update_commands
       {
-        "Stash changed files" => "git stash",
-        "Get latest code" => "git fetch",
-        "Switch to new version" => "git checkout v#{latest_version}",
-        "Install gems" => "bundle",
-        "Migrate DB" => "bundle exec rake db:migrate RAILS_ENV=production",
-        "Recompile assets" => "bundle exec rake assets:clean assets:precompile RAILS_ENV=production",
-        "Clear cache" => "bundle exec rake cache:clear RAILS_ENV=production"
+        "Stash changed files" => %W(git stash),
+        "Get latest code" => %W(git fetch),
+        "Switch to new version" => %W(git checkout v#{latest_version}),
+        "Install gems" => %W(bundle),
+        "Migrate DB" => %W(bundle exec rake db:migrate),
+        "Recompile assets" => %W(bundle exec rake assets:clean assets:precompile),
+        "Clear cache" => %W(bundle exec rake cache:clear)
       }
     end
 
+    def env
+      {'RAILS_ENV' => 'production'}
+    end
+
     def upgrade
       update_commands.each do |title, cmd|
         puts title
-        puts " -> #{cmd}"
-        if system(cmd)
+        puts " -> #{cmd.join(' ')}"
+        if system(env, *cmd)
           puts " -> OK"
         else
           puts " -> FAILED"
diff --git a/lib/tasks/gitlab/generate_docs.rake b/lib/tasks/gitlab/generate_docs.rake
index 58795fac4a..332cd61f84 100644
--- a/lib/tasks/gitlab/generate_docs.rake
+++ b/lib/tasks/gitlab/generate_docs.rake
@@ -1,7 +1,7 @@
 namespace :gitlab do
   desc "GITLAB | Generate sdocs for project"
   task generate_docs: :environment do
-    system("bundle exec sdoc -o doc/code app lib")
+    system(*%W(bundle exec sdoc -o doc/code app lib))
   end
 end
 
diff --git a/lib/tasks/gitlab/test.rake b/lib/tasks/gitlab/test.rake
index 011748c971..f52af0c3de 100644
--- a/lib/tasks/gitlab/test.rake
+++ b/lib/tasks/gitlab/test.rake
@@ -2,15 +2,15 @@ namespace :gitlab do
   desc "GITLAB | Run all tests"
   task :test do
     cmds = [
-      "rake db:setup",
-      "rake db:seed_fu",
-      "rake spinach",
-      "rake spec",
-      "rake jasmine:ci"
+      %W(rake db:setup),
+      %W(rake db:seed_fu),
+      %W(rake spinach),
+      %W(rake spec),
+      %W(rake jasmine:ci)
     ]
 
     cmds.each do |cmd|
-      system(cmd + " RAILS_ENV=test")
+      system({'RAILS_ENV' => 'test'}, *cmd)
 
       raise "#{cmd} failed!" unless $?.exitstatus.zero?
     end
diff --git a/lib/tasks/sidekiq.rake b/lib/tasks/sidekiq.rake
index e91678473a..ba806e53cc 100644
--- a/lib/tasks/sidekiq.rake
+++ b/lib/tasks/sidekiq.rake
@@ -1,21 +1,21 @@
 namespace :sidekiq do
   desc "GITLAB | Stop sidekiq"
   task :stop do
-    system "script/background_jobs stop"
+    system *%W(script/background_jobs stop)
   end
 
   desc "GITLAB | Start sidekiq"
   task :start do
-    system "script/background_jobs start"
+    system *%W(script/background_jobs start)
   end
 
   desc 'GitLab | Restart sidekiq'
   task :restart do
-    system "script/background_jobs restart"
+    system *%W(script/background_jobs restart)
   end
 
   desc "GITLAB | Start sidekiq with launchd on Mac OS X"
   task :launchd do
-    system "script/background_jobs start_no_deamonize"
+    system *%W(script/background_jobs start_no_deamonize)
   end
 end
diff --git a/spec/support/test_env.rb b/spec/support/test_env.rb
index 711f707d83..77a669c0cc 100644
--- a/spec/support/test_env.rb
+++ b/spec/support/test_env.rb
@@ -104,10 +104,12 @@ module TestEnv
 
   def reset_satellite_dir
     setup_stubs
-    FileUtils.cd(seed_satellite_path) do
-      `git reset --hard --quiet`
-      `git clean -fx`
-      `git checkout --quiet origin/master`
+    [
+      %W(git reset --hard --quiet),
+      %W(git clean -fx),
+      %W(git checkout --quiet origin/master)
+    ].each do |git_cmd|
+      system(*git_cmd, chdir: seed_satellite_path)
     end
   end
 
@@ -186,7 +188,6 @@ module TestEnv
 
   def create_temp_repo(path)
     FileUtils.mkdir_p path
-    command = "git init --quiet --bare #{path};"
-    system(command)
+    system(*%W(git init --quiet --bare -- #{path}))
   end
 end
-- 
2.30.9