test
This commit is contained in:
parent
96713d5110
commit
5baadcf6bb
@ -54,3 +54,26 @@ pub fn load_sources(path: &str) -> io::Result<Vec<AptSource>> {
|
||||
|
||||
Ok(sources)
|
||||
}
|
||||
|
||||
use std::fs;
|
||||
use std::error::Error;
|
||||
use serde::Serialize;
|
||||
|
||||
/// Save sources into a TOML file with a top-level `repositories` array-of-tables
|
||||
pub fn save_sources_to_toml(sources: &[AptSource], path: &str) -> Result<(), Box<dyn Error>> {
|
||||
// tiny wrapper so toml serializes into:
|
||||
// [[repositories]]
|
||||
// ...
|
||||
#[derive(Serialize)]
|
||||
struct Repos<'a> {
|
||||
repositories: &'a [AptSource],
|
||||
}
|
||||
|
||||
let wrapper = Repos { repositories: sources };
|
||||
|
||||
let toml_string = toml::to_string_pretty(&wrapper)?;
|
||||
fs::write(path, toml_string)?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
12
src/main.rs
12
src/main.rs
@ -1,12 +1,12 @@
|
||||
mod loaders;
|
||||
mod structs;
|
||||
mod loaders;
|
||||
|
||||
use crate::loaders::sources::load_sources;
|
||||
use crate::loaders::sources::{load_sources, save_sources_to_toml};
|
||||
|
||||
fn main() -> std::io::Result<()> {
|
||||
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let sources = load_sources("/etc/apt/sources.list")?;
|
||||
for source in sources {
|
||||
println!("{:?}", source);
|
||||
}
|
||||
save_sources_to_toml(&sources, "sources.toml")?;
|
||||
println!("Saved sources to sources.toml");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user