warn on nonempty image directory
This commit is contained in:
		
							parent
							
								
									f1058e4ebb
								
							
						
					
					
						commit
						12b2f3b18d
					
				@ -9,7 +9,7 @@ use crate::error::{FILE_NOT_EXISTS_ERROR, INVALID_BOM_FILE_ERROR};
 | 
			
		||||
use crate::util::{
 | 
			
		||||
    check_file_hash, copy_dir, copy_file, copy_shared_object, create_link, dest_in_root,
 | 
			
		||||
    find_dependent_shared_objects, find_included_bom_file, infer_default_loader,
 | 
			
		||||
    lazy_check_missing_libraries, mkdir, resolve_envs,
 | 
			
		||||
    lazy_check_missing_libraries, mkdir, resolve_envs, warn_on_nonempty_image_dir,
 | 
			
		||||
};
 | 
			
		||||
use serde::{Deserialize, Serialize};
 | 
			
		||||
use serde_yaml;
 | 
			
		||||
@ -107,6 +107,7 @@ impl Bom {
 | 
			
		||||
        dry_run: bool,
 | 
			
		||||
        included_dirs: &Vec<String>,
 | 
			
		||||
    ) {
 | 
			
		||||
        warn_on_nonempty_image_dir(root_dir);
 | 
			
		||||
        // We need to keep the order of boms and bom managements
 | 
			
		||||
        let mut sorted_boms = Vec::new();
 | 
			
		||||
        let mut bom_managements = Vec::new();
 | 
			
		||||
 | 
			
		||||
@ -579,3 +579,22 @@ pub fn lazy_check_missing_libraries(image_dir: &str) {
 | 
			
		||||
        std::process::exit(MISSING_LIBRARY_ERROR);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Print warn message if image directory is not empty.
 | 
			
		||||
/// The image dir should be empty before running copy_bom so copy bom can track all files to copy in bom file.
 | 
			
		||||
/// Users can ignore the warning now if they are sure the image directory contains correct contents.
 | 
			
		||||
pub fn warn_on_nonempty_image_dir(image_dir: &str) {
 | 
			
		||||
    let image_path_buf = PathBuf::from(image_dir);
 | 
			
		||||
    let image_path = image_path_buf.as_path();
 | 
			
		||||
    if image_path.is_dir() {
 | 
			
		||||
        if let Ok(read_dir) = image_path.read_dir() {
 | 
			
		||||
            let dir_entries = read_dir.collect::<Vec<_>>();
 | 
			
		||||
            if dir_entries.len() > 0 {
 | 
			
		||||
                println!(
 | 
			
		||||
                    "WARNING: {} is not an empty directory before running copy_bom.",
 | 
			
		||||
                    image_dir
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user