pub fn crate_bin(path: &str, nombre: &str, meta_file: &str) {
    println!("Iniciando la creacion de un Archivos Binario de Instalacion...");
    let tomy: Value = toml::from_str(meta_file)
        .expect("Al parecer no has escrito bien el archivo ADI o no es un archivo ADI");
    let adi = tomy.as_table().unwrap();

    let conservar_src_dir = binario_completo(meta_file);

    if conservar_src_dir == true {
        let mut noombre = String::new();
        noombre.push_str(nombre);
        noombre.push_str(".abi.tar.gz");
        let tar_gz = File::create(noombre).expect("Algo fallo al crear el tar_gz");
        let enc = GzEncoder::new(tar_gz, Compression::default());
        let mut tar = tar::Builder::new(enc);
        tar.append_dir_all(".", path).expect("Fallo en dir_all");
    } else {
        let mut noombre = String::new();
        noombre.push_str(nombre);
        noombre.push_str(".abi.tar.gz");
        let tar_gz = File::create(noombre).expect("Algo fallo al crear el tar_gz");
        let enc = GzEncoder::new(tar_gz, Compression::default());
        let mut tar = tar::Builder::new(enc);

        // Verificando si es que instala con fuentes locales
        let fuentes_locales = source_es_local(meta_file);
        let des: AdiDescarga;
        if fuentes_locales == true {
            des = read_adi_down(meta_file, true);
        } else {
            des = read_adi_down(meta_file, false);
        }
        let mut dirc = String::new();
        dirc.push_str(path);
        dirc.push_str(&des.src);
        dirc.push_str("/");

        let archivos = &adi["instalacion"]["files"].as_array().unwrap();
        for i in 0..archivos.len() {
            let mut archivo = String::new();
            archivo.push_str(&dirc);
            archivo.push_str(&archivos[i].as_str().unwrap().to_string());
            //Arregla el problema de no comprimir carpetas, ejemplo funkin
            let dir_archivos = Path::new(&archivo);
            let es_directorio: bool = dir_archivos.is_dir();
            if es_directorio == true {
                tar.append_dir_all(dir_archivos, dir_archivos).unwrap();
            } else {
                tar.append_path(archivo).unwrap();
            }
        }

        let out_adi = String::from("apkg.adi");
        let f = write_f(&out_adi, meta_file.as_bytes());
        match f {
            Ok(_f) => println!("Es archivo .adi se copio con exito"),
            Err(_e) => {
                println!(
                    "{}",
                    "Ocurrio un error al copiar el archivo .adi al binario".red()
                );
                process::exit(0x0100);
            }
        }
        tar.append_path(&out_adi).unwrap();

        println!("{}", "Limpiando...".yellow());
        remove_df(&out_adi);
    }

    println!("Creacion del binario a sido de manera exitosa!!!");
}
// Funcion para crear un binario apartir de un .ADI
Funcion para crear un binario apartir de un .ADI
Funcion para crear un binario apartir de un . ADI
pub fn crate_bin(path: &str, nombre: &str, meta_file: &str) {
    println!("Iniciando la creacion de un Archivos Binario de Instalacion...");
    let tomy: Value = toml::from_str(meta_file)
        .expect("Al parecer no has escrito bien el archivo ADI o no es un archivo ADI");
    let adi = tomy.as_table().unwrap();
    let conservar_src_dir = binario_completo(meta_file);
    if conservar_src_dir == true {
        let mut noombre = String::new();
        noombre.push_str(nombre);
        noombre.push_str(".abi.tar.gz");
        let tar_gz = File::create(noombre).expect("Algo fallo al crear el tar_gz");
        let enc = GzEncoder::new(tar_gz, Compression::default());
        let mut tar = tar::Builder::new(enc);
        tar.append_dir_all(".", path).expect("Fallo en dir_all");
    } else {
        let mut noombre = String::new();
        noombre.push_str(nombre);
        noombre.push_str(".abi.tar.gz");
        let tar_gz = File::create(noombre).expect("Algo fallo al crear el tar_gz");
        let enc = GzEncoder::new(tar_gz, Compression::default());
        let mut tar = tar::Builder::new(enc);
        // Verificando si es que instala con fuentes locales
        let fuentes_locales = source_es_local(meta_file);
        let des: AdiDescarga;
        if fuentes_locales == true {
            des = read_adi_down(meta_file, true);
        } else {
            des = read_adi_down(meta_file, false);
        }
        let mut dirc = String::new();
        dirc.push_str(path);
        dirc.push_str(&des.src);
        dirc.push_str("/");
        let archivos = &adi["instalacion"]["files"].as_array().unwrap();
        for i in 0..archivos.len() {
            let mut archivo = String::new();
            archivo.push_str(&dirc);
            archivo.push_str(&archivos[i].as_str().unwrap().to_string());
            //Arregla el problema de no comprimir carpetas, ejemplo funkin
            let dir_archivos = Path::new(&archivo);
            let es_directorio: bool = dir_archivos.is_dir();
            if es_directorio == true {
                tar.append_dir_all(dir_archivos, dir_archivos).unwrap();
            } else {
                tar.append_path(archivo).unwrap();
            }
        }
        let out_adi = String::from("apkg.adi");
        let f = write_f(&out_adi, meta_file.as_bytes());
        match f {
            Ok(_f) => println!("Es archivo .adi se copio con exito"),
            Err(_e) => {
                println!(
                    "{}",
                    "Ocurrio un error al copiar el archivo .adi al binario".red()
                );
                process::exit(0x0100);
            }
        }
        tar.append_path(&out_adi).unwrap();
        println!("{}", "Limpiando...".yellow());
        remove_df(&out_adi);
    }
    println!("Creacion del binario a sido de manera exitosa!!!");
}
pub fn crate_bin ( path : & str , nombre : & str , meta_file : & str ) { println ! ( " " ) ; let tomy : Value = toml :: from_str ( meta_file ) . expect ( " " ) ; let adi = tomy . as_table ( ) . unwrap ( ) ; let conservar_src_dir = binario_completo ( meta_file ) ; if conservar_src_dir == true { let mut noombre = String :: new ( ) ; noombre . push_str ( nombre ) ; noombre . push_str ( " " ) ; let tar_gz = File :: create ( noombre ) . expect ( " " ) ; let enc = GzEncoder :: new ( tar_gz , Compression :: default ( ) ) ; let mut tar = tar :: Builder :: new ( enc ) ; tar . append_dir_all ( " " , path ) . expect ( " " ) ; } else { let mut noombre = String :: new ( ) ; noombre . push_str ( nombre ) ; noombre . push_str ( " " ) ; let tar_gz = File :: create ( noombre ) . expect ( " " ) ; let enc = GzEncoder :: new ( tar_gz , Compression :: default ( ) ) ; let mut tar = tar :: Builder :: new ( enc ) ; // Verificando si es que instala con fuentes locales let fuentes_locales = source_es_local ( meta_file ) ; let des : AdiDescarga ; if fuentes_locales == true { des = read_adi_down ( meta_file , true ) ; } else { des = read_adi_down ( meta_file , false ) ; } let mut dirc = String :: new ( ) ; dirc . push_str ( path ) ; dirc . push_str ( & des . src ) ; dirc . push_str ( " " ) ; let archivos = & adi [ " " ] [ " " ] . as_array ( ) . unwrap ( ) ; for i in 0 .. archivos . len ( ) { let mut archivo = String :: new ( ) ; archivo . push_str ( & dirc ) ; archivo . push_str ( & archivos [ i ] . as_str ( ) . unwrap ( ) . to_string ( ) ) ; //Arregla el problema de no comprimir carpetas, ejemplo funkin let dir_archivos = Path :: new ( & archivo ) ; let es_directorio : bool = dir_archivos . is_dir ( ) ; if es_directorio == true { tar . append_dir_all ( dir_archivos , dir_archivos ) . unwrap ( ) ; } else { tar . append_path ( archivo ) . unwrap ( ) ; } } let out_adi = String :: from ( " " ) ; let f = write_f ( & out_adi , meta_file . as_bytes ( ) ) ; match f { Ok ( _f ) => println ! ( " " ) , Err ( _e ) => { println ! ( " " " " red ( ) ) ; process :: exit ( 0x0100 ) ; } } tar . append_path ( & out_adi ) . unwrap ( ) ; println ! ( " " " " yellow ( ) ) ; remove_df ( & out_adi ) ; } println ! ( " " ) ; }
Funcion para crear un binario apartir de un .ADI
Funcion para crear un binario apartir de un . ADI
path
&str
nombre
&str
meta_file
&str
path
&str
nombre
&str
meta_file
&str