Skip to content

Commit

Permalink
forward args
Browse files Browse the repository at this point in the history
  • Loading branch information
egoist committed Dec 7, 2021
1 parent 8ea6926 commit e9632d6
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 15 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## v0.1.15

- Forward args to `install` `uninstall` and `add` commands

## v0.1.14

- Commands like `install` `uninstall` `add` are now handled before npm scripts, previously if there're no scripts or no package.json the command will not be executed.
Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "dum"
version = "0.1.14"
version = "0.1.15"
edition = "2021"
license = "MIT"
description = "An npm scripts runner"
Expand Down
27 changes: 16 additions & 11 deletions src/args.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use std::process::exit;
#[derive(Debug)]
pub struct AppArgs {
pub script_name: String,
pub forwared: String,
pub forwarded: String,
pub change_dir: PathBuf,
pub command: String,
pub interactive: bool,
Expand All @@ -19,7 +19,7 @@ pub fn parse_args(args_vec: &[String]) -> AppArgs {
let mut args = AppArgs {
script_name: "".to_string(),
change_dir: PathBuf::from(env::current_dir().as_ref().unwrap()),
forwared: "".to_string(),
forwarded: "".to_string(),
command: "".to_string(),
interactive: false,
};
Expand Down Expand Up @@ -62,16 +62,21 @@ pub fn parse_args(args_vec: &[String]) -> AppArgs {
}
}
} else {
// forwared flags
args.forwared.push_str(" ");
args.forwared.push_str(&v);
// forwarded flags
args.forwarded.push_str(" ");
args.forwarded.push_str(&v);
}
} else if COMMANDS_TO_FORWARD.contains(&v.as_str()) {
} else if args.command.is_empty()
&& (COMMANDS_TO_FORWARD.contains(&v.as_str()) || v == "run")
{
args.command = match v.as_ref() {
"i" => "install".to_string(),
_ => v.to_string(),
};
} else if args.script_name.is_empty() {
} else if (args.command.is_empty() || args.command == "run")
&& args.script_name.is_empty()
{
args.command = "run".to_string();
args.script_name = match v.as_ref() {
"t" => "test".to_string(),
_ => v.to_string(),
Expand All @@ -81,8 +86,8 @@ pub fn parse_args(args_vec: &[String]) -> AppArgs {
eprintln!("You can't pass arguments to interactive mode");
exit(1);
}
args.forwared.push_str(" ");
args.forwared.push_str(&v);
args.forwarded.push_str(" ");
args.forwarded.push_str(&v);
}
}
None => break,
Expand Down Expand Up @@ -141,14 +146,14 @@ mod tests {
fn test_parse() {
let args = parse_args(&vec_of_strings!["a", "b", "-c", "-d", "foo", "bar"]);
assert_eq!(args.script_name, "a".to_string());
assert_eq!(args.forwared, " b -c -d foo bar".to_string());
assert_eq!(args.forwarded, " b -c -d foo bar".to_string());
}

#[test]
fn test_parse_own_flags() {
let args = parse_args(&vec_of_strings!["-c", ".", "a"]);
assert_eq!(args.script_name, "a".to_string());
assert_eq!(args.change_dir, PathBuf::from("."));
assert_eq!(args.forwared, "".to_string());
assert_eq!(args.forwarded, "".to_string());
}
}
4 changes: 2 additions & 2 deletions src/run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ pub fn run(app_args: &args::AppArgs) {
}

run_command(
&[&pm.unwrap(), &app_args.command, &app_args.forwared],
&[&pm.unwrap(), &app_args.command, &app_args.forwarded],
&RunOptions {
current_dir: app_args.change_dir.clone(),
envs: HashMap::new(),
Expand Down Expand Up @@ -130,7 +130,7 @@ pub fn run(app_args: &args::AppArgs) {
}

let mut script_name = app_args.script_name.clone();
let mut forwarded = app_args.forwared.clone();
let mut forwarded = app_args.forwarded.clone();

if !app_args.interactive && app_args.command == "run" && script_name.is_empty() {
println!("\nAvailable scripts:\n");
Expand Down

0 comments on commit e9632d6

Please sign in to comment.