summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs
index 8befc88..e0d42f9 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,15 +1,27 @@
-use std::{process::Command, error::Error, fs, env, time::Duration};
+use std::{process::Command, error::Error, fs, env, time::Duration, path::Path};
use fantoccini::{ClientBuilder, Locator};
use log::info;
use tokio::time;
+use clap::Parser;
static PROFILE_ROOT: &str = "/tmp/geckodriver-dashboard";
+/// Simple program to greet a person
+#[derive(Parser, Debug)]
+#[command(author, version, about, long_about = None)]
+struct Args {
+ /// Output path for png image.
+ #[arg(short, long)]
+ path: String,
+}
+
// let's set up the sequence of steps we want the browser to take
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
pretty_env_logger::init();
+ let args = Args::parse();
+
info!("Current directory: {}", env::current_dir()?.display());
fs::create_dir(PROFILE_ROOT).ok();
let mut geckodriver = Command::new("geckodriver")
@@ -26,11 +38,14 @@ async fn main() -> Result<(), Box<dyn Error>> {
let e = c.find(Locator::Css("#app")).await?;
let img = e.screenshot().await?;
- fs::write("index.png", img)?;
+ let output_path = Path::new(&args.path);
+ let tmp_path = output_path.join(".tmp");
+ fs::write(&tmp_path, img)?;
+ fs::rename(&tmp_path, output_path)?;
time::sleep(Duration::from_secs(15)).await;
}
- c.close().await?;
- geckodriver.kill()?;
- Ok(())
+ // c.close().await?;
+ // geckodriver.kill()?;
+ // Ok(())
}