nushell/crates/nu-command/src/filesystem
Doru a935e0720f
no deref in touch (#14214)
<!--
if this PR closes one or more issues, you can automatically link the PR
with
them by using one of the [*linking
keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword),
e.g.
- this PR should close #xxxx
- fixes #xxxx

you can also mention related issues, PRs or discussions!
-->

# Description
<!--
Thank you for improving Nushell. Please, check our [contributing
guide](../CONTRIBUTING.md) and talk to the core team before making major
changes.

Description of your pull request goes here. **Provide examples and/or
screenshots** if your changes affect the user experience.
-->
Adds --no-deref flag to `touch`. Nice and backwards compatible, and I
get to touch symlinks. I still don't get to set their dates directly,
but maybe that'll come with utouch.

Some sadness in the implementation, since `set_symlink_file_times`
doesn't take Option values and we call it twice with the old "read"
values from reference (or now, if missing). This shouldn't be a big
concern since `touch` already did two calls if you set both mtime and
atime. Also, `--no-deref` applies both to the reference file, and to the
target file. No splitting them up, because that's silly.

Can always bikeshed. I nicked `--no-deref` from the uutils flag, and
made the short flag `-d` because it obviously can't be `-h`. I thought
of `-S` like in `glob`, for the "negative/filter out" uppercase short
letters. Ultimately I don't think it matters much.

Should fix #14212 since it's not really tied to uutils, besides the
comment about setting a `datetime` value directly.

# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New flag.

# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.

Make sure you've run and fixed any issues with these commands:

- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the
tests for the standard library

> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->
Maybe.

# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->
2024-11-03 00:56:05 -04:00
..
cd.rs Make get_env_var return a reference to a Value (#13987) 2024-10-02 13:05:48 +02:00
du.rs Change the usage misnomer to "description" (#13598) 2024-08-22 12:02:08 +02:00
glob.rs since windows allows slash or backslash, allow both instead of MAIN_SEPARATOR (#13996) 2024-10-03 10:10:11 -05:00
ls.rs Add threads to the ls command in order to increase performance in some circumstances (#13836) 2024-09-24 08:40:48 -05:00
mktemp.rs Change the usage misnomer to "description" (#13598) 2024-08-22 12:02:08 +02:00
mod.rs remove old mv command in favor of umv (renamed to mv) (#12022) 2024-03-01 09:37:23 +08:00
open.rs Add metadata on open --raw with bytestreams (#14141) 2024-10-23 16:50:15 -05:00
rm.rs Error on non-zero exit statuses (#13515) 2024-09-07 06:44:26 +00:00
save.rs Ratelimit save command progress bar updates (#14075) 2024-10-13 07:01:03 -05:00
start.rs Set current working directory at startup (#12953) 2024-09-25 13:04:26 -05:00
touch.rs no deref in touch (#14214) 2024-11-03 00:56:05 -04:00
ucp.rs Change the usage misnomer to "description" (#13598) 2024-08-22 12:02:08 +02:00
umkdir.rs Change the usage misnomer to "description" (#13598) 2024-08-22 12:02:08 +02:00
umv.rs Change the usage misnomer to "description" (#13598) 2024-08-22 12:02:08 +02:00
util.rs Internal representation (IR) compiler and evaluator (#13330) 2024-07-10 17:33:59 -07:00
watch.rs Error on non-zero exit statuses (#13515) 2024-09-07 06:44:26 +00:00