| # 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) |