diff options
author | Conrad Ludgate <conradludgate@gmail.com> | 2021-05-09 19:12:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-09 19:12:41 +0100 |
commit | 4b9ff801a6dad70b25a577ab717c70db41a3dbc3 (patch) | |
tree | fb26ee17b0223348a456ae334fa90d6e7612f9e4 /src | |
parent | bd4db1fa038bc338f2b608858c2ffd3c25e0abe7 (diff) |
fix some bugs (#90)
* fix some bugs
* format
Diffstat (limited to 'src')
-rw-r--r-- | src/command/history.rs | 43 |
1 files changed, 27 insertions, 16 deletions
diff --git a/src/command/history.rs b/src/command/history.rs index 5a943dea..5811eed9 100644 --- a/src/command/history.rs +++ b/src/command/history.rs @@ -155,23 +155,34 @@ impl Cmd { human, cmd_only, } => { - let params = (session, cwd); - let cwd = env::current_dir()?.display().to_string(); - let session = env::var("ATUIN_SESSION")?; - - let query_session = format!("select * from history where session = {};", session); - - let query_dir = format!("select * from history where cwd = {};", cwd); - let query_session_dir = format!( - "select * from history where cwd = {} and session = {};", - cwd, session - ); + let session = if *session { + Some(env::var("ATUIN_SESSION")?) + } else { + None + }; + let cwd = if *cwd { + Some(env::current_dir()?.display().to_string()) + } else { + None + }; - let history = match params { - (false, false) => db.list(None, false).await?, - (true, false) => db.query_history(query_session.as_str()).await?, - (false, true) => db.query_history(query_dir.as_str()).await?, - (true, true) => db.query_history(query_session_dir.as_str()).await?, + let history = match (session, cwd) { + (None, None) => db.list(None, false).await?, + (None, Some(cwd)) => { + let query = format!("select * from history where cwd = {};", cwd); + db.query_history(&query).await? + } + (Some(session), None) => { + let query = format!("select * from history where session = {};", session); + db.query_history(&query).await? + } + (Some(session), Some(cwd)) => { + let query = format!( + "select * from history where cwd = {} and session = {};", + cwd, session + ); + db.query_history(&query).await? + } }; print_list(&history, *human, *cmd_only); |