gitlab-org--gitlab-foss/lib/gitlab/import_export/project_tree_saver.rb

30 lines
632 B
Ruby
Raw Normal View History

module Gitlab
2016-03-07 17:26:15 +00:00
module ImportExport
class ProjectTreeSaver
attr_reader :full_path
def initialize(project:, shared:)
2016-03-07 17:26:15 +00:00
@project = project
@shared = shared
2016-05-13 15:39:03 +00:00
@full_path = File.join(@shared.export_path, ImportExport.project_filename)
2016-03-07 17:26:15 +00:00
end
def save
2016-05-17 14:28:27 +00:00
FileUtils.mkdir_p(@shared.export_path)
2016-03-07 17:26:15 +00:00
File.write(full_path, project_json_tree)
true
rescue => e
@shared.error(e)
2016-03-07 17:26:15 +00:00
false
end
private
2016-03-07 17:26:15 +00:00
def project_json_tree
2016-06-13 19:18:26 +00:00
@project.to_json(Gitlab::ImportExport::Reader.new(shared: @shared).project_tree)
2016-03-07 17:26:15 +00:00
end
end
end
end