提交 58b0b1a6 编写于 作者: J James Lopez

picking export stuff from the UI branch

上级 fedfba55
module Projects
module ImportExport
class ExportService < BaseService
def execute(options = {})
@shared = Gitlab::ImportExport::Shared.new(relative_path: project.path_with_namespace)
@shared = Gitlab::ImportExport::Shared.new(relative_path: File.join(project.path_with_namespace, 'work'))
save_project_tree
bundle_repo
save_all
......
......@@ -5,6 +5,14 @@ module Gitlab
tar_with_options(archive: archive, dir: dir, options: 'cf')
end
def untar_zxf(archive:, dir:)
untar_with_options(archive: archive, dir: dir, options: 'zxf')
end
def untar_xf(archive:, dir:)
untar_with_options(archive: archive, dir: dir, options: 'xf')
end
def tar_czf(archive:, dir:)
tar_with_options(archive: archive, dir: dir, options: 'czf')
end
......@@ -20,6 +28,12 @@ module Gitlab
_output, status = Gitlab::Popen.popen(cmd)
status.zero?
end
def untar_with_options(archive:, dir:, options:)
cmd = %W(tar -#{options} #{archive} -C #{dir})
_output, status = Gitlab::Popen.popen(cmd)
status.zero?
end
end
end
end
......@@ -57,8 +57,10 @@ module Gitlab
end
def add_new_class(current_key, included_classes_hash, value)
only_except_hash = check_only_and_except(value)
# TODO: refactor this
value = (value.is_a?(Hash) ? value.merge(only_except_hash) : { value => only_except_hash }) if only_except_hash
new_hash = { include: value }
new_hash.merge!(check_only_and_except(value))
included_classes_hash[current_key] = new_hash
end
......
......@@ -24,6 +24,7 @@ module Gitlab
false
end
# TODO remove magic keyword and move it to a shared config
def project_filename
"project.json"
end
......
......@@ -26,6 +26,7 @@ module Gitlab
false
end
# TODO remove magic keyword and move it to a shared config
def project_filename
"project.bundle"
end
......
......@@ -14,6 +14,7 @@ module Gitlab
def save
if compress_and_save
remove_storage_path
Rails.logger.info("Saved project export #{archive_file}")
archive_file
else
false
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册