Don't regenerate idl in read_all_programs()

This commit is contained in:
Christian Kamm 2022-07-14 09:57:44 +02:00
parent 0b4c7b0c73
commit e08a583cba
1 changed files with 7 additions and 8 deletions

View File

@ -171,19 +171,18 @@ impl WithPath<Config> {
.collect()) .collect())
} }
// TODO: this should read idl dir instead of parsing source.
pub fn read_all_programs(&self) -> Result<Vec<Program>> { pub fn read_all_programs(&self) -> Result<Vec<Program>> {
let mut r = vec![]; let mut r = vec![];
for path in self.get_program_list()? { for path in self.get_program_list()? {
let cargo = Manifest::from_path(&path.join("Cargo.toml"))?; let cargo = Manifest::from_path(&path.join("Cargo.toml"))?;
let lib_name = cargo.lib_name()?; let lib_name = cargo.lib_name()?;
let version = cargo.version();
let idl = anchor_syn::idl::file::parse( let idl_filepath = format!("target/idl/{}.json", lib_name);
path.join("src/lib.rs"), let idl = fs::read(idl_filepath)
version, .ok()
self.features.seeds, .map(|bytes| serde_json::from_reader(&*bytes))
false, .transpose()?;
)?;
r.push(Program { r.push(Program {
lib_name, lib_name,
path, path,