From c311dd9e8922af26f1a71fda70a3f97a867f673d Mon Sep 17 00:00:00 2001 From: "Peter Schilling (aider)" Date: Wed, 5 Feb 2025 20:40:05 -0800 Subject: [PATCH 1/4] feat: Add support for piping input to keys command --- src/lib.rs | 10 +++++++--- src/main.rs | 7 ++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index cd0787a..fd9315a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -225,14 +225,18 @@ pub fn print_lines(lines: &[parser::Line], writer: &mut W, use_color: pub fn print_env_keys_to_writer(file_path: &str, writer: &mut W) { if let Ok(env_vars) = read_env_vars(file_path) { - for key in env_vars.keys() { - writeln!(writer, "{}", key).unwrap(); - } + print_keys_from_map(&env_vars, writer); } else { eprintln!("Error reading .env file"); } } +pub fn print_keys_from_map(env_vars: &HashMap, writer: &mut W) { + for key in env_vars.keys() { + writeln!(writer, "{}", key).unwrap(); + } +} + pub fn delete_env_vars( content: &str, keys: &[String], diff --git a/src/main.rs b/src/main.rs index 4337cad..0da3135 100644 --- a/src/main.rs +++ b/src/main.rs @@ -128,7 +128,12 @@ fn main() { return; // Exit after printing } Some(Commands::Keys) => { - print_env_keys_to_writer(&cli.file, &mut std::io::stdout()); + if !atty::is(Stream::Stdin) { + let env_vars = parse_stdin(); + print_keys_from_map(&env_vars, &mut std::io::stdout()); + } else { + print_env_keys_to_writer(&cli.file, &mut std::io::stdout()); + } } Some(Commands::Delete { keys }) => match read_env_file_contents(&cli.file) { Ok(old_content) => match envset::delete_env_vars(&old_content, keys) { From 00ee20cc6cb316fc1b7dd8010d184732d83ced47 Mon Sep 17 00:00:00 2001 From: "Peter Schilling (aider)" Date: Wed, 5 Feb 2025 20:41:01 -0800 Subject: [PATCH 2/4] fix: Add missing print_keys_from_map import to main.rs --- src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 0da3135..0537a1a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,8 +7,8 @@ use std::process; use envset::{ add_env_vars, parse_args, parse_stdin, print_env_file_contents, print_env_keys_to_writer, - print_env_vars, print_env_vars_as_json, print_parse_tree, read_env_file_contents, - read_env_vars, + print_env_vars, print_env_vars_as_json, print_keys_from_map, print_parse_tree, + read_env_file_contents, read_env_vars, }; fn print_diff(old_content: &str, new_content: &str, use_color: bool) { From 50a7199d8ef43e3c280d49a8c08297199c62936d Mon Sep 17 00:00:00 2001 From: Peter Schilling Date: Wed, 5 Feb 2025 20:45:39 -0800 Subject: [PATCH 3/4] changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e5c89e6 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,7 @@ +# changelog + +## [Unreleased] + +### Fixed + +- piping .env to stdin and running envset keys will now print the keys instead of writing them to .env From 0e55c31fb877a6d7d55d73472aa56811cbb47dbd Mon Sep 17 00:00:00 2001 From: Peter Schilling Date: Wed, 5 Feb 2025 20:47:06 -0800 Subject: [PATCH 4/4] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ff07c1..53f78ff 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ brew install schpet/tap/envset cargo install envset ``` -otherwise, grab the [latest release](https://github.com/schpet/envset/releases). +otherwise, grab the [latest release](https://github.com/schpet/envset/releases/latest). ## usage