blob: 0b3d03a48d27e87c633d69d8773099f4350a468a [file] [log] [blame]
# Copyright 2017 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
DEPS = [
"flutter/tar",
"fuchsia/status_check",
"recipe_engine/context",
"recipe_engine/file",
"recipe_engine/path",
"recipe_engine/platform",
"recipe_engine/step",
]
def RunSteps(api):
# Prepare files.
temp = api.path.mkdtemp("tar-example")
api.step("touch a", ["touch", temp.join("a")])
api.step("touch b", ["touch", temp.join("b")])
api.file.ensure_directory("mkdirs", temp.join("sub", "dir"))
api.step("touch c", ["touch", temp.join("sub", "dir", "c")])
# Build a tar file.
archive = api.tar.create(temp.join("more.tar.gz"), compression="gzip")
archive.add(temp.join("a"), temp)
with api.context(cwd=temp):
archive.add(temp.join("b"))
archive.add(temp.join("sub", "dir", "c"), temp.join("sub"))
archive.tar("taring more")
# Coverage for 'output' property.
api.step("report", ["echo", archive.path])
# Extract the archive into a directory stripping one path component.
api.tar.extract(
"untaring",
temp.join("output.tar"),
directory=temp.join("output"),
strip_components=1,
)
# List untarped content.
with api.context(cwd=temp.join("output")):
api.step("listing", ["find"])
# Clean up.
api.file.rmtree("rmtree %s" % temp, temp)
def GenTests(api):
for platform in ("linux", "mac"):
yield api.status_check.test(platform) + api.platform.name(platform)