Skip to content

Commit

Permalink
Update
Browse files Browse the repository at this point in the history
  • Loading branch information
armaniferrante committed Aug 10, 2021
1 parent dcf4fc9 commit dc73ab2
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 24 deletions.
13 changes: 1 addition & 12 deletions cli/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,6 @@ pub struct ProgramWorkspace {
pub struct AnchorPackage {
pub name: String,
pub address: String,
pub path: String,
pub idl: Option<String>,
}

Expand All @@ -502,19 +501,9 @@ impl AnchorPackage {
.ok_or_else(|| anyhow!("Program not provided in Anchor.toml"))?
.get(&name)
.ok_or_else(|| anyhow!("Program not provided in Anchor.toml"))?;
let path = program_details
.path
.clone()
// TODO: use a default path if one isn't provided?
.ok_or_else(|| anyhow!("Path to program binary not provided"))?;
let idl = program_details.idl.clone();
let address = program_details.address.to_string();
Ok(Self {
name,
path,
address,
idl,
})
Ok(Self { name, address, idl })
}
}

Expand Down
36 changes: 24 additions & 12 deletions cli/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,7 @@ fn build_cwd_verifiable(
) -> Result<()> {
// Create output dirs.
let workspace_dir = cfg.path().parent().unwrap().canonicalize()?;
fs::create_dir_all(workspace_dir.join("target/deploy"))?;
fs::create_dir_all(workspace_dir.join("target/verifiable"))?;
fs::create_dir_all(workspace_dir.join("target/idl"))?;

let container_name = "anchor-program";
Expand Down Expand Up @@ -718,7 +718,7 @@ fn docker_build(
.parent()
.unwrap()
.canonicalize()?
.join(format!("target/deploy/{}.so", binary_name))
.join(format!("target/verifiable/{}.so", binary_name))
.display()
.to_string();

Expand Down Expand Up @@ -847,7 +847,7 @@ fn verify(
.path()
.parent()
.ok_or_else(|| anyhow!("Unable to find workspace root"))?
.join("target/deploy/")
.join("target/verifiable/")
.join(format!("{}.so", binary_name));

let bin_ver = verify_bin(program_id, &bin_path, cfg.provider.cluster.url())?;
Expand Down Expand Up @@ -2114,27 +2114,31 @@ fn publish(cfg_override: &ConfigOverride, program_name: String) -> Result<()> {

// All workspace programs.
for path in cfg.get_program_list()? {
let relative_path = pathdiff::diff_paths(path, cfg.path().parent().unwrap())
.ok_or_else(|| anyhow!("Unable to diff paths"))?;
let mut dirs = walkdir::WalkDir::new(&path)
.into_iter()
.filter_entry(|e| !is_hidden(e));

let mut dirs = walkdir::WalkDir::new(&relative_path).into_iter();
// Skip the parent dir.
let _ = dirs.next().unwrap()?;

for entry in dirs {
let e = entry.map_err(|e| anyhow!("{:?}", e))?;
let path_str = e.path().display().to_string();

let e = pathdiff::diff_paths(e.path(), cfg.path().parent().unwrap())
.ok_or_else(|| anyhow!("Unable to diff paths"))?;

let path_str = e.display().to_string();

// Skip target dir.
if !path_str.contains("target/") && !path_str.contains("/target") {
// Only add the file if it's not empty.
let metadata = std::fs::File::open(e.path())?.metadata()?;
let metadata = std::fs::File::open(&e)?.metadata()?;
if metadata.len() > 0 {
println!("PACKING: {}", e.path().display().to_string());
if e.path().is_dir() {
tar.append_dir_all(e.path(), e.path())?;
println!("PACKING: {}", e.display().to_string());
if e.is_dir() {
tar.append_dir_all(&e, &e)?;
} else {
tar.append_path(e.path())?;
tar.append_path(&e)?;
}
}
}
Expand Down Expand Up @@ -2215,3 +2219,11 @@ fn with_workspace<R>(

r
}

fn is_hidden(entry: &walkdir::DirEntry) -> bool {
entry
.file_name()
.to_str()
.map(|s| s == "." || s.starts_with(".") || s == "target")
.unwrap_or(false)
}

0 comments on commit dc73ab2

Please sign in to comment.