Fix repository and project_to_repository paths and symbolinks
This commit is contained in:
parent
6238012fa9
commit
8f459f8abc
|
@ -1,36 +1,58 @@
|
||||||
class ProjectToRepository < ActiveRecord::Base
|
class ProjectToRepository < ActiveRecord::Base
|
||||||
belongs_to :project
|
belongs_to :project
|
||||||
belongs_to :repository
|
belongs_to :repository
|
||||||
|
|
||||||
|
delegate :path, :to => :project
|
||||||
|
|
||||||
before_save :create_link
|
#before_save :create_link
|
||||||
after_destroy :remove_link
|
before_save :add_compability_link
|
||||||
|
#after_destroy :remove_link
|
||||||
|
after_destroy :remove_compability_link
|
||||||
|
|
||||||
after_create lambda {
|
after_create lambda {
|
||||||
project.xml_rpc_create
|
project.xml_rpc_create
|
||||||
}
|
}
|
||||||
|
|
||||||
def path
|
#def path
|
||||||
build_path(project.unixname)
|
# build_path(project.unixname)
|
||||||
|
#end
|
||||||
|
|
||||||
|
# This is symbolink to /git_projects/<owner.uname>/<unixname>.git
|
||||||
|
def sym_path
|
||||||
|
"#{ repository.platform.path }/projects/#{ project.unixname }.git"
|
||||||
end
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def build_path(dir)
|
#def build_path(dir)
|
||||||
File.join(repository.path, dir)
|
# File.join(repository.path, dir)
|
||||||
end
|
#end
|
||||||
|
|
||||||
def create_link
|
#def create_link
|
||||||
exists = File.exists?(path) && File.directory?(path)
|
# exists = File.exists?(path) && File.directory?(path)
|
||||||
raise "Symlink #{path} already exists" if exists
|
# raise "Symlink #{path} already exists" if exists
|
||||||
|
# if new_record?
|
||||||
|
# FileUtils.ln_s(project.path, path)
|
||||||
|
# end
|
||||||
|
#end
|
||||||
|
#
|
||||||
|
#def remove_link
|
||||||
|
# exists = File.exists?(path) && File.directory?(path)
|
||||||
|
# raise "Directory #{path} didn't exists" unless exists
|
||||||
|
# FileUtils.rm_rf(path)
|
||||||
|
#end
|
||||||
|
|
||||||
|
def add_compability_link
|
||||||
|
exists = File.exists?(sym_path) && File.directory?(sym_path)
|
||||||
|
return false if exists
|
||||||
if new_record?
|
if new_record?
|
||||||
FileUtils.ln_s(project.path, path)
|
FileUtils.ln_s(path, sym_path)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def remove_link
|
def remove_compability_link
|
||||||
exists = File.exists?(path) && File.directory?(path)
|
exists = File.exists?(sym_path) && File.directory?(sym_path)
|
||||||
raise "Directory #{path} didn't exists" unless exists
|
return false unless exists
|
||||||
FileUtils.rm_rf(path)
|
FileUtils.rm_rf(sym_path)
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -29,9 +29,9 @@ class Repository < ActiveRecord::Base
|
||||||
|
|
||||||
attr_accessible :visibility, :name, :unixname, :platform_id
|
attr_accessible :visibility, :name, :unixname, :platform_id
|
||||||
|
|
||||||
def path
|
# def path
|
||||||
build_path(unixname)
|
# build_path(unixname)
|
||||||
end
|
# end
|
||||||
|
|
||||||
def clone
|
def clone
|
||||||
r = Repository.new
|
r = Repository.new
|
||||||
|
@ -50,26 +50,26 @@ class Repository < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def build_path(dir)
|
# def build_path(dir)
|
||||||
File.join(platform.path, dir)
|
# File.join(platform.path, dir)
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def create_directory
|
# def create_directory
|
||||||
exists = File.exists?(path) && File.directory?(path)
|
# exists = File.exists?(path) && File.directory?(path)
|
||||||
raise "Directory #{path} already exists" if exists
|
# raise "Directory #{path} already exists" if exists
|
||||||
if new_record?
|
# if new_record?
|
||||||
FileUtils.mkdir_p(path)
|
# FileUtils.mkdir_p(path)
|
||||||
%w(release updates).each { |subrep| FileUtils.mkdir_p(path + subrep) }
|
# %w(release updates).each { |subrep| FileUtils.mkdir_p(path + subrep) }
|
||||||
elsif unixname_changed?
|
# elsif unixname_changed?
|
||||||
FileUtils.mv(build_path(unixname_was), buildpath(unixname))
|
# FileUtils.mv(build_path(unixname_was), buildpath(unixname))
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def remove_directory
|
# def remove_directory
|
||||||
exists = File.exists?(path) && File.directory?(path)
|
# exists = File.exists?(path) && File.directory?(path)
|
||||||
raise "Directory #{path} didn't exists" unless exists
|
# raise "Directory #{path} didn't exists" unless exists
|
||||||
FileUtils.rm_rf(path)
|
# FileUtils.rm_rf(path)
|
||||||
end
|
# end
|
||||||
|
|
||||||
def xml_rpc_create
|
def xml_rpc_create
|
||||||
result = BuildServer.create_repo unixname, platform.unixname
|
result = BuildServer.create_repo unixname, platform.unixname
|
||||||
|
|
Loading…
Reference in New Issue