diff --git a/src/cli.rs b/src/cli.rs
index f457fac..204150a 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -14,6 +14,8 @@
//! along with vnetod. If not, see .
//!
+use std::path::PathBuf;
+
use clap::Parser;
#[derive(Parser)]
@@ -31,6 +33,9 @@ under certain conditions;
"
)]
pub struct Args {
+ #[clap(short = 'f', long, default_value = ".env")]
+ pub file: PathBuf,
+
#[clap(value_parser)]
pub section_names: Vec,
}
diff --git a/src/main.rs b/src/main.rs
index 3f068bd..e7a4a12 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -17,6 +17,7 @@
mod cli;
+use std::path::Path;
use std::{
fs::File,
io::{BufWriter, Write},
@@ -27,15 +28,15 @@ use clap::Parser;
fn main() -> Result<(), Error> {
let cli = cli::Args::parse();
- change_env_layout(&cli.section_names)?;
+ change_env_layout(&cli.file, &cli.section_names)?;
Ok(())
}
-fn change_env_layout(section_names: &[String]) -> Result<(), Error> {
- let content = std::fs::read_to_string(".env").map_err(|_| Error::OpenFile)?;
+fn change_env_layout(file: &Path, section_names: &[String]) -> Result<(), Error> {
+ let content = std::fs::read_to_string(file).map_err(|_| Error::OpenFile)?;
- let mut writer = File::create(".env")
+ let mut writer = File::create(file)
.map_err(|_| Error::OpenFile)
.map(BufWriter::new)?;