[INFO] cloning repository https://github.com/octavianarmasu/Rustybox [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/octavianarmasu/Rustybox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foctavianarmasu%2FRustybox", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foctavianarmasu%2FRustybox'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d920178ddd5a4a4c77e8b963f22b4b78a2f8c05c [INFO] linting octavianarmasu/Rustybox against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Foctavianarmasu%2FRustybox" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/octavianarmasu/Rustybox [INFO] finished tweaking git repo https://github.com/octavianarmasu/Rustybox [INFO] tweaked toml for git repo https://github.com/octavianarmasu/Rustybox written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/octavianarmasu/Rustybox on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/octavianarmasu/Rustybox already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 240a4ebae2adb67024715d34c5561746a6b20f0f5512d5b1d6261bead701176e [INFO] running `Command { std: "docker" "start" "-a" "240a4ebae2adb67024715d34c5561746a6b20f0f5512d5b1d6261bead701176e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "240a4ebae2adb67024715d34c5561746a6b20f0f5512d5b1d6261bead701176e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "240a4ebae2adb67024715d34c5561746a6b20f0f5512d5b1d6261bead701176e", kill_on_drop: false }` [INFO] [stdout] 240a4ebae2adb67024715d34c5561746a6b20f0f5512d5b1d6261bead701176e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 015b15866d69e4ab9ba8baab4b30764fbf14e561a2b9b8378a4d6b8f45c2f0dc [INFO] running `Command { std: "docker" "start" "-a" "015b15866d69e4ab9ba8baab4b30764fbf14e561a2b9b8378a4d6b8f45c2f0dc", kill_on_drop: false }` [INFO] [stderr] Checking rustybox v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | fn echo(args: & Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 12 - fn echo(args: & Vec) -> i32 { [INFO] [stdout] 12 + fn echo(args: &[String]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | fn cat(args: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 48 - fn cat(args: &Vec) -> i32 { [INFO] [stdout] 48 + fn cat(args: &[String]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:56:48 [INFO] [stdout] | [INFO] [stdout] 56 | if let Ok(result) = fs::read_to_string(&arg) { [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | if !fs::metadata(&arg).is_ok(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:66:16 [INFO] [stdout] | [INFO] [stdout] 66 | fn mkdir(args: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 66 - fn mkdir(args: &Vec) -> i32 { [INFO] [stdout] 66 + fn mkdir(args: &[String]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:68:25 [INFO] [stdout] | [INFO] [stdout] 68 | if !fs::metadata(&arg).is_ok(){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:69:20 [INFO] [stdout] | [INFO] [stdout] 69 | if let Err(_) = fs::create_dir(&arg){ [INFO] [stdout] | -------^^^^^^----------------------- help: try: `if fs::create_dir(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:69:44 [INFO] [stdout] | [INFO] [stdout] 69 | if let Err(_) = fs::create_dir(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | fn mv(args: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 79 - fn mv(args: &Vec) -> i32 { [INFO] [stdout] 79 + fn mv(args: &[String]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 84 | if let Err(_) = fs::rename(&args[2], &args[3]){ [INFO] [stdout] | -------^^^^^^--------------------------------- help: try: `if fs::rename(&args[2], &args[3]).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:119:27 [INFO] [stdout] | [INFO] [stdout] 119 | if create == 0 && !fs::metadata(path).is_ok(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:91:16 [INFO] [stdout] | [INFO] [stdout] 91 | fn touch(args: &Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 91 - fn touch(args: &Vec) -> i32{ [INFO] [stdout] 91 + fn touch(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:120:20 [INFO] [stdout] | [INFO] [stdout] 120 | if let Err(_) = fs::File::create(path){ [INFO] [stdout] | -------^^^^^^------------------------- help: try: `if fs::File::create(path).is_err()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:126:20 [INFO] [stdout] | [INFO] [stdout] 126 | if let Err(_) = fs::remove_file(path){ [INFO] [stdout] | -------^^^^^^------------------------ help: try: `if fs::remove_file(path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:130:20 [INFO] [stdout] | [INFO] [stdout] 130 | if let Err(_) = fs::File::create(path){ [INFO] [stdout] | -------^^^^^^------------------------- help: try: `if fs::File::create(path).is_err()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | fn ln(args: &Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 143 - fn ln(args: &Vec) -> i32{ [INFO] [stdout] 143 + fn ln(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:168:16 [INFO] [stdout] | [INFO] [stdout] 168 | if let Err(_) = std::os::unix::fs::symlink(source, link_name){ [INFO] [stdout] | -------^^^^^^------------------------------------------------ help: try: `if std::os::unix::fs::symlink(source, link_name).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:175:16 [INFO] [stdout] | [INFO] [stdout] 175 | if let Err(_) = fs::hard_link(source, link_name){ [INFO] [stdout] | -------^^^^^^----------------------------------- help: try: `if fs::hard_link(source, link_name).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:184:16 [INFO] [stdout] | [INFO] [stdout] 184 | fn rmdir(args: & Vec) ->i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 184 - fn rmdir(args: & Vec) ->i32 { [INFO] [stdout] 184 + fn rmdir(args: &[String]) ->i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:190:16 [INFO] [stdout] | [INFO] [stdout] 190 | if let Err(_) = fs::remove_dir(&arg){ [INFO] [stdout] | -------^^^^^^----------------------- help: try: `if fs::remove_dir(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:190:40 [INFO] [stdout] | [INFO] [stdout] 190 | if let Err(_) = fs::remove_dir(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:199:13 [INFO] [stdout] | [INFO] [stdout] 199 | fn rm(args: &Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 199 - fn rm(args: &Vec) -> i32{ [INFO] [stdout] 199 + fn rm(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:227:28 [INFO] [stdout] | [INFO] [stdout] 227 | if let Err(_) = fs::remove_dir_all(&arg) { [INFO] [stdout] | -------^^^^^^--------------------------- help: try: `if fs::remove_dir_all(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:227:56 [INFO] [stdout] | [INFO] [stdout] 227 | if let Err(_) = fs::remove_dir_all(&arg) { [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:233:28 [INFO] [stdout] | [INFO] [stdout] 233 | if let Err(_) = fs::remove_file(&arg) { [INFO] [stdout] | -------^^^^^^------------------------ help: try: `if fs::remove_file(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:233:53 [INFO] [stdout] | [INFO] [stdout] 233 | if let Err(_) = fs::remove_file(&arg) { [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:247:54 [INFO] [stdout] | [INFO] [stdout] 247 | if let Ok(result) = fs::metadata(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:253:28 [INFO] [stdout] | [INFO] [stdout] 253 | if let Err(_) = fs::remove_dir(&arg){ [INFO] [stdout] | -------^^^^^^----------------------- help: try: `if fs::remove_dir(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:253:52 [INFO] [stdout] | [INFO] [stdout] 253 | if let Err(_) = fs::remove_dir(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:267:58 [INFO] [stdout] | [INFO] [stdout] 267 | if let Ok(result) = fs::metadata(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:269:40 [INFO] [stdout] | [INFO] [stdout] 269 | ... if let Err(_) = fs::remove_file(&arg){ [INFO] [stdout] | -------^^^^^^------------------------ help: try: `if fs::remove_file(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:269:65 [INFO] [stdout] | [INFO] [stdout] 269 | ... if let Err(_) = fs::remove_file(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:275:44 [INFO] [stdout] | [INFO] [stdout] 275 | ... if let Err(_) = fs::remove_dir_all(&arg){ [INFO] [stdout] | -------^^^^^^--------------------------- help: try: `if fs::remove_dir_all(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:275:72 [INFO] [stdout] | [INFO] [stdout] 275 | ... if let Err(_) = fs::remove_dir_all(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:292:58 [INFO] [stdout] | [INFO] [stdout] 292 | if let Ok(result) = fs::metadata(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:294:40 [INFO] [stdout] | [INFO] [stdout] 294 | ... if let Err(_) = fs::remove_file(&arg){ [INFO] [stdout] | -------^^^^^^------------------------ help: try: `if fs::remove_file(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:294:65 [INFO] [stdout] | [INFO] [stdout] 294 | ... if let Err(_) = fs::remove_file(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:323:13 [INFO] [stdout] | [INFO] [stdout] 323 | fn cp(args: &Vec) ->i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 323 - fn cp(args: &Vec) ->i32 { [INFO] [stdout] 323 + fn cp(args: &[String]) ->i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:338:17 [INFO] [stdout] | [INFO] [stdout] 338 | / if path_sursa.is_file(){ [INFO] [stdout] 339 | | if path_dest.is_dir(){ [INFO] [stdout] 340 | | let dest_path = path_dest.join(path_sursa.file_name().unwrap()); [INFO] [stdout] 341 | | if let Err(_) = fs::copy(path_sursa, dest_path){ [INFO] [stdout] ... | [INFO] [stdout] 346 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 338 ~ if path_sursa.is_file() [INFO] [stdout] 339 ~ && path_dest.is_dir(){ [INFO] [stdout] 340 | let dest_path = path_dest.join(path_sursa.file_name().unwrap()); [INFO] [stdout] ... [INFO] [stdout] 344 | } [INFO] [stdout] 345 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:341:32 [INFO] [stdout] | [INFO] [stdout] 341 | if let Err(_) = fs::copy(path_sursa, dest_path){ [INFO] [stdout] | -------^^^^^^---------------------------------- help: try: `if fs::copy(path_sursa, dest_path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:349:28 [INFO] [stdout] | [INFO] [stdout] 349 | if let Err(_) = fs::copy(path_sursa, path_dest){ [INFO] [stdout] | -------^^^^^^---------------------------------- help: try: `if fs::copy(path_sursa, path_dest).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:371:20 [INFO] [stdout] | [INFO] [stdout] 371 | if let Err(_) = fs::copy(path_sursa, dest_path){ [INFO] [stdout] | -------^^^^^^---------------------------------- help: try: `if fs::copy(path_sursa, dest_path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:383:16 [INFO] [stdout] | [INFO] [stdout] 383 | if let Err(_) = fs::create_dir_all(path_dest){ [INFO] [stdout] | -------^^^^^^-------------------------------- help: try: `if fs::create_dir_all(path_dest).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:395:19 [INFO] [stdout] | [INFO] [stdout] 395 | if let Err(_) = fs::copy(path, dest_path){ [INFO] [stdout] | -------^^^^^^---------------------------- help: try: `if fs::copy(path, dest_path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:404:13 [INFO] [stdout] | [INFO] [stdout] 404 | fn ls(args: & Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 404 - fn ls(args: & Vec) -> i32{ [INFO] [stdout] 404 + fn ls(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:433:17 [INFO] [stdout] | [INFO] [stdout] 433 | / for entry in entries{ [INFO] [stdout] 434 | | if let Ok(entry) = entry{ [INFO] [stdout] 435 | | if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 436 | | println!("{}", file_name); [INFO] [stdout] ... | [INFO] [stdout] 439 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:434:21 [INFO] [stdout] | [INFO] [stdout] 434 | / if let Ok(entry) = entry{ [INFO] [stdout] 435 | | if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 436 | | println!("{}", file_name); [INFO] [stdout] 437 | | } [INFO] [stdout] 438 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 433 ~ for entry in entries.flatten(){ [INFO] [stdout] 434 + if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 435 + println!("{}", file_name); [INFO] [stdout] 436 + } [INFO] [stdout] 437 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:454:32 [INFO] [stdout] | [INFO] [stdout] 454 | ... if file_name.starts_with('.') == false{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!file_name.starts_with('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | fn echo(args: & Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 12 - fn echo(args: & Vec) -> i32 { [INFO] [stdout] 12 + fn echo(args: &[String]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | / for entry in entries{ [INFO] [stdout] 478 | | if let Ok(entry) = entry{ [INFO] [stdout] 479 | | if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 480 | | println!("{}", file_name); [INFO] [stdout] ... | [INFO] [stdout] 483 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:478:17 [INFO] [stdout] | [INFO] [stdout] 478 | / if let Ok(entry) = entry{ [INFO] [stdout] 479 | | if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 480 | | println!("{}", file_name); [INFO] [stdout] 481 | | } [INFO] [stdout] 482 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 477 ~ for entry in entries.flatten(){ [INFO] [stdout] 478 + if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 479 + println!("{}", file_name); [INFO] [stdout] 480 + } [INFO] [stdout] 481 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:502:40 [INFO] [stdout] | [INFO] [stdout] 502 | ... if file_name.starts_with('.') == false{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!file_name.starts_with('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:48:14 [INFO] [stdout] | [INFO] [stdout] 48 | fn cat(args: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 48 - fn cat(args: &Vec) -> i32 { [INFO] [stdout] 48 + fn cat(args: &[String]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:56:48 [INFO] [stdout] | [INFO] [stdout] 56 | if let Ok(result) = fs::read_to_string(&arg) { [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | if !fs::metadata(&arg).is_ok(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:66:16 [INFO] [stdout] | [INFO] [stdout] 66 | fn mkdir(args: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 66 - fn mkdir(args: &Vec) -> i32 { [INFO] [stdout] 66 + fn mkdir(args: &[String]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:68:25 [INFO] [stdout] | [INFO] [stdout] 68 | if !fs::metadata(&arg).is_ok(){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:551:9 [INFO] [stdout] | [INFO] [stdout] 551 | / for entry in entries{ [INFO] [stdout] 552 | | if let Ok(entry) = entry{ [INFO] [stdout] 553 | | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 554 | | if meta.is_dir(){ [INFO] [stdout] ... | [INFO] [stdout] 580 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:552:13 [INFO] [stdout] | [INFO] [stdout] 552 | / if let Ok(entry) = entry{ [INFO] [stdout] 553 | | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 554 | | if meta.is_dir(){ [INFO] [stdout] 555 | | if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] ... | [INFO] [stdout] 579 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 551 ~ for entry in entries.flatten(){ [INFO] [stdout] 552 + if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 553 + if meta.is_dir(){ [INFO] [stdout] 554 + if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] 555 + if path2.starts_with('.') == false{ [INFO] [stdout] 556 + if let Some(index) = path2.rfind('/') { [INFO] [stdout] 557 + let path3 = &path2[index+1..]; [INFO] [stdout] 558 + println!("{}", &path3); [INFO] [stdout] 559 + recursive_ln(&entry.path()); [INFO] [stdout] 560 + } [INFO] [stdout] 561 + } [INFO] [stdout] 562 + } [INFO] [stdout] 563 + [INFO] [stdout] 564 + }else{ [INFO] [stdout] 565 + if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] 566 + if path2.starts_with('.') == false{ [INFO] [stdout] 567 + if let Some(index) = path2.rfind('/') { [INFO] [stdout] 568 + let path3 = &path2[index+1..]; [INFO] [stdout] 569 + println!("{}", &path3); [INFO] [stdout] 570 + } [INFO] [stdout] 571 + } [INFO] [stdout] 572 + } [INFO] [stdout] 573 + } [INFO] [stdout] 574 + }else{ [INFO] [stdout] 575 + println!("{}", 176); [INFO] [stdout] 576 + process::exit(176); [INFO] [stdout] 577 + } [INFO] [stdout] 578 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:69:20 [INFO] [stdout] | [INFO] [stdout] 69 | if let Err(_) = fs::create_dir(&arg){ [INFO] [stdout] | -------^^^^^^----------------------- help: try: `if fs::create_dir(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:553:48 [INFO] [stdout] | [INFO] [stdout] 553 | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `entry.path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:556:32 [INFO] [stdout] | [INFO] [stdout] 556 | ... if path2.starts_with('.') == false{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!path2.starts_with('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:69:44 [INFO] [stdout] | [INFO] [stdout] 69 | if let Err(_) = fs::create_dir(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | fn mv(args: &Vec) -> i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 79 - fn mv(args: &Vec) -> i32 { [INFO] [stdout] 79 + fn mv(args: &[String]) -> i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:567:32 [INFO] [stdout] | [INFO] [stdout] 567 | ... if path2.starts_with('.') == false{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!path2.starts_with('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 84 | if let Err(_) = fs::rename(&args[2], &args[3]){ [INFO] [stdout] | -------^^^^^^--------------------------------- help: try: `if fs::rename(&args[2], &args[3]).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:119:27 [INFO] [stdout] | [INFO] [stdout] 119 | if create == 0 && !fs::metadata(path).is_ok(){ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `fs::metadata(path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:91:16 [INFO] [stdout] | [INFO] [stdout] 91 | fn touch(args: &Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 91 - fn touch(args: &Vec) -> i32{ [INFO] [stdout] 91 + fn touch(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:596:9 [INFO] [stdout] | [INFO] [stdout] 596 | / for entry in entries{ [INFO] [stdout] 597 | | if let Ok(entry) = entry{ [INFO] [stdout] 598 | | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 599 | | if meta.is_dir(){ [INFO] [stdout] ... | [INFO] [stdout] 641 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:597:13 [INFO] [stdout] | [INFO] [stdout] 597 | / if let Ok(entry) = entry{ [INFO] [stdout] 598 | | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 599 | | if meta.is_dir(){ [INFO] [stdout] 600 | | if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] ... | [INFO] [stdout] 637 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 596 ~ for entry in entries.flatten(){ [INFO] [stdout] 597 + if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 598 + if meta.is_dir(){ [INFO] [stdout] 599 + if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] 600 + if let Some(index) = path2.rfind('/') { [INFO] [stdout] 601 + let path3 = &path2[index+1..]; [INFO] [stdout] 602 + println!("{}", path3); [INFO] [stdout] 603 + recursive_ln_all(&entry.path()); [INFO] [stdout] 604 + } [INFO] [stdout] 605 + } [INFO] [stdout] 606 + [INFO] [stdout] 607 + }else{ [INFO] [stdout] 608 + if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] 609 + if let Some(index) = path2.rfind('/') { [INFO] [stdout] 610 + let path3 = &path2[index+1..]; [INFO] [stdout] 611 + println!("{}", path3); [INFO] [stdout] 612 + } [INFO] [stdout] 613 + } [INFO] [stdout] 614 + } [INFO] [stdout] 615 + if meta.is_dir(){ [INFO] [stdout] 616 + let mut path4 = entry.path().into_os_string().into_string().unwrap(); [INFO] [stdout] 617 + path4.push_str("/"); [INFO] [stdout] 618 + path4.push_str("."); [INFO] [stdout] 619 + if let Some(index) = path4.rfind('/') { [INFO] [stdout] 620 + let path5 = &path4[index+1..]; [INFO] [stdout] 621 + println!("{}", path5); [INFO] [stdout] 622 + } [INFO] [stdout] 623 + path4 = entry.path().into_os_string().into_string().unwrap(); [INFO] [stdout] 624 + path4.push_str("/"); [INFO] [stdout] 625 + path4.push_str(".."); [INFO] [stdout] 626 + if let Some(index) = path4.rfind('/') { [INFO] [stdout] 627 + let path5 = &path4[index+1..]; [INFO] [stdout] 628 + println!("{}", path5); [INFO] [stdout] 629 + } [INFO] [stdout] 630 + } [INFO] [stdout] 631 + [INFO] [stdout] 632 + }else{ [INFO] [stdout] 633 + println!("{}", 176); [INFO] [stdout] 634 + process::exit(176); [INFO] [stdout] 635 + } [INFO] [stdout] 636 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:120:20 [INFO] [stdout] | [INFO] [stdout] 120 | if let Err(_) = fs::File::create(path){ [INFO] [stdout] | -------^^^^^^------------------------- help: try: `if fs::File::create(path).is_err()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:126:20 [INFO] [stdout] | [INFO] [stdout] 126 | if let Err(_) = fs::remove_file(path){ [INFO] [stdout] | -------^^^^^^------------------------ help: try: `if fs::remove_file(path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:130:20 [INFO] [stdout] | [INFO] [stdout] 130 | if let Err(_) = fs::File::create(path){ [INFO] [stdout] | -------^^^^^^------------------------- help: try: `if fs::File::create(path).is_err()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | fn ln(args: &Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 143 - fn ln(args: &Vec) -> i32{ [INFO] [stdout] 143 + fn ln(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:168:16 [INFO] [stdout] | [INFO] [stdout] 168 | if let Err(_) = std::os::unix::fs::symlink(source, link_name){ [INFO] [stdout] | -------^^^^^^------------------------------------------------ help: try: `if std::os::unix::fs::symlink(source, link_name).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:598:48 [INFO] [stdout] | [INFO] [stdout] 598 | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `entry.path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/main.rs:618:25 [INFO] [stdout] | [INFO] [stdout] 618 | path4.push_str("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `path4.push('/')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:175:16 [INFO] [stdout] | [INFO] [stdout] 175 | if let Err(_) = fs::hard_link(source, link_name){ [INFO] [stdout] | -------^^^^^^----------------------------------- help: try: `if fs::hard_link(source, link_name).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/main.rs:619:25 [INFO] [stdout] | [INFO] [stdout] 619 | path4.push_str("."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `path4.push('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/main.rs:625:25 [INFO] [stdout] | [INFO] [stdout] 625 | path4.push_str("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `path4.push('/')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:650:16 [INFO] [stdout] | [INFO] [stdout] 650 | fn chmod(args: &Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 650 - fn chmod(args: &Vec) -> i32{ [INFO] [stdout] 650 + fn chmod(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:184:16 [INFO] [stdout] | [INFO] [stdout] 184 | fn rmdir(args: & Vec) ->i32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 184 - fn rmdir(args: & Vec) ->i32 { [INFO] [stdout] 184 + fn rmdir(args: &[String]) ->i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/main.rs:657:12 [INFO] [stdout] | [INFO] [stdout] 657 | if let Ok(_) = args[2].parse::(){ [INFO] [stdout] | -------^^^^^------------------------- help: try: `if args[2].parse::().is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:190:16 [INFO] [stdout] | [INFO] [stdout] 190 | if let Err(_) = fs::remove_dir(&arg){ [INFO] [stdout] | -------^^^^^^----------------------- help: try: `if fs::remove_dir(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:190:40 [INFO] [stdout] | [INFO] [stdout] 190 | if let Err(_) = fs::remove_dir(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:669:20 [INFO] [stdout] | [INFO] [stdout] 669 | if let Err(_) = fs::set_permissions(path, permissions){ [INFO] [stdout] | -------^^^^^^----------------------------------------- help: try: `if fs::set_permissions(path, permissions).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:199:13 [INFO] [stdout] | [INFO] [stdout] 199 | fn rm(args: &Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 199 - fn rm(args: &Vec) -> i32{ [INFO] [stdout] 199 + fn rm(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:227:28 [INFO] [stdout] | [INFO] [stdout] 227 | if let Err(_) = fs::remove_dir_all(&arg) { [INFO] [stdout] | -------^^^^^^--------------------------- help: try: `if fs::remove_dir_all(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:227:56 [INFO] [stdout] | [INFO] [stdout] 227 | if let Err(_) = fs::remove_dir_all(&arg) { [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:233:28 [INFO] [stdout] | [INFO] [stdout] 233 | if let Err(_) = fs::remove_file(&arg) { [INFO] [stdout] | -------^^^^^^------------------------ help: try: `if fs::remove_file(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:233:53 [INFO] [stdout] | [INFO] [stdout] 233 | if let Err(_) = fs::remove_file(&arg) { [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:247:54 [INFO] [stdout] | [INFO] [stdout] 247 | if let Ok(result) = fs::metadata(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:817:20 [INFO] [stdout] | [INFO] [stdout] 817 | if let Err(_) = fs::set_permissions(path, permissions){ [INFO] [stdout] | -------^^^^^^----------------------------------------- help: try: `if fs::set_permissions(path, permissions).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:253:28 [INFO] [stdout] | [INFO] [stdout] 253 | if let Err(_) = fs::remove_dir(&arg){ [INFO] [stdout] | -------^^^^^^----------------------- help: try: `if fs::remove_dir(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:253:52 [INFO] [stdout] | [INFO] [stdout] 253 | if let Err(_) = fs::remove_dir(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:267:58 [INFO] [stdout] | [INFO] [stdout] 267 | if let Ok(result) = fs::metadata(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:269:40 [INFO] [stdout] | [INFO] [stdout] 269 | ... if let Err(_) = fs::remove_file(&arg){ [INFO] [stdout] | -------^^^^^^------------------------ help: try: `if fs::remove_file(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:269:65 [INFO] [stdout] | [INFO] [stdout] 269 | ... if let Err(_) = fs::remove_file(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:275:44 [INFO] [stdout] | [INFO] [stdout] 275 | ... if let Err(_) = fs::remove_dir_all(&arg){ [INFO] [stdout] | -------^^^^^^--------------------------- help: try: `if fs::remove_dir_all(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:275:72 [INFO] [stdout] | [INFO] [stdout] 275 | ... if let Err(_) = fs::remove_dir_all(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:292:58 [INFO] [stdout] | [INFO] [stdout] 292 | if let Ok(result) = fs::metadata(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:294:40 [INFO] [stdout] | [INFO] [stdout] 294 | ... if let Err(_) = fs::remove_file(&arg){ [INFO] [stdout] | -------^^^^^^------------------------ help: try: `if fs::remove_file(&arg).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:294:65 [INFO] [stdout] | [INFO] [stdout] 294 | ... if let Err(_) = fs::remove_file(&arg){ [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:323:13 [INFO] [stdout] | [INFO] [stdout] 323 | fn cp(args: &Vec) ->i32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 323 - fn cp(args: &Vec) ->i32 { [INFO] [stdout] 323 + fn cp(args: &[String]) ->i32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:338:17 [INFO] [stdout] | [INFO] [stdout] 338 | / if path_sursa.is_file(){ [INFO] [stdout] 339 | | if path_dest.is_dir(){ [INFO] [stdout] 340 | | let dest_path = path_dest.join(path_sursa.file_name().unwrap()); [INFO] [stdout] 341 | | if let Err(_) = fs::copy(path_sursa, dest_path){ [INFO] [stdout] ... | [INFO] [stdout] 346 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 338 ~ if path_sursa.is_file() [INFO] [stdout] 339 ~ && path_dest.is_dir(){ [INFO] [stdout] 340 | let dest_path = path_dest.join(path_sursa.file_name().unwrap()); [INFO] [stdout] ... [INFO] [stdout] 344 | } [INFO] [stdout] 345 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:341:32 [INFO] [stdout] | [INFO] [stdout] 341 | if let Err(_) = fs::copy(path_sursa, dest_path){ [INFO] [stdout] | -------^^^^^^---------------------------------- help: try: `if fs::copy(path_sursa, dest_path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:349:28 [INFO] [stdout] | [INFO] [stdout] 349 | if let Err(_) = fs::copy(path_sursa, path_dest){ [INFO] [stdout] | -------^^^^^^---------------------------------- help: try: `if fs::copy(path_sursa, path_dest).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:371:20 [INFO] [stdout] | [INFO] [stdout] 371 | if let Err(_) = fs::copy(path_sursa, dest_path){ [INFO] [stdout] | -------^^^^^^---------------------------------- help: try: `if fs::copy(path_sursa, dest_path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:383:16 [INFO] [stdout] | [INFO] [stdout] 383 | if let Err(_) = fs::create_dir_all(path_dest){ [INFO] [stdout] | -------^^^^^^-------------------------------- help: try: `if fs::create_dir_all(path_dest).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:395:19 [INFO] [stdout] | [INFO] [stdout] 395 | if let Err(_) = fs::copy(path, dest_path){ [INFO] [stdout] | -------^^^^^^---------------------------- help: try: `if fs::copy(path, dest_path).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:404:13 [INFO] [stdout] | [INFO] [stdout] 404 | fn ls(args: & Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 404 - fn ls(args: & Vec) -> i32{ [INFO] [stdout] 404 + fn ls(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:433:17 [INFO] [stdout] | [INFO] [stdout] 433 | / for entry in entries{ [INFO] [stdout] 434 | | if let Ok(entry) = entry{ [INFO] [stdout] 435 | | if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 436 | | println!("{}", file_name); [INFO] [stdout] ... | [INFO] [stdout] 439 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:434:21 [INFO] [stdout] | [INFO] [stdout] 434 | / if let Ok(entry) = entry{ [INFO] [stdout] 435 | | if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 436 | | println!("{}", file_name); [INFO] [stdout] 437 | | } [INFO] [stdout] 438 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 433 ~ for entry in entries.flatten(){ [INFO] [stdout] 434 + if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 435 + println!("{}", file_name); [INFO] [stdout] 436 + } [INFO] [stdout] 437 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:454:32 [INFO] [stdout] | [INFO] [stdout] 454 | ... if file_name.starts_with('.') == false{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!file_name.starts_with('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:477:13 [INFO] [stdout] | [INFO] [stdout] 477 | / for entry in entries{ [INFO] [stdout] 478 | | if let Ok(entry) = entry{ [INFO] [stdout] 479 | | if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 480 | | println!("{}", file_name); [INFO] [stdout] ... | [INFO] [stdout] 483 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:478:17 [INFO] [stdout] | [INFO] [stdout] 478 | / if let Ok(entry) = entry{ [INFO] [stdout] 479 | | if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 480 | | println!("{}", file_name); [INFO] [stdout] 481 | | } [INFO] [stdout] 482 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 477 ~ for entry in entries.flatten(){ [INFO] [stdout] 478 + if let Ok(file_name) = entry.file_name().into_string(){ [INFO] [stdout] 479 + println!("{}", file_name); [INFO] [stdout] 480 + } [INFO] [stdout] 481 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:502:40 [INFO] [stdout] | [INFO] [stdout] 502 | ... if file_name.starts_with('.') == false{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!file_name.starts_with('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:551:9 [INFO] [stdout] | [INFO] [stdout] 551 | / for entry in entries{ [INFO] [stdout] 552 | | if let Ok(entry) = entry{ [INFO] [stdout] 553 | | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 554 | | if meta.is_dir(){ [INFO] [stdout] ... | [INFO] [stdout] 580 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:552:13 [INFO] [stdout] | [INFO] [stdout] 552 | / if let Ok(entry) = entry{ [INFO] [stdout] 553 | | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 554 | | if meta.is_dir(){ [INFO] [stdout] 555 | | if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] ... | [INFO] [stdout] 579 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 551 ~ for entry in entries.flatten(){ [INFO] [stdout] 552 + if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 553 + if meta.is_dir(){ [INFO] [stdout] 554 + if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] 555 + if path2.starts_with('.') == false{ [INFO] [stdout] 556 + if let Some(index) = path2.rfind('/') { [INFO] [stdout] 557 + let path3 = &path2[index+1..]; [INFO] [stdout] 558 + println!("{}", &path3); [INFO] [stdout] 559 + recursive_ln(&entry.path()); [INFO] [stdout] 560 + } [INFO] [stdout] 561 + } [INFO] [stdout] 562 + } [INFO] [stdout] 563 + [INFO] [stdout] 564 + }else{ [INFO] [stdout] 565 + if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] 566 + if path2.starts_with('.') == false{ [INFO] [stdout] 567 + if let Some(index) = path2.rfind('/') { [INFO] [stdout] 568 + let path3 = &path2[index+1..]; [INFO] [stdout] 569 + println!("{}", &path3); [INFO] [stdout] 570 + } [INFO] [stdout] 571 + } [INFO] [stdout] 572 + } [INFO] [stdout] 573 + } [INFO] [stdout] 574 + }else{ [INFO] [stdout] 575 + println!("{}", 176); [INFO] [stdout] 576 + process::exit(176); [INFO] [stdout] 577 + } [INFO] [stdout] 578 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:553:48 [INFO] [stdout] | [INFO] [stdout] 553 | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `entry.path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:556:32 [INFO] [stdout] | [INFO] [stdout] 556 | ... if path2.starts_with('.') == false{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!path2.starts_with('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/main.rs:567:32 [INFO] [stdout] | [INFO] [stdout] 567 | ... if path2.starts_with('.') == false{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!path2.starts_with('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/main.rs:596:9 [INFO] [stdout] | [INFO] [stdout] 596 | / for entry in entries{ [INFO] [stdout] 597 | | if let Ok(entry) = entry{ [INFO] [stdout] 598 | | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 599 | | if meta.is_dir(){ [INFO] [stdout] ... | [INFO] [stdout] 641 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/main.rs:597:13 [INFO] [stdout] | [INFO] [stdout] 597 | / if let Ok(entry) = entry{ [INFO] [stdout] 598 | | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 599 | | if meta.is_dir(){ [INFO] [stdout] 600 | | if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] ... | [INFO] [stdout] 637 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 596 ~ for entry in entries.flatten(){ [INFO] [stdout] 597 + if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] 598 + if meta.is_dir(){ [INFO] [stdout] 599 + if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] 600 + if let Some(index) = path2.rfind('/') { [INFO] [stdout] 601 + let path3 = &path2[index+1..]; [INFO] [stdout] 602 + println!("{}", path3); [INFO] [stdout] 603 + recursive_ln_all(&entry.path()); [INFO] [stdout] 604 + } [INFO] [stdout] 605 + } [INFO] [stdout] 606 + [INFO] [stdout] 607 + }else{ [INFO] [stdout] 608 + if let Ok(path2) = entry.path().into_os_string().into_string(){ [INFO] [stdout] 609 + if let Some(index) = path2.rfind('/') { [INFO] [stdout] 610 + let path3 = &path2[index+1..]; [INFO] [stdout] 611 + println!("{}", path3); [INFO] [stdout] 612 + } [INFO] [stdout] 613 + } [INFO] [stdout] 614 + } [INFO] [stdout] 615 + if meta.is_dir(){ [INFO] [stdout] 616 + let mut path4 = entry.path().into_os_string().into_string().unwrap(); [INFO] [stdout] 617 + path4.push_str("/"); [INFO] [stdout] 618 + path4.push_str("."); [INFO] [stdout] 619 + if let Some(index) = path4.rfind('/') { [INFO] [stdout] 620 + let path5 = &path4[index+1..]; [INFO] [stdout] 621 + println!("{}", path5); [INFO] [stdout] 622 + } [INFO] [stdout] 623 + path4 = entry.path().into_os_string().into_string().unwrap(); [INFO] [stdout] 624 + path4.push_str("/"); [INFO] [stdout] 625 + path4.push_str(".."); [INFO] [stdout] 626 + if let Some(index) = path4.rfind('/') { [INFO] [stdout] 627 + let path5 = &path4[index+1..]; [INFO] [stdout] 628 + println!("{}", path5); [INFO] [stdout] 629 + } [INFO] [stdout] 630 + } [INFO] [stdout] 631 + [INFO] [stdout] 632 + }else{ [INFO] [stdout] 633 + println!("{}", 176); [INFO] [stdout] 634 + process::exit(176); [INFO] [stdout] 635 + } [INFO] [stdout] 636 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:598:48 [INFO] [stdout] | [INFO] [stdout] 598 | if let Ok(meta) = fs::metadata(&entry.path()){ [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `entry.path()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/main.rs:618:25 [INFO] [stdout] | [INFO] [stdout] 618 | path4.push_str("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `path4.push('/')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/main.rs:619:25 [INFO] [stdout] | [INFO] [stdout] 619 | path4.push_str("."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `path4.push('.')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/main.rs:625:25 [INFO] [stdout] | [INFO] [stdout] 625 | path4.push_str("/"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `path4.push('/')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/main.rs:650:16 [INFO] [stdout] | [INFO] [stdout] 650 | fn chmod(args: &Vec) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 650 - fn chmod(args: &Vec) -> i32{ [INFO] [stdout] 650 + fn chmod(args: &[String]) -> i32{ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/main.rs:657:12 [INFO] [stdout] | [INFO] [stdout] 657 | if let Ok(_) = args[2].parse::(){ [INFO] [stdout] | -------^^^^^------------------------- help: try: `if args[2].parse::().is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:669:20 [INFO] [stdout] | [INFO] [stdout] 669 | if let Err(_) = fs::set_permissions(path, permissions){ [INFO] [stdout] | -------^^^^^^----------------------------------------- help: try: `if fs::set_permissions(path, permissions).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_err()` [INFO] [stdout] --> src/main.rs:817:20 [INFO] [stdout] | [INFO] [stdout] 817 | if let Err(_) = fs::set_permissions(path, permissions){ [INFO] [stdout] | -------^^^^^^----------------------------------------- help: try: `if fs::set_permissions(path, permissions).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.30s [INFO] running `Command { std: "docker" "inspect" "015b15866d69e4ab9ba8baab4b30764fbf14e561a2b9b8378a4d6b8f45c2f0dc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "015b15866d69e4ab9ba8baab4b30764fbf14e561a2b9b8378a4d6b8f45c2f0dc", kill_on_drop: false }` [INFO] [stdout] 015b15866d69e4ab9ba8baab4b30764fbf14e561a2b9b8378a4d6b8f45c2f0dc