summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorConrad Ludgate <conradludgate@gmail.com>2021-05-09 19:12:41 +0100
committerGitHub <noreply@github.com>2021-05-09 19:12:41 +0100
commit4b9ff801a6dad70b25a577ab717c70db41a3dbc3 (patch)
treefb26ee17b0223348a456ae334fa90d6e7612f9e4 /src
parentbd4db1fa038bc338f2b608858c2ffd3c25e0abe7 (diff)
fix some bugs (#90)
* fix some bugs * format
Diffstat (limited to 'src')
-rw-r--r--src/command/history.rs43
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);