OSDN Git Service

move namespace dir after path changed
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sat, 24 Nov 2012 20:11:46 +0000 (22:11 +0200)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sat, 24 Nov 2012 20:11:46 +0000 (22:11 +0200)
app/models/namespace.rb

index 4f53655..72ba106 100644 (file)
@@ -12,7 +12,8 @@ class Namespace < ActiveRecord::Base
 
   delegate :name, to: :owner, allow_nil: true, prefix: true
 
-  after_save :ensure_dir_exist
+  after_create :ensure_dir_exist
+  after_update :move_dir
 
   scope :root, where('type IS NULL')
 
@@ -32,4 +33,10 @@ class Namespace < ActiveRecord::Base
     namespace_dir_path = File.join(Gitlab.config.git_base_path, path)
     Dir.mkdir(namespace_dir_path) unless File.exists?(namespace_dir_path)
   end
+
+  def move_dir
+    old_path = File.join(Gitlab.config.git_base_path, path_was)
+    new_path = File.join(Gitlab.config.git_base_path, path)
+    system("mv #{old_path} #{new_path}")
+  end
 end