Skip to content

Commit 4ae6c22

Browse files
committed
Emulate the behavior of which
1 parent e39b8e6 commit 4ae6c22

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

crates/cli/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ async fn main() -> Result<(), Box<dyn Error>> {
4848
}
4949
args::Mode::Query => {
5050
let (conn, _, _, _) = setup::setup(&flags).await?;
51-
return query::query(&args, &conn);
51+
return query::query(&args, flags.silent, &conn);
5252
}
5353
args::Mode::X => (),
5454
}

crates/cli/src/query.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,21 @@ use std::error::Error;
33
use libpkgx::pantry_db;
44
use rusqlite::Connection;
55

6-
pub fn query(args: &Vec<String>, conn: &Connection) -> Result<(), Box<dyn Error>> {
6+
pub fn query(args: &Vec<String>, silent: bool, conn: &Connection) -> Result<(), Box<dyn Error>> {
7+
let mut fail = false;
78
for arg in args {
8-
let rv = pantry_db::which(arg, conn)?;
9-
if rv.is_empty() {
9+
let projects = pantry_db::which(arg, conn)?;
10+
if projects.is_empty() && silent {
1011
std::process::exit(1);
12+
} else if projects.is_empty() {
13+
println!("{} not found", arg);
14+
fail = true;
15+
} else if !silent {
16+
println!("{}", projects.join(", "));
1117
}
1218
}
19+
if fail {
20+
std::process::exit(1);
21+
}
1322
Ok(())
1423
}

0 commit comments

Comments
 (0)