From 6b9177ca0209b78398edb409f11bb7b4f5db7ca3 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Fri, 7 Dec 2012 01:51:49 +0100 Subject: [PATCH] replaced system() calls with FileUtils.* method This also makes that 'mv: cannot stat `/ho..' is not shown in the test :) consistent spacing require fileutils Revert "require fileutils" This reverts commit 54313d3bbaa60cfc5b405be50cc00b7f6b0cb715. new hash notation FileUtils.mv in begin/rescue block --- app/models/namespace.rb | 11 ++++++----- lib/gitlab/project_mover.rb | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/models/namespace.rb b/app/models/namespace.rb index d34e5a99..89c1f9ad 100644 --- a/app/models/namespace.rb +++ b/app/models/namespace.rb @@ -52,7 +52,7 @@ class Namespace < ActiveRecord::Base def ensure_dir_exist unless dir_exists? - system("mkdir -m 770 #{namespace_full_path}") + FileUtils.mkdir( namespace_full_path, mode: 0770 ) end end @@ -71,11 +71,12 @@ class Namespace < ActiveRecord::Base if File.exists?(new_path) raise "Already exists" end - - if system("mv #{old_path} #{new_path}") + + begin + FileUtils.mv( old_path, new_path ) send_update_instructions @require_update_gitolite = true - else + rescue Exception => e raise "Namespace move error #{old_path} #{new_path}" end end @@ -88,7 +89,7 @@ class Namespace < ActiveRecord::Base def rm_dir dir_path = File.join(Gitlab.config.gitolite.repos_path, path) - system("rm -rf #{dir_path}") + FileUtils.rm_r( dir_path, force: true ) end def send_update_instructions diff --git a/lib/gitlab/project_mover.rb b/lib/gitlab/project_mover.rb index def6e900..207e585f 100644 --- a/lib/gitlab/project_mover.rb +++ b/lib/gitlab/project_mover.rb @@ -16,7 +16,7 @@ module Gitlab def execute # Create new dir if missing new_dir_path = File.join(Gitlab.config.gitolite.repos_path, new_dir) - system("mkdir -m 770 #{new_dir_path}") unless File.exists?(new_dir_path) + FileUtils.mkdir( new_dir_path, mode: 0770 ) unless File.exists?(new_dir_path) old_path = File.join(Gitlab.config.gitolite.repos_path, old_dir, "#{project.path}.git") new_path = File.join(new_dir_path, "#{project.path}.git") @@ -25,17 +25,18 @@ module Gitlab raise ProjectMoveError.new("Destination #{new_path} already exists") end - if system("mv #{old_path} #{new_path}") + begin + FileUtils.mv( old_path, new_path ) log_info "Project #{project.name} was moved from #{old_path} to #{new_path}" true - else + rescue Exception => e message = "Project #{project.name} cannot be moved from #{old_path} to #{new_path}" - log_info "Error! #{message}" + log_info "Error! #{message} (#{e.message})" raise ProjectMoveError.new(message) end end - protected + protected def log_info message Gitlab::AppLogger.info message