blob: 2ec68490b7127db3f0d6356e25321f830d92d82e [file] [log] [blame]
# Copyright 2018 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.
import("//build/compiled_action.gni")
declare_args() {
# Directory containing files named by their merkleroot content IDs in
# ASCII hex. The //build/image:pm_publish_blobs target populates
# this with copies of build products, but never removes old files.
amber_repository_dir = "$root_out_dir/amber-files"
# Directory containing signing keys used by pm publish.
amber_keys_dir = "//garnet/go/src/amber/keys"
amber_repository_blobs_dir = "$amber_repository_dir/repository/blobs"
}
template("pm_publish") {
# These files are copied from amber_keys_dir into $amber_repository_dir/keys.
pm_copied_keys_files = [
"snapshot.json",
"targets.json",
"timestamp.json",
]
# These files are read from $amber_keys_dir by amber-publish.
amber_keys_files = [
"root.json",
"root_manifest.json",
]
compiled_action(target_name) {
tool = "//garnet/go/src/pm:pm_bin"
tool_output_name = "pm"
forward_variables_from(invoker,
[
"deps",
"data_deps",
"inputs",
"testonly",
"visibility",
])
assert(inputs == [ inputs[0] ],
"pm_publish(\"$target_name\") requires exactly one input")
outputs = [
"$amber_repository_dir/repository/root.json",
]
foreach(file, pm_copied_keys_files) {
outputs += [ "$amber_repository_dir/keys/$file" ]
}
foreach(file, amber_keys_files + pm_copied_keys_files) {
inputs += [ "$amber_keys_dir/$file" ]
}
args = [
"publish",
"-r",
rebase_path(amber_repository_dir),
"-k",
rebase_path(amber_keys_dir),
"-ps",
"-f",
rebase_path(inputs[0]),
"-vt",
]
}
}