fn get_partition_details()

in src/distro.rs [152:186]


    fn get_partition_details(cli_info: &CliInfo) -> Vec<PartInfo> {
        let mut parts: Vec<PartInfo> = Vec::new();
        let disk_info = Self::get_all_recovery_partitions(cli_info);

        for line in disk_info.lines() {
            let v: Vec<&str> = line.trim().split(' ').collect();
            let _number = v[0].to_string().parse::<i32>().unwrap();
            let _part_type = v[5].to_string();
            let partition_path = format!("{}{}", helper::get_recovery_disk_path(cli_info), _number);
            let mut partition_fstype = if let Ok(pfs) =
                Self::get_partition_filesystem(&partition_path)
            {
                pfs
            } else {
                error!("Not able to determine the partition filesystem. ALAR is not able to proceed. Exiting.");
                process::exit(1);
            };

            // An empty filesystem info is a hint that the partition is usual encrypted if ADE is in use
            if partition_fstype.is_empty() {
                partition_fstype = "crypt?".to_string();
            } else {
                partition_fstype = partition_fstype.trim().to_string();
            }

            parts.push(PartInfo {
                number: _number,
                part_type: _part_type,
                fstype: partition_fstype,
                contains_os: false,
                logical_volumes: LogicalVolumesType::None,
            });
        }
        parts
    }