in tuftool/src/update_targets.rs [79:125]
fn update_targets(&self, mut editor: TargetsEditor) -> Result<()> {
editor.version(self.version).expires(self.expires);
// If the "add-targets" argument was passed, build a list of targets
// and add them to the repository. If a user specifies job count we
// override the default, which is the number of cores.
if let Some(ref targets_indir) = self.targets_indir {
if let Some(jobs) = self.jobs {
rayon::ThreadPoolBuilder::new()
.num_threads(usize::from(jobs))
.build_global()
.context(error::InitializeThreadPoolSnafu)?;
}
let new_targets = build_targets(&targets_indir, self.follow)?;
for (target_name, target) in new_targets {
editor
.add_target(target_name, target)
.context(error::InvalidTargetNameSnafu)?;
}
};
// Sign the role
let signed_role = editor.sign(&self.keys).context(error::SignRepoSnafu)?;
// Copy any targets that were added
if let Some(ref targets_indir) = self.targets_indir {
let targets_outdir = &self.outdir.join("targets");
signed_role
.copy_targets(&targets_indir, &targets_outdir, self.target_path_exists)
.context(error::LinkTargetsSnafu {
indir: &targets_indir,
outdir: targets_outdir,
})?;
};
// Write the metadata to the outdir
let metadata_dir = &self.outdir.join("metadata");
signed_role
.write(metadata_dir, false)
.context(error::WriteRepoSnafu {
directory: metadata_dir,
})?;
Ok(())
}