Started work on config file and parsing
This commit is contained in:
parent
8e45b2b65a
commit
c6c2a89eb2
4 changed files with 163 additions and 0 deletions
96
Cargo.lock
generated
96
Cargo.lock
generated
|
@ -118,12 +118,34 @@ version = "1.0.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
|
checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "equivalent"
|
||||||
|
version = "1.0.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "hashbrown"
|
||||||
|
version = "0.15.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "heck"
|
name = "heck"
|
||||||
version = "0.5.0"
|
version = "0.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "indexmap"
|
||||||
|
version = "2.7.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f"
|
||||||
|
dependencies = [
|
||||||
|
"equivalent",
|
||||||
|
"hashbrown",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "is_terminal_polyfill"
|
name = "is_terminal_polyfill"
|
||||||
version = "1.70.1"
|
version = "1.70.1"
|
||||||
|
@ -158,6 +180,8 @@ version = "0.9.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"color-print",
|
"color-print",
|
||||||
|
"serde",
|
||||||
|
"toml",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -178,6 +202,35 @@ dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde"
|
||||||
|
version = "1.0.217"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
|
||||||
|
dependencies = [
|
||||||
|
"serde_derive",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde_derive"
|
||||||
|
version = "1.0.217"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde_spanned"
|
||||||
|
version = "0.6.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "strsim"
|
name = "strsim"
|
||||||
version = "0.11.1"
|
version = "0.11.1"
|
||||||
|
@ -195,6 +248,40 @@ dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "toml"
|
||||||
|
version = "0.8.19"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
"serde_spanned",
|
||||||
|
"toml_datetime",
|
||||||
|
"toml_edit",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "toml_datetime"
|
||||||
|
version = "0.6.8"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
|
||||||
|
dependencies = [
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "toml_edit"
|
||||||
|
version = "0.22.22"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5"
|
||||||
|
dependencies = [
|
||||||
|
"indexmap",
|
||||||
|
"serde",
|
||||||
|
"serde_spanned",
|
||||||
|
"toml_datetime",
|
||||||
|
"winnow",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "unicode-ident"
|
name = "unicode-ident"
|
||||||
version = "1.0.14"
|
version = "1.0.14"
|
||||||
|
@ -279,3 +366,12 @@ name = "windows_x86_64_msvc"
|
||||||
version = "0.52.6"
|
version = "0.52.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "winnow"
|
||||||
|
version = "0.6.21"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e6f5bb5257f2407a5425c6e749bfd9692192a73e70a6060516ac04f889087d68"
|
||||||
|
dependencies = [
|
||||||
|
"memchr",
|
||||||
|
]
|
||||||
|
|
|
@ -8,3 +8,5 @@ edition = "2021"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = { version = "4.5.18", features = ["cargo", "derive"] }
|
clap = { version = "4.5.18", features = ["cargo", "derive"] }
|
||||||
color-print = "0.3.5"
|
color-print = "0.3.5"
|
||||||
|
serde = "1.0.217"
|
||||||
|
toml = "0.8.19"
|
||||||
|
|
17
config.template
Normal file
17
config.template
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
[PackageManagers]
|
||||||
|
apt = n
|
||||||
|
dnf = y
|
||||||
|
pacman = n
|
||||||
|
python = n
|
||||||
|
urpmi = n
|
||||||
|
zypper = n
|
||||||
|
|
||||||
|
[Firmware]
|
||||||
|
firmware = y
|
||||||
|
|
||||||
|
[Containers]
|
||||||
|
distrobox = y
|
||||||
|
flatpak = y
|
||||||
|
podman = y
|
||||||
|
snap = n
|
||||||
|
|
48
src/main.rs
48
src/main.rs
|
@ -3,6 +3,12 @@ use std::path::{Path};
|
||||||
use color_print::{cprintln};
|
use color_print::{cprintln};
|
||||||
use clap::{command, Arg, ArgAction};
|
use clap::{command, Arg, ArgAction};
|
||||||
|
|
||||||
|
//use std::fs::File;
|
||||||
|
//use std::io::Write;
|
||||||
|
//use serde::Serialize;
|
||||||
|
//use toml::to_string;
|
||||||
|
|
||||||
|
|
||||||
const VERSION: &'static str = "0.9.1";
|
const VERSION: &'static str = "0.9.1";
|
||||||
|
|
||||||
fn trim_newline(s: &mut String) {
|
fn trim_newline(s: &mut String) {
|
||||||
|
@ -14,6 +20,35 @@ fn trim_newline(s: &mut String) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*fn toml_create_default () {
|
||||||
|
#[derive(Serialize)]
|
||||||
|
struct toml_data {
|
||||||
|
config: PackageManagers,
|
||||||
|
config: Firmware,
|
||||||
|
config: Containers,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct PackageMangers {
|
||||||
|
apt: bool,
|
||||||
|
dnf: bool,
|
||||||
|
pacman: bool,
|
||||||
|
python: bool,
|
||||||
|
urppmi: bool,
|
||||||
|
zypper: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Firmware {
|
||||||
|
firmware: bool
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Containers {
|
||||||
|
distrobox: bool,
|
||||||
|
flatpak: bool,
|
||||||
|
podman: bool,
|
||||||
|
snap: bool,
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
|
||||||
fn update_apt() {
|
fn update_apt() {
|
||||||
let find_sudo = Command::new("which")
|
let find_sudo = Command::new("which")
|
||||||
.arg("sudo").stdout(Stdio::piped()).output().unwrap();
|
.arg("sudo").stdout(Stdio::piped()).output().unwrap();
|
||||||
|
@ -368,6 +403,19 @@ fn main() {
|
||||||
// Clear terminal, and move cursor to 1,1 inside the terminal
|
// Clear terminal, and move cursor to 1,1 inside the terminal
|
||||||
// print!("{esc}[2J{esc}[1;1H", esc = 27 as char);
|
// print!("{esc}[2J{esc}[1;1H", esc = 27 as char);
|
||||||
|
|
||||||
|
// Check for default ini file's existence and
|
||||||
|
// create new one if file does not exist
|
||||||
|
let toml_exists = Path::new("~/.config/osupdater.toml").exists();
|
||||||
|
if toml_exists == false {
|
||||||
|
println!("No config file found");
|
||||||
|
println!("Creating new config at : ~/.config/osupdater.toml");
|
||||||
|
//toml_create_default ();
|
||||||
|
} else if toml_exists == true {
|
||||||
|
println!("Config file found at ~/.config/osupater.toml");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse ini
|
||||||
|
|
||||||
// Find sudo
|
// Find sudo
|
||||||
let find_sudo = Command::new("which")
|
let find_sudo = Command::new("which")
|
||||||
.arg("sudo").stdout(Stdio::piped()).output().unwrap();
|
.arg("sudo").stdout(Stdio::piped()).output().unwrap();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue