add extra files in src/installer for installing stuff (it just prints out the specified options but in extra functions)

axtloss/rework-partitioning
amy 3 years ago
parent 60127404da
commit 8624a1c287

@ -0,0 +1,45 @@
pub fn choose_pkgs(desktop_setup: &str, de: &str, dm: &str) {
if desktop_setup == "custom" {
install_desktop(de, dm);
} else {
println!("Installing {}", desktop_setup);
match desktop_setup {
"onyx" => {
install_desktop("onyx", "lightdm");
}
"gnome" => {
install_desktop("gnome", "gdm");
},
"kde" => {
install_desktop("kde", "sddm");
},
"budgie" => {
install_desktop("budgie", "lightdm");
},
"cinnamon" => {
install_desktop("cinnamon", "lightdm");
},
"mate" => {
install_desktop("mate", "lightdm");
},
"xfce" => {
install_desktop("xfce", "lightdm");
},
"pantheon" => {
install_desktop("pantheon", "lightdm");
},
"enlightenment" => {
install_desktop("enlightenment", "lightdm");
},
_ => {
println!("Unknown desktop setup");
}
}
}
}
fn install_desktop(de: &str, dm: &str) {
println!("Installing {}", de);
println!("Installing {}", dm);
}

@ -0,0 +1,4 @@
pub mod partition;
pub mod network;
pub mod users;
pub mod desktops;

@ -0,0 +1,11 @@
pub fn set_hostname(hostname: &str) {
println!("Setting hostname to {}", hostname);
}
pub fn enable_ipv6(ipv6: bool) {
if ipv6 {
println!("enabling ipv6");
} else {
println!("disabling ipv6");
}
}

@ -1,8 +1,6 @@
pub fn partition(root: &str, boot: &str, swap: &str, mode: &str, device: &str) {
pub fn partition(device: &str, mode: &str) {
if mode == "manual" {
println!("Using {} as root partition", root);
println!("Using {} as boot partition", boot);
println!("Using {} as swap partition", swap);
println!("Manual partitioning");
} else {
println!("automatically partitioning {}", device);
}

@ -0,0 +1,13 @@
pub fn new_user(username: &str, hasroot: bool, password: &str) {
println!("Creating new user '{}'", username);
if hasroot {
println!("User '{}' will have root privileges", username);
} else {
println!("User '{}' will not have root privileges", username);
}
println!("Setting password for user '{}' to '{}'", username, password);
}
pub fn root_pass(root_pass: &str) {
println!("Setting root password to '{}'", root_pass);
}

@ -1,3 +1,6 @@
mod installer;
use crate::installer::*;
use clap::{App, Arg, SubCommand};
fn main() {
@ -10,20 +13,13 @@ fn main() {
.arg(
Arg::with_name("mode")
.help("If jade should automatically partition (mode = auto) or the user manually partitioned it (mode = manual)")
.possible_values(&["auto", "manual"])
.required(true),
)
.arg(
Arg::with_name("root")
.help("The root partition(mode = manual) or device to partition(mode = manual)")
.required(true),
)
.arg(
Arg::with_name("boot")
.help("The boot partition to use (only read if mode is manual)")
)
.arg(
Arg::with_name("swap")
.help("The swap partition to use (only read if mode is manual)")
Arg::with_name("device")
.help("The device to partition")
.required_if("mode", "auto"),
)
)
.subcommand(
@ -55,11 +51,6 @@ fn main() {
.help("The hostname to use")
.required(true),
)
.arg(
Arg::with_name("wifi")
.help("If wifi is used (will launch nmtui if set to true)")
.required(true),
)
.arg(
Arg::with_name("ipv6")
.help("Wether ipv6 should be enabled")
@ -87,6 +78,7 @@ fn main() {
.help("The password to set")
.required(true),
)
)
.subcommand(
SubCommand::with_name("rootPass")
.about("Set the root password")
@ -96,7 +88,6 @@ fn main() {
.required(true),
),
)
),
)
.subcommand(
SubCommand::with_name("desktops")
@ -120,20 +111,7 @@ fn main() {
if let Some(app) = app.subcommand_matches("partition") {
let mode = app.value_of("mode").unwrap();
let root = app.value_of("root").unwrap_or("none");
let boot = app.value_of("boot").unwrap_or(root);
let swap = app.value_of("swap").unwrap_or("none");
let device = if app.value_of("mode").unwrap() == "auto" {
root
} else {
"none"
};
println!("mode: {}", mode);
println!("root: {}", root);
println!("boot: {}", boot);
println!("swap: {}", swap);
println!("device: {}", device);
partition::partition(app.value_of("device").unwrap(), app.value_of("mode").unwrap());
} else if let Some(app) = app.subcommand_matches("locale") {
let kbrlayout = app.value_of("keyboard").unwrap();
let timezn = app.value_of("timezone").unwrap();
@ -142,31 +120,18 @@ fn main() {
println!("timezone: {}", timezn);
println!("locales: {:?}", locale);
} else if let Some(app) = app.subcommand_matches("networking") {
let hostname = app.value_of("hostname").unwrap();
let wifi = app.value_of("wifi").unwrap();
let ipv6 = app.value_of("ipv6").unwrap();
println!("hostname: {}", hostname);
println!("wifi: {}", wifi);
println!("ipv6: {}", ipv6);
network::enable_ipv6(app.value_of("ipv6").unwrap().parse::<bool>().unwrap());
network::set_hostname(app.value_of("hostname").unwrap())
} else if let Some(app) = app.subcommand_matches("users") {
if let Some(app) = app.subcommand_matches("newUser") {
let username = app.value_of("username").unwrap();
let hasroot = app.value_of("hasroot").unwrap();
let password = app.value_of("password").unwrap();
println!("username: {}", username);
println!("hasroot: {}", hasroot);
println!("password: {}", password);
users::new_user(app.value_of("username").unwrap(), app.value_of("hasroot").unwrap().parse::<bool>().unwrap(), app.value_of("password").unwrap());
} else if let Some(app) = app.subcommand_matches("rootPass") {
let rootpass = app.value_of("rootPass").unwrap();
println!("{}", rootpass);
users::root_pass(app.value_of("rootPass").unwrap());
}
} else if let Some(app) = app.subcommand_matches("desktops") {
let desktopsetup = app.value_of("desktopsetup").unwrap();
let de = app.value_of("de").unwrap_or("none");
let dm = app.value_of("dm").unwrap_or("none");
println!("desktopsetup: {}", desktopsetup);
println!("de: {}", de);
println!("dm: {}", dm);
desktops::choose_pkgs(app.value_of("desktopsetup").unwrap(), app.value_of("de").unwrap_or("none"), app.value_of("dm").unwrap_or("none"));
} else {
println!("Running TUI installer");
}

Loading…
Cancel
Save