Rewritten config file name parsing
This commit is contained in:
parent
bd4c29190a
commit
94fc3d150b
1 changed files with 24 additions and 17 deletions
|
@ -79,23 +79,30 @@ pub fn launch_tasks(config_files: &Vec<Config>, tasks: &mut Vec<JoinHandle<()>>,
|
||||||
let split_config_name = config.name.split("::").collect::<Vec<&str>>();
|
let split_config_name = config.name.split("::").collect::<Vec<&str>>();
|
||||||
let associated_device_name = split_config_name[0];
|
let associated_device_name = split_config_name[0];
|
||||||
if associated_device_name == device.1.name().unwrap().replace("/", "") {
|
if associated_device_name == device.1.name().unwrap().replace("/", "") {
|
||||||
let (window_class, layout) = if split_config_name.len() == 1 {
|
let (window_class, layout) = match split_config_name.len() {
|
||||||
(Client::Default, 0)
|
1 => (Client::Default, 0),
|
||||||
} else if split_config_name.len() == 2 {
|
2 => {
|
||||||
if split_config_name[1].len() == 1 {
|
if let Ok(layout) = split_config_name[1].parse::<u16>() {
|
||||||
(Client::Default, split_config_name[1].parse::<u16>().unwrap_or(1))
|
(Client::Default, layout)
|
||||||
} else {
|
} else {
|
||||||
(Client::Class(split_config_name[1].to_string()), 0)
|
(Client::Class(split_config_name[1].to_string()), 0)
|
||||||
}
|
}
|
||||||
} else if split_config_name.len() == 3 {
|
},
|
||||||
if split_config_name[1].len() == 1 {
|
3 => {
|
||||||
(Client::Class(split_config_name[2].to_string()), split_config_name[1].parse::<u16>().unwrap_or(1))
|
if let Ok(layout) = split_config_name[1].parse::<u16>() {
|
||||||
} else {
|
(Client::Class(split_config_name[2].to_string()), layout)
|
||||||
(Client::Class(split_config_name[1].to_string()), split_config_name[2].parse::<u16>().unwrap_or(1))
|
} else if let Ok(layout) = split_config_name[2].parse::<u16>() {
|
||||||
}
|
(Client::Class(split_config_name[1].to_string()), layout)
|
||||||
} else {
|
} else {
|
||||||
(Client::Default, 0)
|
println!("Warning: unable to parse layout number in {}, treating it as default.", config.name);
|
||||||
};
|
(Client::Default, 0)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
_ => {
|
||||||
|
println!("Warning: too many arguments in config file name {}, treating it as default.", config.name);
|
||||||
|
(Client::Default, 0)
|
||||||
|
},
|
||||||
|
};
|
||||||
config.associations.client = window_class;
|
config.associations.client = window_class;
|
||||||
config.associations.layout = layout;
|
config.associations.layout = layout;
|
||||||
config_list.push(config.clone());
|
config_list.push(config.clone());
|
||||||
|
|
Loading…
Add table
Reference in a new issue