debian-mirror-gitlab/lib/gitlab/import_export/project_tree_saver.rb

32 lines
675 B
Ruby
Raw Normal View History

2016-06-22 15:30:34 +05:30
module Gitlab
module ImportExport
class ProjectTreeSaver
2016-11-03 12:29:30 +05:30
include Gitlab::ImportExport::CommandLineUtil
2016-06-22 15:30:34 +05:30
attr_reader :full_path
def initialize(project:, shared:)
@project = project
@shared = shared
@full_path = File.join(@shared.export_path, ImportExport.project_filename)
end
def save
2016-11-03 12:29:30 +05:30
mkdir_p(@shared.export_path)
2016-06-22 15:30:34 +05:30
File.write(full_path, project_json_tree)
true
rescue => e
@shared.error(e)
false
end
private
def project_json_tree
@project.to_json(Gitlab::ImportExport::Reader.new(shared: @shared).project_tree)
end
end
end
end