monger_core/os/linux/
ubuntu.rs

1use super::LinuxType;
2use crate::{os::arch::Architecture, util::get_from_str};
3
4pub fn check_ubuntu(id: &str, version_id: Option<&str>) -> Option<LinuxType> {
5    if id == "ubuntu" {
6        return check_ubuntu_version(version_id);
7    }
8
9    None
10}
11
12fn check_ubuntu_version(version_id: Option<&str>) -> Option<LinuxType> {
13    let mut version_numbers = version_id?.split('.');
14
15    match version_numbers.next().and_then(get_from_str::<u8>) {
16        Some(i) if i >= 18 => Some(LinuxType::Ubuntu1804),
17        Some(i) if i >= 16 => Some(LinuxType::Ubuntu1604(Architecture::X86_64)),
18        Some(i) if i >= 14 => Some(LinuxType::Ubuntu1404),
19        Some(i) if i >= 12 => Some(LinuxType::Ubuntu1204),
20        _ => None,
21    }
22}