2019-05-10 16:59:12 +00:00
|
|
|
# This file is automatically @generated by Cargo.
|
|
|
|
# It is not intended for manual editing.
|
2021-06-19 00:06:44 +00:00
|
|
|
version = 3
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "addr2line"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.21.0"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
|
2023-07-06 15:31:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"gimli",
|
|
|
|
]
|
|
|
|
|
2020-08-03 22:47:19 +00:00
|
|
|
[[package]]
|
|
|
|
name = "adler"
|
2021-03-12 05:20:54 +00:00
|
|
|
version = "1.0.2"
|
2020-08-03 22:47:19 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-03-12 05:20:54 +00:00
|
|
|
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
|
2020-08-03 22:47:19 +00:00
|
|
|
|
2023-08-16 01:31:49 +00:00
|
|
|
[[package]]
|
|
|
|
name = "adler32"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ahash"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.7.8"
|
2024-01-21 20:17:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9"
|
2024-01-21 20:17:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"getrandom",
|
|
|
|
"once_cell",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2022-11-09 22:07:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ahash"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.8.11"
|
2022-11-09 22:07:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
|
2022-11-09 22:07:38 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2023-07-10 05:28:36 +00:00
|
|
|
"getrandom",
|
2022-11-09 22:07:38 +00:00
|
|
|
"once_cell",
|
|
|
|
"version_check",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"zerocopy",
|
2022-11-09 22:07:38 +00:00
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "aho-corasick"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.1.3"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
|
2019-05-10 16:59:12 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"memchr",
|
2019-05-10 16:59:12 +00:00
|
|
|
]
|
|
|
|
|
2021-05-18 19:33:10 +00:00
|
|
|
[[package]]
|
|
|
|
name = "alloc-no-stdlib"
|
2022-10-03 16:40:16 +00:00
|
|
|
version = "2.0.4"
|
2021-05-18 19:33:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 16:40:16 +00:00
|
|
|
checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
|
2021-05-18 19:33:10 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "alloc-stdlib"
|
2022-10-03 16:40:16 +00:00
|
|
|
version = "0.2.2"
|
2021-05-18 19:33:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 16:40:16 +00:00
|
|
|
checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
|
2021-05-18 19:33:10 +00:00
|
|
|
dependencies = [
|
|
|
|
"alloc-no-stdlib",
|
|
|
|
]
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "allocator-api2"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.2.16"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
|
2023-07-06 15:31:31 +00:00
|
|
|
|
2022-05-06 12:58:32 +00:00
|
|
|
[[package]]
|
|
|
|
name = "alphanumeric-sort"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "1.5.3"
|
2022-05-06 12:58:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "d67c60c5f10f11c6ee04de72b2dd98bb9d2548cbc314d22a609bfa8bd9e87e8f"
|
2022-05-06 12:58:32 +00:00
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "android-tzdata"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
|
|
|
|
|
2022-08-13 18:21:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "android_system_properties"
|
2022-08-31 11:19:20 +00:00
|
|
|
version = "0.1.5"
|
2022-08-13 18:21:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-08-31 11:19:20 +00:00
|
|
|
checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
|
2022-08-13 18:21:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2023-06-11 22:33:54 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ansi-str"
|
|
|
|
version = "0.8.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1cf4578926a981ab0ca955dc023541d19de37112bc24c1a197bd806d3d86ad1d"
|
|
|
|
dependencies = [
|
|
|
|
"ansitok",
|
|
|
|
]
|
|
|
|
|
2022-07-19 17:35:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ansitok"
|
2022-10-20 12:52:15 +00:00
|
|
|
version = "0.2.0"
|
2022-07-19 17:35:25 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-20 12:52:15 +00:00
|
|
|
checksum = "220044e6a1bb31ddee4e3db724d29767f352de47445a6cd75e1a173142136c83"
|
2022-07-19 17:35:25 +00:00
|
|
|
dependencies = [
|
2023-01-04 22:50:18 +00:00
|
|
|
"nom",
|
2023-08-08 20:20:37 +00:00
|
|
|
"vte 0.10.1",
|
2022-07-19 17:35:25 +00:00
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "anstream"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.6.13"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"anstyle",
|
|
|
|
"anstyle-parse",
|
|
|
|
"anstyle-query",
|
|
|
|
"anstyle-wincon",
|
|
|
|
"colorchoice",
|
|
|
|
"utf8parse",
|
|
|
|
]
|
|
|
|
|
2023-04-14 20:14:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "anstyle"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.6"
|
2023-04-14 20:14:57 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
|
2023-04-14 20:14:57 +00:00
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "anstyle-parse"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.2.3"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"utf8parse",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anstyle-query"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.0.2"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
dependencies = [
|
2023-12-06 00:09:34 +00:00
|
|
|
"windows-sys 0.52.0",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "anstyle-wincon"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "3.0.2"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"anstyle",
|
2023-12-06 00:09:34 +00:00
|
|
|
"windows-sys 0.52.0",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
]
|
|
|
|
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-01 22:34:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "anyhow"
|
|
|
|
version = "1.0.82"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "arboard"
|
2024-03-12 22:10:11 +00:00
|
|
|
version = "3.3.2"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-12 22:10:11 +00:00
|
|
|
checksum = "a2041f1943049c7978768d84e6d0fd95de98b76d6c4727b09e78ec253d29fa58"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"clipboard-win",
|
|
|
|
"log",
|
|
|
|
"objc",
|
|
|
|
"objc-foundation",
|
|
|
|
"objc_id",
|
|
|
|
"parking_lot",
|
|
|
|
"thiserror",
|
|
|
|
"wl-clipboard-rs",
|
|
|
|
"x11rb",
|
|
|
|
]
|
|
|
|
|
2023-05-12 12:44:35 +00:00
|
|
|
[[package]]
|
|
|
|
name = "argminmax"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.6.2"
|
2023-05-12 12:44:35 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "52424b59d69d69d5056d508b260553afd91c57e21849579cd1f50ee8b8b88eaa"
|
2023-05-12 12:44:35 +00:00
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
|
|
|
]
|
|
|
|
|
2022-02-27 16:10:29 +00:00
|
|
|
[[package]]
|
|
|
|
name = "array-init-cursor"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "bf7d0a018de4f6aa429b9d33d69edf69072b1c5b1cb8d3e4a5f7ef898fc3eb76"
|
|
|
|
|
2019-11-16 17:17:05 +00:00
|
|
|
[[package]]
|
|
|
|
name = "arrayvec"
|
2020-11-22 00:37:16 +00:00
|
|
|
version = "0.5.2"
|
2019-11-16 17:17:05 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-11-22 00:37:16 +00:00
|
|
|
checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b"
|
2019-11-16 17:17:05 +00:00
|
|
|
|
2022-04-04 20:45:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "arrayvec"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "0.7.4"
|
2022-04-04 20:45:01 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
|
2022-04-04 20:45:01 +00:00
|
|
|
|
2023-03-02 19:05:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "assert-json-diff"
|
|
|
|
version = "2.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
2021-08-30 18:36:07 +00:00
|
|
|
[[package]]
|
|
|
|
name = "assert_cmd"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.0.14"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "ed72493ac66d5804837f480ab3766c72bdfab91a65e565fc54fa9e42db0073a8"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
2023-04-14 20:14:57 +00:00
|
|
|
"anstyle",
|
2023-10-09 12:31:50 +00:00
|
|
|
"bstr",
|
2021-08-30 18:36:07 +00:00
|
|
|
"doc-comment",
|
|
|
|
"predicates",
|
|
|
|
"predicates-core",
|
|
|
|
"predicates-tree",
|
|
|
|
"wait-timeout",
|
|
|
|
]
|
|
|
|
|
2021-11-23 08:14:40 +00:00
|
|
|
[[package]]
|
2021-09-15 19:10:12 +00:00
|
|
|
name = "async-stream"
|
2023-04-14 20:14:57 +00:00
|
|
|
version = "0.3.5"
|
2021-09-15 19:10:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 20:14:57 +00:00
|
|
|
checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
|
2021-09-15 19:10:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"async-stream-impl",
|
|
|
|
"futures-core",
|
2023-03-11 23:35:56 +00:00
|
|
|
"pin-project-lite",
|
2021-09-15 19:10:12 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "async-stream-impl"
|
2023-04-14 20:14:57 +00:00
|
|
|
version = "0.3.5"
|
2021-09-15 19:10:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 20:14:57 +00:00
|
|
|
checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
|
2021-09-15 19:10:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2021-09-15 19:10:12 +00:00
|
|
|
]
|
|
|
|
|
2020-05-29 08:22:52 +00:00
|
|
|
[[package]]
|
|
|
|
name = "async-trait"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.79"
|
2020-05-29 08:22:52 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
|
2020-05-29 08:22:52 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2020-05-29 08:22:52 +00:00
|
|
|
]
|
|
|
|
|
2023-05-08 15:42:53 +00:00
|
|
|
[[package]]
|
|
|
|
name = "atoi"
|
|
|
|
version = "2.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528"
|
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "atoi_simd"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.15.6"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "9ae037714f313c1353189ead58ef9eec30a8e8dc101b2622d461418fd59e28a9"
|
2023-12-06 00:09:34 +00:00
|
|
|
|
2020-01-17 20:35:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "autocfg"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.2.0"
|
2020-01-17 20:35:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
|
2020-01-17 20:35:48 +00:00
|
|
|
|
2023-08-16 01:31:49 +00:00
|
|
|
[[package]]
|
|
|
|
name = "avro-schema"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b5281855b39aba9684d2f47bf96983fbfd8f1725f12fabb0513a8ab879647bbd"
|
|
|
|
dependencies = [
|
|
|
|
"crc",
|
|
|
|
"fallible-streaming-iterator",
|
|
|
|
"libflate",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"snap",
|
|
|
|
]
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "backtrace"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.3.71"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
|
2023-07-06 15:31:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"addr2line",
|
|
|
|
"cc",
|
|
|
|
"cfg-if",
|
|
|
|
"libc",
|
|
|
|
"miniz_oxide",
|
|
|
|
"object",
|
|
|
|
"rustc-demangle",
|
|
|
|
]
|
|
|
|
|
2024-02-22 18:14:10 +00:00
|
|
|
[[package]]
|
|
|
|
name = "backtrace-ext"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "537beee3be4a18fb023b570f80e3ae28003db9167a751266b259926e25539d50"
|
|
|
|
dependencies = [
|
|
|
|
"backtrace",
|
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "base64"
|
|
|
|
version = "0.13.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
|
|
|
|
|
2023-01-13 13:16:14 +00:00
|
|
|
[[package]]
|
|
|
|
name = "base64"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.21.7"
|
2023-01-13 13:16:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
|
2023-01-13 13:16:14 +00:00
|
|
|
|
2024-03-21 19:17:36 +00:00
|
|
|
[[package]]
|
|
|
|
name = "base64"
|
|
|
|
version = "0.22.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
|
|
|
|
|
2022-07-25 16:32:56 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bincode"
|
|
|
|
version = "1.3.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2022-07-11 16:18:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bindgen"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.69.4"
|
2022-07-11 16:18:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
|
2022-07-11 16:18:06 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2022-07-11 16:18:06 +00:00
|
|
|
"cexpr",
|
|
|
|
"clang-sys",
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-01 22:34:37 +00:00
|
|
|
"itertools 0.12.1",
|
2022-07-11 16:18:06 +00:00
|
|
|
"lazy_static",
|
|
|
|
"lazycell",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"regex",
|
|
|
|
"rustc-hash",
|
|
|
|
"shlex",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2022-07-11 16:18:06 +00:00
|
|
|
]
|
|
|
|
|
2022-08-04 19:51:02 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bit-set"
|
|
|
|
version = "0.5.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
|
|
|
|
dependencies = [
|
|
|
|
"bit-vec",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bit-vec"
|
|
|
|
version = "0.6.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
|
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
2021-08-30 18:36:07 +00:00
|
|
|
name = "bitflags"
|
|
|
|
version = "1.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
|
|
|
|
2023-05-26 15:32:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bitflags"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.5.0"
|
2023-05-26 15:32:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
|
2023-08-29 22:13:34 +00:00
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
2023-05-26 15:32:48 +00:00
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bitvec"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
|
|
|
|
dependencies = [
|
|
|
|
"funty",
|
|
|
|
"radium",
|
|
|
|
"tap",
|
|
|
|
"wyz",
|
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "block"
|
|
|
|
version = "0.1.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
|
|
|
|
|
2021-12-16 09:40:05 +00:00
|
|
|
[[package]]
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 17:34:00 +00:00
|
|
|
name = "block-buffer"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.10.4"
|
2021-12-10 23:14:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
|
2021-12-10 23:14:28 +00:00
|
|
|
dependencies = [
|
2022-07-19 17:35:25 +00:00
|
|
|
"generic-array",
|
2020-05-16 22:34:10 +00:00
|
|
|
]
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "borsh"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.4.0"
|
2024-01-21 20:17:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "0901fc8eb0aca4c83be0106d6f2db17d86a08dfc2c25f0e84464bf381158add6"
|
2024-01-21 20:17:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"borsh-derive",
|
|
|
|
"cfg_aliases",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "borsh-derive"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.4.0"
|
2024-01-21 20:17:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "51670c3aa053938b0ee3bd67c3817e471e626151131b934038e83c5bf8de48f5"
|
2024-01-21 20:17:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"proc-macro-crate",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2024-01-21 20:17:28 +00:00
|
|
|
"syn_derive",
|
|
|
|
]
|
|
|
|
|
2023-06-28 17:57:44 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bracoxide"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.1.3"
|
2023-06-28 17:57:44 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "ada7f35ca622a86a4d6c27be2633fc6c243ecc834859628fcce0681d8e76e1c8"
|
2023-06-28 17:57:44 +00:00
|
|
|
|
2021-05-18 19:33:10 +00:00
|
|
|
[[package]]
|
|
|
|
name = "brotli"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "3.5.0"
|
2021-05-18 19:33:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "d640d25bc63c50fb1f0b545ffd80207d2e10a4c965530809b40ba3386825c391"
|
2021-05-18 19:33:10 +00:00
|
|
|
dependencies = [
|
|
|
|
"alloc-no-stdlib",
|
|
|
|
"alloc-stdlib",
|
2024-04-21 12:36:26 +00:00
|
|
|
"brotli-decompressor 2.5.1",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "brotli"
|
|
|
|
version = "5.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "19483b140a7ac7174d34b5a581b406c64f84da5409d3e09cf4fff604f9270e67"
|
|
|
|
dependencies = [
|
|
|
|
"alloc-no-stdlib",
|
|
|
|
"alloc-stdlib",
|
|
|
|
"brotli-decompressor 4.0.0",
|
2021-05-18 19:33:10 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "brotli-decompressor"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "2.5.1"
|
2021-05-18 19:33:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
|
2021-05-18 19:33:10 +00:00
|
|
|
dependencies = [
|
|
|
|
"alloc-no-stdlib",
|
|
|
|
"alloc-stdlib",
|
|
|
|
]
|
|
|
|
|
2024-04-21 12:36:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "brotli-decompressor"
|
|
|
|
version = "4.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76"
|
|
|
|
dependencies = [
|
|
|
|
"alloc-no-stdlib",
|
|
|
|
"alloc-stdlib",
|
|
|
|
]
|
|
|
|
|
2023-03-11 23:35:56 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bstr"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.9.1"
|
2023-03-11 23:35:56 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
|
2023-03-11 23:35:56 +00:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
2023-10-23 14:11:32 +00:00
|
|
|
"regex-automata",
|
2023-03-11 23:35:56 +00:00
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2019-07-04 22:17:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bumpalo"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "3.16.0"
|
2019-07-04 22:17:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
|
2019-07-04 22:17:18 +00:00
|
|
|
|
2019-05-15 18:14:51 +00:00
|
|
|
[[package]]
|
|
|
|
name = "byte-unit"
|
2024-01-25 04:57:15 +00:00
|
|
|
version = "5.1.4"
|
2019-05-15 18:14:51 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-25 04:57:15 +00:00
|
|
|
checksum = "33ac19bdf0b2665407c39d82dbc937e951e7e2001609f0fb32edd0af45a2d63e"
|
2020-09-08 22:35:45 +00:00
|
|
|
dependencies = [
|
2024-01-21 20:17:28 +00:00
|
|
|
"rust_decimal",
|
2023-03-11 23:35:56 +00:00
|
|
|
"serde",
|
2020-09-08 22:35:45 +00:00
|
|
|
"utf8-width",
|
|
|
|
]
|
2019-05-15 18:14:51 +00:00
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bytecheck"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.6.12"
|
2024-01-21 20:17:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2"
|
2024-01-21 20:17:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"bytecheck_derive",
|
|
|
|
"ptr_meta",
|
|
|
|
"simdutf8",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bytecheck_derive"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.6.12"
|
2024-01-21 20:17:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659"
|
2024-01-21 20:17:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 1.0.109",
|
|
|
|
]
|
|
|
|
|
2022-07-06 19:57:40 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bytecount"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.6.7"
|
2022-07-06 19:57:40 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "e1e5f035d16fc623ae5f74981db80a439803888314e3a555fd6f04acd51a3205"
|
2022-07-06 19:57:40 +00:00
|
|
|
|
2022-02-27 16:10:29 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bytemuck"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.15.0"
|
2022-02-27 16:10:29 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
|
2022-02-27 16:10:29 +00:00
|
|
|
dependencies = [
|
|
|
|
"bytemuck_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "bytemuck_derive"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.6.0"
|
2022-02-27 16:10:29 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60"
|
2022-02-27 16:10:29 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2022-02-27 16:10:29 +00:00
|
|
|
]
|
|
|
|
|
2020-12-30 17:16:02 +00:00
|
|
|
[[package]]
|
2019-05-10 16:59:12 +00:00
|
|
|
name = "byteorder"
|
2023-10-10 12:57:36 +00:00
|
|
|
version = "1.5.0"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-10 12:57:36 +00:00
|
|
|
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
2019-05-10 16:59:12 +00:00
|
|
|
|
2019-05-24 18:48:33 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bytes"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.6.0"
|
2022-01-04 02:01:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
|
2022-01-04 02:01:18 +00:00
|
|
|
|
2021-10-12 20:22:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "bytesize"
|
2023-09-11 09:55:21 +00:00
|
|
|
version = "1.3.0"
|
2021-10-12 20:22:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-09-11 09:55:21 +00:00
|
|
|
checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
|
2021-01-19 20:24:27 +00:00
|
|
|
|
2019-11-17 03:18:41 +00:00
|
|
|
[[package]]
|
|
|
|
name = "calamine"
|
2024-02-17 15:05:55 +00:00
|
|
|
version = "0.24.0"
|
2019-11-17 03:18:41 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 15:05:55 +00:00
|
|
|
checksum = "8a3a315226fdc5b1c3e33521073e1712a05944bc0664d665ff1f6ff0396334da"
|
2019-11-17 03:18:41 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"byteorder",
|
2024-02-24 13:25:51 +00:00
|
|
|
"chrono",
|
2019-11-28 02:21:00 +00:00
|
|
|
"codepage",
|
|
|
|
"encoding_rs",
|
2021-07-09 19:28:07 +00:00
|
|
|
"log",
|
2024-02-24 13:25:51 +00:00
|
|
|
"once_cell",
|
2024-01-31 14:06:59 +00:00
|
|
|
"quick-xml",
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2019-11-28 02:21:00 +00:00
|
|
|
"zip",
|
2019-11-17 03:18:41 +00:00
|
|
|
]
|
|
|
|
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 15:32:10 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cassowary"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
|
|
|
|
|
2024-02-08 00:15:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "castaway"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8a17ed5635fc8536268e5d4de1e22e81ac34419e5f052d4d51f4e01dcc263fcc"
|
|
|
|
dependencies = [
|
|
|
|
"rustversion",
|
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cc"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.92"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "2678b2e3449475e95b0aa6f9b506a28e61b3dc8996592b983695e8ebb58a8b41"
|
2019-09-13 03:44:21 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"jobserver",
|
2023-10-07 11:58:26 +00:00
|
|
|
"libc",
|
2019-09-13 03:44:21 +00:00
|
|
|
]
|
2019-05-10 16:59:12 +00:00
|
|
|
|
2022-07-11 16:18:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cexpr"
|
|
|
|
version = "0.6.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
|
|
|
|
dependencies = [
|
2023-01-04 22:50:18 +00:00
|
|
|
"nom",
|
2022-07-11 16:18:06 +00:00
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cfg-if"
|
2020-11-22 00:37:16 +00:00
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cfg_aliases"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
|
|
|
|
|
2023-08-25 00:21:17 +00:00
|
|
|
[[package]]
|
|
|
|
name = "chardetng"
|
|
|
|
version = "0.1.17"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "14b8f0b65b7b08ae3c8187e8d77174de20cb6777864c6b832d8ad365999cf1ea"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"encoding_rs",
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "charset"
|
|
|
|
version = "0.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "18e9079d1a12a2cc2bffb5db039c43661836ead4082120d5844f02555aca2d46"
|
|
|
|
dependencies = [
|
|
|
|
"base64 0.13.1",
|
|
|
|
"encoding_rs",
|
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "chrono"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.4.37"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
|
2019-05-10 16:59:12 +00:00
|
|
|
dependencies = [
|
2023-07-06 15:31:31 +00:00
|
|
|
"android-tzdata",
|
2022-08-13 18:21:28 +00:00
|
|
|
"iana-time-zone",
|
2023-11-15 23:43:37 +00:00
|
|
|
"js-sys",
|
2021-08-28 03:34:11 +00:00
|
|
|
"num-traits",
|
2022-08-14 13:07:04 +00:00
|
|
|
"pure-rust-locales",
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2023-11-15 23:43:37 +00:00
|
|
|
"wasm-bindgen",
|
2024-03-08 00:36:28 +00:00
|
|
|
"windows-targets 0.52.4",
|
2019-05-10 16:59:12 +00:00
|
|
|
]
|
|
|
|
|
2021-07-25 08:38:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "chrono-humanize"
|
2023-08-25 08:54:01 +00:00
|
|
|
version = "0.2.3"
|
2021-07-25 08:38:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-25 08:54:01 +00:00
|
|
|
checksum = "799627e6b4d27827a814e837b9d8a504832086081806d45b1afa34dc982b023b"
|
2021-07-25 08:38:45 +00:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
]
|
|
|
|
|
2020-08-05 21:34:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "chrono-tz"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.8.6"
|
2021-11-02 03:08:05 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e"
|
2021-11-02 03:08:05 +00:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
2024-04-13 18:00:04 +00:00
|
|
|
"chrono-tz-build 0.2.1",
|
|
|
|
"phf 0.11.2",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "chrono-tz"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "93698b29de5e97ad0ae26447b344c482a7284c737d9ddc5f9e52b74a336671bb"
|
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
"chrono-tz-build 0.3.0",
|
2023-07-06 15:31:31 +00:00
|
|
|
"phf 0.11.2",
|
2021-11-02 03:08:05 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "chrono-tz-build"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.2.1"
|
2021-11-02 03:08:05 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f"
|
2021-11-02 03:08:05 +00:00
|
|
|
dependencies = [
|
|
|
|
"parse-zoneinfo",
|
2023-07-06 15:31:31 +00:00
|
|
|
"phf 0.11.2",
|
|
|
|
"phf_codegen 0.11.2",
|
2021-06-03 06:25:28 +00:00
|
|
|
]
|
|
|
|
|
2024-04-13 18:00:04 +00:00
|
|
|
[[package]]
|
|
|
|
name = "chrono-tz-build"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0c088aee841df9c3041febbb73934cfc39708749bf96dc827e3359cd39ef11b1"
|
|
|
|
dependencies = [
|
|
|
|
"parse-zoneinfo",
|
|
|
|
"phf 0.11.2",
|
|
|
|
"phf_codegen 0.11.2",
|
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "chumsky"
|
|
|
|
version = "0.9.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
|
|
|
|
dependencies = [
|
|
|
|
"hashbrown 0.14.3",
|
|
|
|
"stacker",
|
|
|
|
]
|
|
|
|
|
2022-07-11 16:18:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "clang-sys"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.7.0"
|
2022-07-11 16:18:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
|
2022-07-11 16:18:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"glob",
|
|
|
|
"libc",
|
|
|
|
"libloading",
|
|
|
|
]
|
|
|
|
|
2022-08-23 16:49:51 +00:00
|
|
|
[[package]]
|
|
|
|
name = "clap"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "4.5.4"
|
2022-08-23 16:49:51 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
|
2022-08-23 16:49:51 +00:00
|
|
|
dependencies = [
|
2023-06-07 13:29:54 +00:00
|
|
|
"clap_builder",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "clap_builder"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "4.5.2"
|
2023-06-07 13:29:54 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
|
2023-06-07 13:29:54 +00:00
|
|
|
dependencies = [
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
"anstream",
|
2023-06-07 13:29:54 +00:00
|
|
|
"anstyle",
|
2023-01-05 19:39:54 +00:00
|
|
|
"clap_lex",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
"strsim",
|
2024-02-08 01:26:18 +00:00
|
|
|
"terminal_size",
|
2023-01-05 19:39:54 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "clap_lex"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.7.0"
|
2023-01-05 19:39:54 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
|
2022-08-23 16:49:51 +00:00
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "clipboard-win"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "5.3.0"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "d517d4b86184dbb111d3556a10f1c8a04da7428d2987bf1081602bf11c3aa9ee"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"error-code",
|
|
|
|
]
|
|
|
|
|
2019-11-17 03:18:41 +00:00
|
|
|
[[package]]
|
|
|
|
name = "codepage"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 02:21:00 +00:00
|
|
|
checksum = "8b0e9222c0cdf2c6ac27d73f664f9520266fa911c3106329d359f8861cb8bde9"
|
2019-11-17 03:18:41 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"encoding_rs",
|
2019-11-17 03:18:41 +00:00
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "colorchoice"
|
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
|
|
|
|
|
2024-04-10 00:31:43 +00:00
|
|
|
[[package]]
|
|
|
|
name = "comfy-table"
|
|
|
|
version = "7.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7"
|
|
|
|
dependencies = [
|
|
|
|
"crossterm",
|
|
|
|
"strum",
|
|
|
|
"strum_macros 0.26.2",
|
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2024-02-08 00:15:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "compact_str"
|
|
|
|
version = "0.7.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f86b9c4c00838774a6d902ef931eff7470720c51d90c2e32cfe15dc304737b3f"
|
|
|
|
dependencies = [
|
|
|
|
"castaway",
|
|
|
|
"cfg-if",
|
|
|
|
"itoa",
|
|
|
|
"ryu",
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
2024-03-01 18:09:21 +00:00
|
|
|
[[package]]
|
|
|
|
name = "condtype"
|
|
|
|
version = "1.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "baf0a07a401f374238ab8e2f11a104d2851bf9ce711ec69804834de8af45c7af"
|
|
|
|
|
2020-05-18 18:44:27 +00:00
|
|
|
[[package]]
|
2021-10-15 18:37:58 +00:00
|
|
|
name = "console"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.15.8"
|
2021-10-15 18:37:58 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb"
|
2021-10-15 18:37:58 +00:00
|
|
|
dependencies = [
|
|
|
|
"encode_unicode",
|
2022-10-03 16:40:16 +00:00
|
|
|
"lazy_static",
|
2021-10-15 18:37:58 +00:00
|
|
|
"libc",
|
|
|
|
"unicode-width",
|
2024-01-21 03:53:24 +00:00
|
|
|
"windows-sys 0.52.0",
|
2020-06-16 21:17:32 +00:00
|
|
|
]
|
|
|
|
|
2023-06-13 18:33:00 +00:00
|
|
|
[[package]]
|
|
|
|
name = "const-random"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.18"
|
2023-06-13 18:33:00 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359"
|
2023-06-13 18:33:00 +00:00
|
|
|
dependencies = [
|
|
|
|
"const-random-macro",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "const-random-macro"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.1.16"
|
2023-06-13 18:33:00 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e"
|
2023-06-13 18:33:00 +00:00
|
|
|
dependencies = [
|
2023-07-10 05:28:36 +00:00
|
|
|
"getrandom",
|
2023-06-13 18:33:00 +00:00
|
|
|
"once_cell",
|
|
|
|
"tiny-keccak",
|
|
|
|
]
|
|
|
|
|
2022-04-04 14:59:59 +00:00
|
|
|
[[package]]
|
|
|
|
name = "const_format"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.2.32"
|
2022-04-04 14:59:59 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673"
|
2022-04-04 14:59:59 +00:00
|
|
|
dependencies = [
|
|
|
|
"const_format_proc_macros",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "const_format_proc_macros"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.2.32"
|
2022-04-04 14:59:59 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500"
|
2022-04-04 14:59:59 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"unicode-xid",
|
|
|
|
]
|
|
|
|
|
2019-12-14 13:27:14 +00:00
|
|
|
[[package]]
|
|
|
|
name = "core-foundation"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.9.4"
|
2019-12-14 13:27:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
|
2019-12-14 13:27:14 +00:00
|
|
|
dependencies = [
|
2021-01-20 07:18:38 +00:00
|
|
|
"core-foundation-sys",
|
2019-11-28 02:21:00 +00:00
|
|
|
"libc",
|
2019-06-08 18:09:17 +00:00
|
|
|
]
|
|
|
|
|
2020-11-22 00:37:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "core-foundation-sys"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.8.6"
|
2020-11-22 00:37:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
|
2020-11-22 00:37:16 +00:00
|
|
|
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 17:34:00 +00:00
|
|
|
[[package]]
|
2021-06-03 06:23:14 +00:00
|
|
|
name = "cpufeatures"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.2.12"
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 17:34:00 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
|
2021-06-03 06:23:14 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 17:34:00 +00:00
|
|
|
|
2023-08-16 01:31:49 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crc"
|
|
|
|
version = "2.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23"
|
|
|
|
dependencies = [
|
|
|
|
"crc-catalog",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crc-catalog"
|
|
|
|
version = "1.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403"
|
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crc32fast"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.4.0"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
|
2021-11-19 19:23:35 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2019-05-18 01:24:13 +00:00
|
|
|
]
|
|
|
|
|
2020-08-27 05:58:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-channel"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.5.12"
|
2020-08-27 05:58:01 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
|
2021-10-01 06:53:47 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"crossbeam-utils",
|
2019-10-08 13:47:30 +00:00
|
|
|
]
|
|
|
|
|
2020-11-22 00:37:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-deque"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.8.5"
|
2020-11-22 00:37:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
|
2020-11-22 00:37:16 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"crossbeam-epoch",
|
|
|
|
"crossbeam-utils",
|
2019-10-08 13:47:30 +00:00
|
|
|
]
|
|
|
|
|
2020-11-22 00:37:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-epoch"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.9.18"
|
2020-11-22 00:37:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
2021-10-01 06:53:47 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"crossbeam-utils",
|
2020-11-22 00:37:16 +00:00
|
|
|
]
|
|
|
|
|
2023-10-11 19:28:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-queue"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.11"
|
2023-10-11 19:28:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
|
2023-10-11 19:28:18 +00:00
|
|
|
dependencies = [
|
|
|
|
"crossbeam-utils",
|
|
|
|
]
|
|
|
|
|
2020-11-22 00:37:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-utils"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.8.19"
|
2020-11-22 00:37:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
|
2019-05-22 07:12:03 +00:00
|
|
|
|
2023-09-04 00:22:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crossterm"
|
|
|
|
version = "0.27.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df"
|
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2023-09-04 00:22:25 +00:00
|
|
|
"crossterm_winapi",
|
|
|
|
"libc",
|
|
|
|
"mio",
|
|
|
|
"parking_lot",
|
2023-04-14 20:14:57 +00:00
|
|
|
"serde",
|
2021-08-30 18:36:07 +00:00
|
|
|
"signal-hook",
|
|
|
|
"signal-hook-mio",
|
2023-07-05 12:14:55 +00:00
|
|
|
"winapi",
|
2020-09-30 18:27:52 +00:00
|
|
|
]
|
|
|
|
|
2021-01-07 00:38:22 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crossterm_winapi"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "0.9.1"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"winapi",
|
2021-01-07 00:38:22 +00:00
|
|
|
]
|
|
|
|
|
2023-06-13 18:33:00 +00:00
|
|
|
[[package]]
|
|
|
|
name = "crunchy"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
|
|
|
|
|
2020-08-12 17:20:22 +00:00
|
|
|
[[package]]
|
2021-12-10 23:14:28 +00:00
|
|
|
name = "crypto-common"
|
2022-07-26 02:09:32 +00:00
|
|
|
version = "0.1.6"
|
2021-12-10 23:14:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 02:09:32 +00:00
|
|
|
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
|
2021-12-10 23:14:28 +00:00
|
|
|
dependencies = [
|
2022-07-19 17:35:25 +00:00
|
|
|
"generic-array",
|
2022-03-10 20:58:11 +00:00
|
|
|
"typenum",
|
2021-03-03 18:18:11 +00:00
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "cssparser"
|
2023-07-10 05:28:36 +00:00
|
|
|
version = "0.31.2"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-10 05:28:36 +00:00
|
|
|
checksum = "5b3df4f93e5fbbe73ec01ec8d3f68bba73107993a5b1e7519273c32db9b0d5be"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
|
|
|
"cssparser-macros",
|
|
|
|
"dtoa-short",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2023-07-10 05:28:36 +00:00
|
|
|
"phf 0.11.2",
|
2021-07-09 19:28:07 +00:00
|
|
|
"smallvec",
|
2020-11-03 21:46:42 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "cssparser-macros"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "0.6.1"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2020-11-03 21:46:42 +00:00
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "csv"
|
2023-10-18 21:01:14 +00:00
|
|
|
version = "1.3.0"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-18 21:01:14 +00:00
|
|
|
checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe"
|
2019-05-10 16:59:12 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"csv-core",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2019-11-28 02:21:00 +00:00
|
|
|
"ryu",
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2019-05-10 16:59:12 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "csv-core"
|
2023-10-18 21:01:14 +00:00
|
|
|
version = "0.1.11"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-18 21:01:14 +00:00
|
|
|
checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70"
|
2019-05-10 16:59:12 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"memchr",
|
2019-05-10 16:59:12 +00:00
|
|
|
]
|
|
|
|
|
2021-10-28 04:13:10 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ctrlc"
|
2024-03-27 15:43:37 +00:00
|
|
|
version = "3.4.4"
|
2021-10-28 04:13:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 15:43:37 +00:00
|
|
|
checksum = "672465ae37dc1bc6380a6547a8883d5dd397b0f1faaad4f265726cc7042a5345"
|
2021-10-28 04:13:10 +00:00
|
|
|
dependencies = [
|
2024-03-27 15:43:37 +00:00
|
|
|
"nix",
|
2024-01-21 03:53:24 +00:00
|
|
|
"windows-sys 0.52.0",
|
2019-06-07 00:31:22 +00:00
|
|
|
]
|
|
|
|
|
2023-10-07 11:58:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "deranged"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.11"
|
2023-10-07 11:58:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
dependencies = [
|
|
|
|
"powerfmt",
|
|
|
|
]
|
2023-10-07 11:58:26 +00:00
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "derive-new"
|
2024-03-27 15:43:37 +00:00
|
|
|
version = "0.6.0"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 15:43:37 +00:00
|
|
|
checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2024-01-20 14:04:06 +00:00
|
|
|
]
|
|
|
|
|
2020-12-30 17:16:02 +00:00
|
|
|
[[package]]
|
2022-02-01 18:45:48 +00:00
|
|
|
name = "derive_more"
|
|
|
|
version = "0.99.17"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2023-04-06 20:39:54 +00:00
|
|
|
"syn 1.0.109",
|
2020-08-12 17:20:22 +00:00
|
|
|
]
|
|
|
|
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 17:34:00 +00:00
|
|
|
[[package]]
|
2021-10-15 18:37:58 +00:00
|
|
|
name = "dialoguer"
|
2023-09-26 16:00:16 +00:00
|
|
|
version = "0.11.0"
|
2021-10-15 18:37:58 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-09-26 16:00:16 +00:00
|
|
|
checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de"
|
2021-10-15 18:37:58 +00:00
|
|
|
dependencies = [
|
2021-10-15 18:51:25 +00:00
|
|
|
"console",
|
2023-05-04 17:14:41 +00:00
|
|
|
"fuzzy-matcher",
|
2023-01-16 02:04:47 +00:00
|
|
|
"shell-words",
|
2023-09-26 16:00:16 +00:00
|
|
|
"thiserror",
|
2021-10-15 18:37:58 +00:00
|
|
|
]
|
|
|
|
|
2021-08-30 18:36:07 +00:00
|
|
|
[[package]]
|
|
|
|
name = "diff"
|
2022-07-26 02:09:32 +00:00
|
|
|
version = "0.1.13"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 02:09:32 +00:00
|
|
|
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
|
2021-08-30 18:36:07 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "difflib"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
|
|
|
|
|
2021-12-16 09:40:05 +00:00
|
|
|
[[package]]
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 17:34:00 +00:00
|
|
|
name = "digest"
|
2023-05-26 15:32:48 +00:00
|
|
|
version = "0.10.7"
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 17:34:00 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-26 15:32:48 +00:00
|
|
|
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 17:34:00 +00:00
|
|
|
dependencies = [
|
2022-10-03 16:40:16 +00:00
|
|
|
"block-buffer",
|
2021-12-10 23:14:28 +00:00
|
|
|
"crypto-common",
|
2020-05-14 08:17:23 +00:00
|
|
|
]
|
|
|
|
|
2021-01-07 00:38:22 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dirs-next"
|
|
|
|
version = "2.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
|
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2021-01-07 00:38:22 +00:00
|
|
|
"dirs-sys-next",
|
|
|
|
]
|
|
|
|
|
2020-12-05 04:12:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dirs-sys-next"
|
2021-01-19 20:24:27 +00:00
|
|
|
version = "0.1.2"
|
2020-12-05 04:12:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-01-19 20:24:27 +00:00
|
|
|
checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
|
2020-12-05 04:12:42 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2022-03-19 11:13:34 +00:00
|
|
|
"redox_users",
|
2023-07-05 12:14:55 +00:00
|
|
|
"winapi",
|
2020-12-05 04:12:42 +00:00
|
|
|
]
|
|
|
|
|
2024-03-01 18:09:21 +00:00
|
|
|
[[package]]
|
|
|
|
name = "divan"
|
|
|
|
version = "0.1.14"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a0d567df2c9c2870a43f3f2bd65aaeb18dbce1c18f217c3e564b4fbaeb3ee56c"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"clap",
|
|
|
|
"condtype",
|
|
|
|
"divan-macros",
|
|
|
|
"libc",
|
|
|
|
"regex-lite",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "divan-macros"
|
|
|
|
version = "0.1.14"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "27540baf49be0d484d8f0130d7d8da3011c32a44d4fc873368154f1510e574a2"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2024-03-01 18:09:21 +00:00
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dlib"
|
|
|
|
version = "0.5.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
|
|
|
|
dependencies = [
|
|
|
|
"libloading",
|
|
|
|
]
|
|
|
|
|
2023-02-09 11:47:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dlv-list"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.5.2"
|
2023-02-09 11:47:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "442039f5147480ba31067cb00ada1adae6892028e40e45fc5de7b7df6dcc1b5f"
|
2023-06-13 18:33:00 +00:00
|
|
|
dependencies = [
|
|
|
|
"const-random",
|
|
|
|
]
|
2023-02-09 11:47:45 +00:00
|
|
|
|
2021-01-20 07:18:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "doc-comment"
|
|
|
|
version = "0.3.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "downcast-rs"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.2.1"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
|
2024-01-20 14:04:06 +00:00
|
|
|
|
2019-06-03 07:41:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dtoa"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "1.0.9"
|
2019-06-03 07:41:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
|
2019-06-03 07:41:28 +00:00
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dtoa-short"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "0.3.4"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "dbaceec3c6e4211c79e7b1800fb9680527106beb2f9c51904a3210c03a448c74"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
|
|
|
"dtoa",
|
|
|
|
]
|
|
|
|
|
2020-08-05 21:34:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dtparse"
|
2023-08-25 08:54:01 +00:00
|
|
|
version = "2.0.0"
|
2020-08-05 21:34:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-25 08:54:01 +00:00
|
|
|
checksum = "458c7cfe1c34b1ef7c2c435076064711050aedabae9952a261687c500f80e839"
|
2020-08-05 21:34:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
2021-08-28 03:34:11 +00:00
|
|
|
"lazy_static",
|
|
|
|
"num-traits",
|
2020-08-05 21:34:28 +00:00
|
|
|
"rust_decimal",
|
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dunce"
|
|
|
|
version = "1.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
|
|
|
|
|
2022-08-12 12:10:36 +00:00
|
|
|
[[package]]
|
|
|
|
name = "dyn-clone"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.17"
|
2022-08-12 12:10:36 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125"
|
2022-08-12 12:10:36 +00:00
|
|
|
|
2021-02-05 20:54:54 +00:00
|
|
|
[[package]]
|
2021-09-16 14:02:30 +00:00
|
|
|
name = "ego-tree"
|
|
|
|
version = "0.6.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3a68a4904193147e0a8dec3314640e6db742afd5f6e634f428a6af230d9b3591"
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "either"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.10.0"
|
2022-05-25 17:13:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
|
2022-05-25 17:13:14 +00:00
|
|
|
|
2020-04-26 05:32:17 +00:00
|
|
|
[[package]]
|
|
|
|
name = "eml-parser"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.1.4"
|
2020-04-26 05:32:17 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "a7db8d15f812e08f76427c555195583e3ab8a99fd8b208f8d9e2899262e80f2e"
|
2020-04-26 05:32:17 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"regex",
|
2023-12-06 00:09:34 +00:00
|
|
|
"rfc2047-decoder",
|
2020-04-26 05:32:17 +00:00
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "encode_unicode"
|
2019-10-13 04:53:58 +00:00
|
|
|
version = "0.3.6"
|
2019-06-12 17:44:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 02:21:00 +00:00
|
|
|
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
|
2019-06-12 17:44:45 +00:00
|
|
|
|
2020-06-16 21:17:32 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "encoding_rs"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.8.33"
|
2020-06-16 21:17:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
|
2020-06-16 21:17:32 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2020-06-16 21:17:32 +00:00
|
|
|
]
|
|
|
|
|
2022-11-09 22:07:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "enum_dispatch"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.3.13"
|
2022-11-09 22:07:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd"
|
2022-11-09 22:07:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2022-11-09 22:07:38 +00:00
|
|
|
]
|
|
|
|
|
2020-06-16 21:17:32 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "env_logger"
|
|
|
|
version = "0.8.4"
|
2020-06-16 21:17:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-07 19:54:06 +00:00
|
|
|
checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
|
2020-06-16 21:17:32 +00:00
|
|
|
dependencies = [
|
2022-02-07 19:54:06 +00:00
|
|
|
"log",
|
|
|
|
"regex",
|
2020-06-16 21:17:32 +00:00
|
|
|
]
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "equivalent"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "1.0.1"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
|
2023-07-06 15:31:31 +00:00
|
|
|
|
2020-06-16 21:17:32 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "erased-serde"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.4.4"
|
2020-06-16 21:17:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "2b73807008a3c7f171cc40312f37d95ef0396e048b5848d775f54b1a4dd4a0d3"
|
2020-06-16 21:17:32 +00:00
|
|
|
dependencies = [
|
2022-02-07 19:54:06 +00:00
|
|
|
"serde",
|
2020-06-16 21:17:32 +00:00
|
|
|
]
|
|
|
|
|
2023-02-22 12:56:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "errno"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.3.8"
|
2023-02-22 12:56:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
|
2023-02-22 12:56:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2023-12-06 00:09:34 +00:00
|
|
|
"windows-sys 0.52.0",
|
2023-02-22 12:56:31 +00:00
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "error-code"
|
2024-03-12 22:10:11 +00:00
|
|
|
version = "3.2.0"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-12 22:10:11 +00:00
|
|
|
checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
|
2024-01-20 14:04:06 +00:00
|
|
|
|
2022-11-09 22:07:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ethnum"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "1.5.0"
|
2022-11-09 22:07:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c"
|
2022-11-09 22:07:38 +00:00
|
|
|
|
2022-04-14 03:15:02 +00:00
|
|
|
[[package]]
|
|
|
|
name = "fallible-iterator"
|
2024-02-17 15:32:17 +00:00
|
|
|
version = "0.3.0"
|
2022-04-14 03:15:02 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 15:32:17 +00:00
|
|
|
checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
|
2022-04-14 03:15:02 +00:00
|
|
|
|
2020-06-16 21:17:32 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "fallible-streaming-iterator"
|
|
|
|
version = "0.1.9"
|
2020-06-16 21:17:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-07 19:54:06 +00:00
|
|
|
checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
|
2020-06-16 21:17:32 +00:00
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "fancy-regex"
|
2024-02-19 01:54:37 +00:00
|
|
|
version = "0.13.0"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-19 01:54:37 +00:00
|
|
|
checksum = "531e46835a22af56d1e3b66f04844bed63158bc094a628bec1d321d9b4c44bf2"
|
2023-12-06 00:09:34 +00:00
|
|
|
dependencies = [
|
|
|
|
"bit-set",
|
2024-02-19 01:54:37 +00:00
|
|
|
"regex-automata",
|
|
|
|
"regex-syntax",
|
2023-12-06 00:09:34 +00:00
|
|
|
]
|
|
|
|
|
2023-05-08 15:42:53 +00:00
|
|
|
[[package]]
|
|
|
|
name = "fast-float"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "95765f67b4b18863968b4a1bd5bb576f732b29a4a28c7cd84c09fa3e2875f33c"
|
|
|
|
|
2019-11-17 03:18:41 +00:00
|
|
|
[[package]]
|
2022-02-08 13:28:21 +00:00
|
|
|
name = "fastrand"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.0.2"
|
2019-11-17 03:18:41 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
|
2019-11-17 03:18:41 +00:00
|
|
|
|
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "fd-lock"
|
2024-03-27 21:25:21 +00:00
|
|
|
version = "4.0.2"
|
2019-11-17 03:18:41 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 21:25:21 +00:00
|
|
|
checksum = "7e5768da2206272c81ef0b5e951a41862938a6070da63bcea197899942d3b947"
|
2019-11-17 03:18:41 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2024-01-05 16:19:46 +00:00
|
|
|
"rustix",
|
2024-03-27 21:25:21 +00:00
|
|
|
"windows-sys 0.52.0",
|
2019-11-17 03:18:41 +00:00
|
|
|
]
|
|
|
|
|
2023-07-05 12:14:55 +00:00
|
|
|
[[package]]
|
|
|
|
name = "file-id"
|
2023-08-31 22:07:41 +00:00
|
|
|
version = "0.2.1"
|
2023-07-05 12:14:55 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-31 22:07:41 +00:00
|
|
|
checksum = "6584280525fb2059cba3db2c04abf947a1a29a45ddae89f3870f8281704fafc9"
|
2023-07-05 12:14:55 +00:00
|
|
|
dependencies = [
|
2023-08-31 22:07:41 +00:00
|
|
|
"windows-sys 0.48.0",
|
2023-07-05 12:14:55 +00:00
|
|
|
]
|
|
|
|
|
2021-03-14 02:13:31 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "filesize"
|
|
|
|
version = "0.2.0"
|
2020-02-10 20:32:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-04-07 07:51:17 +00:00
|
|
|
checksum = "12d741e2415d4e2e5bd1c1d00409d1a8865a57892c2d689b504365655d237d43"
|
2020-02-10 20:32:18 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"winapi",
|
2020-02-10 20:32:18 +00:00
|
|
|
]
|
|
|
|
|
2022-04-07 11:44:05 +00:00
|
|
|
[[package]]
|
|
|
|
name = "filetime"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.2.23"
|
2022-04-07 11:44:05 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
|
2022-04-07 11:44:05 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2022-04-07 11:44:05 +00:00
|
|
|
"libc",
|
2023-12-06 00:09:34 +00:00
|
|
|
"redox_syscall",
|
|
|
|
"windows-sys 0.52.0",
|
2022-04-07 11:44:05 +00:00
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "fixedbitset"
|
|
|
|
version = "0.4.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
|
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "flate2"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "1.0.28"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
|
2019-05-18 01:24:13 +00:00
|
|
|
dependencies = [
|
2021-11-19 19:23:35 +00:00
|
|
|
"crc32fast",
|
2022-05-25 17:13:14 +00:00
|
|
|
"miniz_oxide",
|
2019-05-18 01:24:13 +00:00
|
|
|
]
|
|
|
|
|
2022-11-09 22:07:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "float-cmp"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
|
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
|
|
|
]
|
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "fnv"
|
2020-05-16 03:18:24 +00:00
|
|
|
version = "1.0.7"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-05-16 03:18:24 +00:00
|
|
|
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
2019-05-18 01:24:13 +00:00
|
|
|
|
2020-03-20 07:53:49 +00:00
|
|
|
[[package]]
|
|
|
|
name = "foreign-types"
|
|
|
|
version = "0.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
|
|
|
dependencies = [
|
|
|
|
"foreign-types-shared",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "foreign-types-shared"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
|
|
|
|
2022-08-12 12:10:36 +00:00
|
|
|
[[package]]
|
|
|
|
name = "foreign_vec"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ee1b05cbd864bcaecbd3455d6d967862d446e4ebfc3c2e5e5b9841e53cba6673"
|
|
|
|
|
2020-09-08 22:35:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "form_urlencoded"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "1.2.1"
|
2020-09-08 22:35:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
|
2020-09-08 22:35:45 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"percent-encoding",
|
2020-09-08 22:35:45 +00:00
|
|
|
]
|
|
|
|
|
2022-02-09 14:56:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "fs_extra"
|
2023-02-06 09:59:58 +00:00
|
|
|
version = "1.3.0"
|
2022-02-09 14:56:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-02-06 09:59:58 +00:00
|
|
|
checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
|
2022-02-09 14:56:27 +00:00
|
|
|
|
2022-04-28 14:26:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "fsevent-sys"
|
2023-07-05 12:14:55 +00:00
|
|
|
version = "4.1.0"
|
2022-04-28 14:26:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-05 12:14:55 +00:00
|
|
|
checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
|
2022-04-28 14:26:34 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "funty"
|
|
|
|
version = "2.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
|
|
|
|
|
2020-09-03 23:44:53 +00:00
|
|
|
[[package]]
|
2020-11-03 21:46:42 +00:00
|
|
|
name = "futf"
|
2022-02-08 13:28:21 +00:00
|
|
|
version = "0.1.5"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-08 13:28:21 +00:00
|
|
|
checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
|
|
|
"mac",
|
|
|
|
"new_debug_unreachable",
|
|
|
|
]
|
|
|
|
|
2020-01-01 06:45:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "futures"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.30"
|
2020-01-01 06:45:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
|
2020-01-01 06:45:27 +00:00
|
|
|
dependencies = [
|
|
|
|
"futures-channel",
|
|
|
|
"futures-core",
|
Futures v0.3 upgrade (#1344)
* Upgrade futures, async-stream, and futures_codec
These were the last three dependencies on futures-preview. `nu` itself
is now fully dependent on `futures@0.3`, as opposed to `futures-preview`
alpha.
Because the update to `futures` from `0.3.0-alpha.19` to `0.3.0` removed
the `Stream` implementation of `VecDeque` ([changelog][changelog]), most
commands that convert a `VecDeque` to an `OutputStream` broke and had to
be fixed.
The current solution is to now convert `VecDeque`s to a `Stream` via
`futures::stream::iter`. However, it may be useful for `futures` to
create an `IntoStream` trait, implemented on the `std::collections` (or
really any `IntoIterator`). If something like this happends, it may be
worthwhile to update the trait implementations on `OutputStream` and
refactor these commands again.
While upgrading `futures_codec`, we remove a custom implementation of
`LinesCodec`, as one has been added to the library. There's also a small
refactor to make the stream output more idiomatic.
[changelog]: https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md#030---2019-11-5
* Upgrade sys & ps plugin dependencies
They were previously dependent on `futures-preview`, and `nu_plugin_ps`
was dependent on an old version of `futures-timer`.
* Remove dependency on futures-timer from nu
* Update Cargo.lock
* Fix formatting
* Revert fmt regressions
CI is still on 1.40.0, but the latest rustfmt v1.41.0 has changes to the
`val @ pattern` syntax, causing the linting job to fail.
* Fix clippy warnings
2020-02-06 03:46:48 +00:00
|
|
|
"futures-executor",
|
2020-01-01 06:45:27 +00:00
|
|
|
"futures-io",
|
|
|
|
"futures-sink",
|
|
|
|
"futures-task",
|
|
|
|
"futures-util",
|
|
|
|
]
|
|
|
|
|
2019-12-14 13:27:14 +00:00
|
|
|
[[package]]
|
|
|
|
name = "futures-channel"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.30"
|
2019-12-14 13:27:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
|
2019-12-14 13:27:14 +00:00
|
|
|
dependencies = [
|
|
|
|
"futures-core",
|
2020-01-01 06:45:27 +00:00
|
|
|
"futures-sink",
|
2019-12-14 13:27:14 +00:00
|
|
|
]
|
|
|
|
|
2019-11-04 15:47:03 +00:00
|
|
|
[[package]]
|
|
|
|
name = "futures-core"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.30"
|
2019-11-04 15:47:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
|
2019-11-04 15:47:03 +00:00
|
|
|
|
Futures v0.3 upgrade (#1344)
* Upgrade futures, async-stream, and futures_codec
These were the last three dependencies on futures-preview. `nu` itself
is now fully dependent on `futures@0.3`, as opposed to `futures-preview`
alpha.
Because the update to `futures` from `0.3.0-alpha.19` to `0.3.0` removed
the `Stream` implementation of `VecDeque` ([changelog][changelog]), most
commands that convert a `VecDeque` to an `OutputStream` broke and had to
be fixed.
The current solution is to now convert `VecDeque`s to a `Stream` via
`futures::stream::iter`. However, it may be useful for `futures` to
create an `IntoStream` trait, implemented on the `std::collections` (or
really any `IntoIterator`). If something like this happends, it may be
worthwhile to update the trait implementations on `OutputStream` and
refactor these commands again.
While upgrading `futures_codec`, we remove a custom implementation of
`LinesCodec`, as one has been added to the library. There's also a small
refactor to make the stream output more idiomatic.
[changelog]: https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md#030---2019-11-5
* Upgrade sys & ps plugin dependencies
They were previously dependent on `futures-preview`, and `nu_plugin_ps`
was dependent on an old version of `futures-timer`.
* Remove dependency on futures-timer from nu
* Update Cargo.lock
* Fix formatting
* Revert fmt regressions
CI is still on 1.40.0, but the latest rustfmt v1.41.0 has changes to the
`val @ pattern` syntax, causing the linting job to fail.
* Fix clippy warnings
2020-02-06 03:46:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "futures-executor"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.30"
|
Futures v0.3 upgrade (#1344)
* Upgrade futures, async-stream, and futures_codec
These were the last three dependencies on futures-preview. `nu` itself
is now fully dependent on `futures@0.3`, as opposed to `futures-preview`
alpha.
Because the update to `futures` from `0.3.0-alpha.19` to `0.3.0` removed
the `Stream` implementation of `VecDeque` ([changelog][changelog]), most
commands that convert a `VecDeque` to an `OutputStream` broke and had to
be fixed.
The current solution is to now convert `VecDeque`s to a `Stream` via
`futures::stream::iter`. However, it may be useful for `futures` to
create an `IntoStream` trait, implemented on the `std::collections` (or
really any `IntoIterator`). If something like this happends, it may be
worthwhile to update the trait implementations on `OutputStream` and
refactor these commands again.
While upgrading `futures_codec`, we remove a custom implementation of
`LinesCodec`, as one has been added to the library. There's also a small
refactor to make the stream output more idiomatic.
[changelog]: https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md#030---2019-11-5
* Upgrade sys & ps plugin dependencies
They were previously dependent on `futures-preview`, and `nu_plugin_ps`
was dependent on an old version of `futures-timer`.
* Remove dependency on futures-timer from nu
* Update Cargo.lock
* Fix formatting
* Revert fmt regressions
CI is still on 1.40.0, but the latest rustfmt v1.41.0 has changes to the
`val @ pattern` syntax, causing the linting job to fail.
* Fix clippy warnings
2020-02-06 03:46:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
|
Futures v0.3 upgrade (#1344)
* Upgrade futures, async-stream, and futures_codec
These were the last three dependencies on futures-preview. `nu` itself
is now fully dependent on `futures@0.3`, as opposed to `futures-preview`
alpha.
Because the update to `futures` from `0.3.0-alpha.19` to `0.3.0` removed
the `Stream` implementation of `VecDeque` ([changelog][changelog]), most
commands that convert a `VecDeque` to an `OutputStream` broke and had to
be fixed.
The current solution is to now convert `VecDeque`s to a `Stream` via
`futures::stream::iter`. However, it may be useful for `futures` to
create an `IntoStream` trait, implemented on the `std::collections` (or
really any `IntoIterator`). If something like this happends, it may be
worthwhile to update the trait implementations on `OutputStream` and
refactor these commands again.
While upgrading `futures_codec`, we remove a custom implementation of
`LinesCodec`, as one has been added to the library. There's also a small
refactor to make the stream output more idiomatic.
[changelog]: https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md#030---2019-11-5
* Upgrade sys & ps plugin dependencies
They were previously dependent on `futures-preview`, and `nu_plugin_ps`
was dependent on an old version of `futures-timer`.
* Remove dependency on futures-timer from nu
* Update Cargo.lock
* Fix formatting
* Revert fmt regressions
CI is still on 1.40.0, but the latest rustfmt v1.41.0 has changes to the
`val @ pattern` syntax, causing the linting job to fail.
* Fix clippy warnings
2020-02-06 03:46:48 +00:00
|
|
|
dependencies = [
|
|
|
|
"futures-core",
|
|
|
|
"futures-task",
|
|
|
|
"futures-util",
|
|
|
|
]
|
|
|
|
|
2020-01-01 06:45:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "futures-io"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.30"
|
2020-11-22 00:37:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
|
2020-08-03 22:47:19 +00:00
|
|
|
|
2019-11-04 15:47:03 +00:00
|
|
|
[[package]]
|
|
|
|
name = "futures-macro"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.30"
|
2019-11-04 15:47:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
|
2019-11-04 15:47:03 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2019-11-04 15:47:03 +00:00
|
|
|
]
|
|
|
|
|
2020-01-01 06:45:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "futures-sink"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.30"
|
2020-01-01 06:45:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
|
2020-01-01 06:45:27 +00:00
|
|
|
|
2019-11-04 15:47:03 +00:00
|
|
|
[[package]]
|
|
|
|
name = "futures-task"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.30"
|
2019-11-04 15:47:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
|
2019-11-04 15:47:03 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-util"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.30"
|
2019-11-04 15:47:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
|
2019-11-04 15:47:03 +00:00
|
|
|
dependencies = [
|
2020-01-01 06:45:27 +00:00
|
|
|
"futures-channel",
|
2019-11-28 02:21:00 +00:00
|
|
|
"futures-core",
|
2020-01-01 06:45:27 +00:00
|
|
|
"futures-io",
|
2019-11-28 02:21:00 +00:00
|
|
|
"futures-macro",
|
2020-01-01 06:45:27 +00:00
|
|
|
"futures-sink",
|
2019-11-28 02:21:00 +00:00
|
|
|
"futures-task",
|
2020-01-01 06:45:27 +00:00
|
|
|
"memchr",
|
2021-08-28 03:34:11 +00:00
|
|
|
"pin-project-lite",
|
2019-11-28 02:21:00 +00:00
|
|
|
"pin-utils",
|
2021-07-09 19:28:07 +00:00
|
|
|
"slab",
|
2019-11-04 15:47:03 +00:00
|
|
|
]
|
|
|
|
|
2022-04-24 21:43:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "fuzzy-matcher"
|
|
|
|
version = "0.3.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "54614a3312934d066701a80f20f15fa3b56d67ac7722b39eea5b4c9dd1d66c94"
|
|
|
|
dependencies = [
|
|
|
|
"thread_local",
|
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "fxhash"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
|
|
|
|
dependencies = [
|
|
|
|
"byteorder",
|
|
|
|
]
|
|
|
|
|
2021-11-15 20:09:17 +00:00
|
|
|
[[package]]
|
|
|
|
name = "generic-array"
|
2023-04-14 20:14:57 +00:00
|
|
|
version = "0.14.7"
|
2021-11-15 20:09:17 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 20:14:57 +00:00
|
|
|
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
|
2021-11-15 20:09:17 +00:00
|
|
|
dependencies = [
|
|
|
|
"typenum",
|
2022-07-19 17:35:25 +00:00
|
|
|
"version_check",
|
Autoenv rewrite, security and scripting (#2083)
* Add args in .nurc file to environment
* Working dummy version
* Add add_nurc to sync_env command
* Parse .nurc file
* Delete env vars after leaving directory
* Removing vals not working, strangely
* Refactoring, add comment
* Debugging
* Debug by logging to file
* Add and remove env var behavior appears correct
However, it does not use existing code that well.
* Move work to cli.rs
* Parse config directories
* I am in a state of distress
* Rename .nurc to .nu
* Some notes for me
* Refactoring
* Removing vars works, but not done in a very nice fashion
* Refactor env_vars_to_delete
* Refactor env_vars_to_add()
* Move directory environment code to separate file
* Refactor from_config
* Restore env values
* Working?
* Working?
* Update comments and change var name
* Formatting
* Remove vars after leaving dir
* Remove notes I made
* Rename config function
* Clippy
* Cleanup and handle errors
* cargo fmt
* Better error messages, remove last (?) unwrap
* FORMAT PLZ
* Rename whitelisted_directories to allowed_directories
* Add comment to clarify how overwritten values are restored.
* Change list of allowed dirs to indexmap
* Rewrite starting
* rewrite everything
* Overwritten env values tracks an indexmap instead of vector
* Refactor restore function
* Untrack removed vars properly
* Performance concerns
* Performance concerns
* Error handling
* Clippy
* Add type aliases for String and OsString
* Deletion almost works
* Working?
* Error handling and refactoring
* nicer errors
* Add TODO file
* Move outside of loop
* Error handling
* Reworking adding of vars
* Reworking adding of vars
* Ready for testing
* Refactoring
* Restore overwritten vals code
* todo.org
* Remove overwritten values tracking, as it is not needed
* Cleanup, stop tracking overwritten values as nu takes care of it
* Init autoenv command
* Initialize autoenv and autoenv trust
* autoenv trust toml
* toml
* Use serde for autoenv
* Optional directory arg
* Add autoenv untrust command
* ... actually add autoenv untrust this time
* OsString and paths
* Revert "OsString and paths"
This reverts commit e6eedf882498c1365ecfc899e5ec11bd83cb055c.
* Fix path
* Fix path
* Autoenv trust and untrust
* Start using autoenv
* Check hashes
* Use trust functionality when setting vars
* Remove unused code
* Clippy
* Nicer errors for autoenv commands
* Non-working errors
* Update error description
* Satisfy fmt
* Errors
* Errors print, but not nicely
* Nicer errors
* fmt
* Delete accidentally added todo.org file
* Rename direnv to autoenv
* Use ShellError instead of Error
* Change tests to pass, danger zone?
* Clippy and errors
* Clippy... again
* Replace match with or_else
* Use sha2 crate for hashing
* parsing and error msg
* Refactoring
* Only apply vars once
* if parent dir
* Delete vars
* Rework exit code
* Adding works
* restore
* Fix possibility of infinite loop
* Refactoring
* Non-working
* Revert "Non-working"
This reverts commit e231b85570bcb3fc838f950e9f5004c6a7c5a2ac.
* Revert "Revert "Non-working""
This reverts commit 804092e46a752266576b044401cc97c317e41f21.
* Autoenv trust works without restart
* Cargo fix
* Script vars
* Serde
* Serde errors
* Entry and exitscripts
* Clippy
* Support windows and handle errors
* Formatting
* Fix infinite loop on windows
* Debugging windows loop
* More windows infinite loop debugging
* Windows loop debugging #3
* windows loop #4
* Don't return err
* Cleanup unused code
* Infinite loop debug
* Loop debugging
* Check if infinite loop is vars_to_add
* env_vars_to_add does not terminate, skip loop as test
* Hypothesis: std::env::current_dir() is messing with something
* Hypothesis: std::env::current_dir() is messing with something
* plz
* make clippy happy
* debugging in env_vars_to_add
* Debbuging env_vars_to_add #2
* clippy
* clippy..
* Fool clippy
* Fix another infinite loop
* Binary search for error location x)
* Binary search #3
* fmt
* Binary search #4
* more searching...
* closing in... maybe
* PLZ
* Cleanup
* Restore commented out functionality
* Handle case when user gives the directory "."
* fmt
* Use fs::canonicalize for paths
* Create optional script section
* fmt
* Add exitscripts even if no entryscripts are defined
* All sections in .nu-env are now optional
* Re-read config file each directory change
* Hot reload after autoenv untrust, don't run exitscripts if untrusted
* Debugging
* Fix issue with recursive adding of vars
* Thank you for finding my issues Mr. Azure
* use std::env
2020-07-05 17:34:00 +00:00
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "gethostname"
|
2024-03-12 22:10:11 +00:00
|
|
|
version = "0.4.3"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-12 22:10:11 +00:00
|
|
|
checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-03-12 22:10:11 +00:00
|
|
|
"windows-targets 0.48.5",
|
2024-01-20 14:04:06 +00:00
|
|
|
]
|
|
|
|
|
2021-01-19 20:24:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "getrandom"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.14"
|
2021-01-19 20:24:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2022-11-09 22:07:38 +00:00
|
|
|
"js-sys",
|
2021-01-19 20:24:27 +00:00
|
|
|
"libc",
|
2023-08-25 08:54:01 +00:00
|
|
|
"wasi",
|
2022-11-09 22:07:38 +00:00
|
|
|
"wasm-bindgen",
|
2021-01-19 20:24:27 +00:00
|
|
|
]
|
|
|
|
|
2020-05-16 03:18:24 +00:00
|
|
|
[[package]]
|
2023-07-06 15:31:31 +00:00
|
|
|
name = "gimli"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.28.1"
|
2021-11-23 08:14:40 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
|
2021-06-03 06:25:28 +00:00
|
|
|
|
2021-12-06 17:28:11 +00:00
|
|
|
[[package]]
|
2019-06-01 21:11:28 +00:00
|
|
|
name = "git2"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.18.3"
|
2019-06-01 21:11:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "232e6a7bfe35766bf715e55a88b39a700596c0ccfd88cd3680b4cdb40d66ef70"
|
2019-06-01 21:11:28 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2019-11-28 02:21:00 +00:00
|
|
|
"libc",
|
|
|
|
"libgit2-sys",
|
2021-07-09 19:28:07 +00:00
|
|
|
"log",
|
2021-12-06 17:28:11 +00:00
|
|
|
"openssl-probe",
|
|
|
|
"openssl-sys",
|
2020-11-22 00:37:16 +00:00
|
|
|
"url",
|
2019-06-01 21:11:28 +00:00
|
|
|
]
|
|
|
|
|
2021-04-19 16:19:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "gjson"
|
2022-04-15 11:04:15 +00:00
|
|
|
version = "0.8.1"
|
2021-04-19 16:19:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-04-15 11:04:15 +00:00
|
|
|
checksum = "43503cc176394dd30a6525f5f36e838339b8b5619be33ed9a7783841580a97b6"
|
2021-04-19 16:19:06 +00:00
|
|
|
|
2019-07-27 07:45:00 +00:00
|
|
|
[[package]]
|
|
|
|
name = "glob"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.3.1"
|
2019-07-27 07:45:00 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
2019-07-27 07:45:00 +00:00
|
|
|
|
2021-07-09 19:28:07 +00:00
|
|
|
[[package]]
|
|
|
|
name = "h2"
|
2024-04-07 21:48:18 +00:00
|
|
|
version = "0.3.26"
|
2021-07-09 19:28:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-07 21:48:18 +00:00
|
|
|
checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
|
2022-01-04 02:01:18 +00:00
|
|
|
dependencies = [
|
|
|
|
"bytes",
|
2021-07-09 19:28:07 +00:00
|
|
|
"fnv",
|
|
|
|
"futures-core",
|
|
|
|
"futures-sink",
|
|
|
|
"futures-util",
|
|
|
|
"http",
|
2023-12-06 00:09:34 +00:00
|
|
|
"indexmap",
|
2021-07-09 19:28:07 +00:00
|
|
|
"slab",
|
2021-08-28 03:34:11 +00:00
|
|
|
"tokio",
|
|
|
|
"tokio-util",
|
2021-07-09 19:28:07 +00:00
|
|
|
"tracing",
|
|
|
|
]
|
|
|
|
|
2022-11-09 22:07:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "halfbrown"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.5"
|
2022-11-09 22:07:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "8588661a8607108a5ca69cab034063441a0413a0b041c13618a7dd348021ef6f"
|
2022-11-09 22:07:38 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"hashbrown 0.14.3",
|
2022-11-09 22:07:38 +00:00
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2021-12-24 07:22:11 +00:00
|
|
|
[[package]]
|
|
|
|
name = "hash32"
|
2024-01-24 15:55:13 +00:00
|
|
|
version = "0.3.1"
|
2021-05-01 16:12:25 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-24 15:55:13 +00:00
|
|
|
checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
|
2021-05-01 16:12:25 +00:00
|
|
|
dependencies = [
|
|
|
|
"byteorder",
|
|
|
|
]
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "hashbrown"
|
|
|
|
version = "0.12.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"ahash 0.7.8",
|
2020-11-22 00:37:16 +00:00
|
|
|
]
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "hashbrown"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.14.3"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
|
2023-07-06 15:31:31 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"ahash 0.8.11",
|
2023-07-06 15:31:31 +00:00
|
|
|
"allocator-api2",
|
2023-08-29 22:13:34 +00:00
|
|
|
"rayon",
|
2023-07-06 15:31:31 +00:00
|
|
|
]
|
|
|
|
|
2022-04-14 03:15:02 +00:00
|
|
|
[[package]]
|
|
|
|
name = "hashlink"
|
2024-02-17 15:32:17 +00:00
|
|
|
version = "0.9.0"
|
2022-04-14 03:15:02 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 15:32:17 +00:00
|
|
|
checksum = "692eaaf7f7607518dd3cef090f1474b61edc5301d8012f09579920df68b725ee"
|
2022-04-14 03:15:02 +00:00
|
|
|
dependencies = [
|
2023-12-06 00:09:34 +00:00
|
|
|
"hashbrown 0.14.3",
|
2022-04-14 03:15:02 +00:00
|
|
|
]
|
|
|
|
|
2021-05-01 16:12:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "heapless"
|
2024-01-24 15:55:13 +00:00
|
|
|
version = "0.8.0"
|
2021-05-01 16:12:25 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-24 15:55:13 +00:00
|
|
|
checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad"
|
2021-12-24 07:22:11 +00:00
|
|
|
dependencies = [
|
2022-07-19 17:35:25 +00:00
|
|
|
"hash32",
|
2021-05-01 16:12:25 +00:00
|
|
|
"stable_deref_trait",
|
|
|
|
]
|
|
|
|
|
2021-12-01 19:48:03 +00:00
|
|
|
[[package]]
|
|
|
|
name = "heck"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.4.1"
|
2021-12-01 19:48:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
2021-12-01 19:48:03 +00:00
|
|
|
|
2024-03-21 19:17:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "heck"
|
|
|
|
version = "0.5.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
|
|
|
2023-03-11 23:35:56 +00:00
|
|
|
[[package]]
|
|
|
|
name = "hermit-abi"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.3.9"
|
2023-03-24 09:55:25 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
|
2023-03-24 09:55:25 +00:00
|
|
|
|
2019-09-24 19:02:35 +00:00
|
|
|
[[package]]
|
|
|
|
name = "hex"
|
2021-03-12 05:20:54 +00:00
|
|
|
version = "0.4.3"
|
2019-09-24 19:02:35 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-03-12 05:20:54 +00:00
|
|
|
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
2019-09-24 19:02:35 +00:00
|
|
|
|
2023-05-12 12:44:35 +00:00
|
|
|
[[package]]
|
|
|
|
name = "home"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.5.9"
|
2023-05-12 12:44:35 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
|
2023-05-12 12:44:35 +00:00
|
|
|
dependencies = [
|
2024-01-21 03:53:24 +00:00
|
|
|
"windows-sys 0.52.0",
|
2023-05-12 12:44:35 +00:00
|
|
|
]
|
|
|
|
|
2021-03-03 18:18:11 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "html5ever"
|
2022-07-26 02:09:32 +00:00
|
|
|
version = "0.26.0"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 02:09:32 +00:00
|
|
|
checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"log",
|
2020-11-03 21:46:42 +00:00
|
|
|
"mac",
|
|
|
|
"markup5ever",
|
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2023-04-06 20:39:54 +00:00
|
|
|
"syn 1.0.109",
|
2020-11-03 21:46:42 +00:00
|
|
|
]
|
|
|
|
|
2020-11-22 00:37:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "http"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.12"
|
2020-11-22 00:37:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
|
2022-01-04 02:01:18 +00:00
|
|
|
dependencies = [
|
|
|
|
"bytes",
|
|
|
|
"fnv",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2020-11-22 00:37:16 +00:00
|
|
|
]
|
|
|
|
|
2021-07-30 21:04:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "http-body"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.4.6"
|
2021-07-09 19:28:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
|
2021-07-09 19:28:07 +00:00
|
|
|
dependencies = [
|
2022-01-04 02:01:18 +00:00
|
|
|
"bytes",
|
2021-07-09 19:28:07 +00:00
|
|
|
"http",
|
2021-08-28 03:34:11 +00:00
|
|
|
"pin-project-lite",
|
2021-03-03 18:18:11 +00:00
|
|
|
]
|
|
|
|
|
2020-08-12 17:20:22 +00:00
|
|
|
[[package]]
|
|
|
|
name = "httparse"
|
2022-10-03 16:40:16 +00:00
|
|
|
version = "1.8.0"
|
2021-07-30 21:04:01 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 16:40:16 +00:00
|
|
|
checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
|
2021-07-30 21:04:01 +00:00
|
|
|
|
2021-07-09 19:28:07 +00:00
|
|
|
[[package]]
|
|
|
|
name = "httpdate"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "1.0.3"
|
2021-07-09 19:28:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
|
2021-07-09 19:28:07 +00:00
|
|
|
|
2023-11-15 23:43:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "human-date-parser"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.2"
|
2023-11-15 23:43:37 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c5cbf96a7157cc349eeafe4595e4f283c3fcab73b5a656d8b2cc00a870a74e1a"
|
2023-11-15 23:43:37 +00:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
"pest",
|
|
|
|
"pest_derive",
|
|
|
|
"thiserror",
|
|
|
|
]
|
|
|
|
|
2021-07-30 21:04:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "hyper"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.14.28"
|
2021-07-30 21:04:01 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
|
2022-01-04 02:01:18 +00:00
|
|
|
dependencies = [
|
|
|
|
"bytes",
|
2020-11-22 00:37:16 +00:00
|
|
|
"futures-channel",
|
|
|
|
"futures-core",
|
|
|
|
"futures-util",
|
2021-08-28 03:34:11 +00:00
|
|
|
"h2",
|
2021-06-01 08:11:21 +00:00
|
|
|
"http",
|
2021-08-28 03:34:11 +00:00
|
|
|
"http-body",
|
2020-08-12 17:20:22 +00:00
|
|
|
"httparse",
|
2021-08-28 03:34:11 +00:00
|
|
|
"httpdate",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2021-08-28 03:34:11 +00:00
|
|
|
"pin-project-lite",
|
|
|
|
"tokio",
|
2020-11-22 00:37:16 +00:00
|
|
|
"tower-service",
|
|
|
|
"tracing",
|
2021-07-09 19:28:07 +00:00
|
|
|
"want",
|
2020-08-12 17:20:22 +00:00
|
|
|
]
|
|
|
|
|
2022-07-26 02:09:32 +00:00
|
|
|
[[package]]
|
|
|
|
name = "iana-time-zone"
|
2024-03-11 20:37:34 +00:00
|
|
|
version = "0.1.60"
|
2022-07-26 02:09:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-11 20:37:34 +00:00
|
|
|
checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
|
2022-07-26 02:09:32 +00:00
|
|
|
dependencies = [
|
2022-08-13 18:21:28 +00:00
|
|
|
"android_system_properties",
|
|
|
|
"core-foundation-sys",
|
2023-03-11 23:35:56 +00:00
|
|
|
"iana-time-zone-haiku",
|
2022-07-26 02:09:32 +00:00
|
|
|
"js-sys",
|
|
|
|
"wasm-bindgen",
|
2024-03-08 00:36:28 +00:00
|
|
|
"windows-core 0.52.0",
|
2022-07-26 02:09:32 +00:00
|
|
|
]
|
|
|
|
|
2023-03-11 23:35:56 +00:00
|
|
|
[[package]]
|
|
|
|
name = "iana-time-zone-haiku"
|
2023-05-17 23:32:28 +00:00
|
|
|
version = "0.1.2"
|
2023-03-11 23:35:56 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-17 23:32:28 +00:00
|
|
|
checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
|
2023-03-11 23:35:56 +00:00
|
|
|
dependencies = [
|
2023-05-17 23:32:28 +00:00
|
|
|
"cc",
|
2023-03-11 23:35:56 +00:00
|
|
|
]
|
|
|
|
|
2020-03-20 19:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ical"
|
2024-03-27 06:44:33 +00:00
|
|
|
version = "0.11.0"
|
2020-03-20 19:35:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 06:44:33 +00:00
|
|
|
checksum = "9b7cab7543a8b7729a19e2c04309f902861293dcdae6558dfbeb634454d279f6"
|
2020-03-20 19:35:09 +00:00
|
|
|
dependencies = [
|
2021-01-07 00:38:22 +00:00
|
|
|
"thiserror",
|
2020-03-20 19:35:09 +00:00
|
|
|
]
|
|
|
|
|
2019-07-29 07:46:24 +00:00
|
|
|
[[package]]
|
|
|
|
name = "idna"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.5.0"
|
2019-07-29 07:46:24 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
|
2019-07-29 07:46:24 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"unicode-bidi",
|
|
|
|
"unicode-normalization",
|
2019-07-29 07:46:24 +00:00
|
|
|
]
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "indexmap"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.2.6"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
|
2023-07-06 15:31:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"equivalent",
|
2023-12-06 00:09:34 +00:00
|
|
|
"hashbrown 0.14.3",
|
2023-08-29 22:13:34 +00:00
|
|
|
"serde",
|
2023-07-06 15:31:31 +00:00
|
|
|
]
|
|
|
|
|
2023-01-11 01:57:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "indicatif"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.17.8"
|
2023-01-11 01:57:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3"
|
2023-01-11 01:57:48 +00:00
|
|
|
dependencies = [
|
|
|
|
"console",
|
2023-07-06 15:31:31 +00:00
|
|
|
"instant",
|
2023-01-11 01:57:48 +00:00
|
|
|
"number_prefix",
|
2023-07-06 15:31:31 +00:00
|
|
|
"portable-atomic",
|
2023-01-11 01:57:48 +00:00
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2023-09-04 00:22:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "indoc"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.0.5"
|
2023-09-04 00:22:25 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
|
2023-09-04 00:22:25 +00:00
|
|
|
|
2022-04-28 14:26:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "inotify"
|
2023-07-05 12:14:55 +00:00
|
|
|
version = "0.9.6"
|
2022-04-28 14:26:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-05 12:14:55 +00:00
|
|
|
checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
|
2022-04-28 14:26:34 +00:00
|
|
|
dependencies = [
|
2023-05-26 15:32:48 +00:00
|
|
|
"bitflags 1.3.2",
|
2022-04-28 14:26:34 +00:00
|
|
|
"inotify-sys",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "inotify-sys"
|
|
|
|
version = "0.1.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2021-08-01 03:03:13 +00:00
|
|
|
[[package]]
|
2020-06-27 07:54:31 +00:00
|
|
|
name = "instant"
|
2021-12-02 18:05:38 +00:00
|
|
|
version = "0.1.12"
|
2020-06-27 07:54:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-12-02 18:05:38 +00:00
|
|
|
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
|
2020-10-06 22:21:24 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2020-10-06 22:21:24 +00:00
|
|
|
]
|
2020-06-27 07:54:31 +00:00
|
|
|
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 18:28:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "interprocess"
|
2024-05-03 05:31:33 +00:00
|
|
|
version = "2.0.0"
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 18:28:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-05-03 05:31:33 +00:00
|
|
|
checksum = "6d5f0e3c218e7a86a6712fd3adc84672304f9e839402b866685b9117a077c37f"
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 18:28:18 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-05-03 05:31:33 +00:00
|
|
|
"recvmsg",
|
|
|
|
"widestring",
|
|
|
|
"windows-sys 0.52.0",
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 18:28:18 +00:00
|
|
|
]
|
|
|
|
|
2019-05-24 18:48:33 +00:00
|
|
|
[[package]]
|
2021-11-23 08:14:40 +00:00
|
|
|
name = "inventory"
|
2024-01-27 00:33:15 +00:00
|
|
|
version = "0.3.15"
|
2021-11-23 08:14:40 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-27 00:33:15 +00:00
|
|
|
checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767"
|
2021-11-23 08:14:40 +00:00
|
|
|
|
2023-04-17 05:05:40 +00:00
|
|
|
[[package]]
|
|
|
|
name = "is-docker"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
|
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "is-wsl"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
|
|
|
|
dependencies = [
|
|
|
|
"is-docker",
|
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
2021-12-01 19:48:03 +00:00
|
|
|
[[package]]
|
2021-09-22 23:49:39 +00:00
|
|
|
name = "is_ci"
|
2024-02-08 01:26:18 +00:00
|
|
|
version = "1.2.0"
|
2021-09-22 23:49:39 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 01:26:18 +00:00
|
|
|
checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45"
|
2021-09-22 23:49:39 +00:00
|
|
|
|
2021-12-11 20:40:16 +00:00
|
|
|
[[package]]
|
2021-12-01 19:48:03 +00:00
|
|
|
name = "is_debug"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "06d198e9919d9822d5f7083ba8530e04de87841eaf21ead9af8f2304efd57c89"
|
|
|
|
|
2021-06-21 21:39:21 +00:00
|
|
|
[[package]]
|
|
|
|
name = "is_executable"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8"
|
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"winapi",
|
2021-06-21 21:39:21 +00:00
|
|
|
]
|
|
|
|
|
2023-09-04 00:22:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "itertools"
|
|
|
|
version = "0.11.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
|
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
]
|
|
|
|
|
Bump itertools from 0.11.0 to 0.12.0 (#11360)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.11.0 to 0.12.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.0</h2>
<h3>Breaking</h3>
<ul>
<li>Made <code>take_while_inclusive</code> consume iterator by value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/709">#709</a>)</li>
<li>Added <code>Clone</code> bound to <code>Unique</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/777">#777</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::try_len</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/723">#723</a>)</li>
<li>Added free function <code>sort_unstable</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/796">#796</a>)</li>
<li>Added <code>GroupMap::fold_with</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/778">#778</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/785">#785</a>)</li>
<li>Added <code>PeekNth::{peek_mut, peek_nth_mut}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/716">#716</a>)</li>
<li>Added <code>PeekNth::{next_if, next_if_eq}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/734">#734</a>)</li>
<li>Added conversion into <code>(Option<A>,Option<B>)</code>
to <code>EitherOrBoth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/713">#713</a>)</li>
<li>Added conversion from <code>Either<A, B></code> to
<code>EitherOrBoth<A, B></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/715">#715</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for <code>Tuples</code>
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/761">#761</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for
<code>(Circular)TupleWindows</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/752">#752</a>)</li>
<li>Made <code>EitherOrBoth<T></code> a shorthand for
<code>EitherOrBoth<T, T></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/719">#719</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Added missing <code>#[must_use]</code> annotations on iterator
adaptors (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/794">#794</a>)</li>
<li>Made <code>Combinations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/795">#795</a>)</li>
<li>Made <code>Intersperse(With)</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/797">#797</a>)</li>
<li>Made <code>Permutations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/793">#793</a>)</li>
<li>Made <code>Product</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/800">#800</a>)</li>
<li>Made <code>TupleWindows</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/602">#602</a>)</li>
<li>Specialized <code>Combinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/729">#729</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::{count,
size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/737">#737</a>)</li>
<li>Specialized <code>Powerset::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/765">#765</a>)</li>
<li>Specialized <code>Powerset::count</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/735">#735</a>)</li>
<li>Specialized <code>TupleCombinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/763">#763</a>)</li>
<li>Specialized <code>TupleCombinations::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/775">#775</a>)</li>
<li>Specialized <code>WhileSome::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/780">#780</a>)</li>
<li>Specialized <code>WithPosition::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/772">#772</a>)</li>
<li>Specialized <code>ZipLongest::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/774">#774</a>)</li>
<li>Changed <code>{min, max}_set*</code> operations require
<code>alloc</code> feature, instead of <code>std</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/760">#760</a>)</li>
<li>Improved documentation of <code>tree_fold1</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/787">#787</a>)</li>
<li>Improved documentation of <code>permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/724">#724</a>)</li>
<li>Fixed typo in documentation of <code>multiunzip</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Improved specialization tests (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/799">#799</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/786">#786</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/782">#782</a>)</li>
<li>Simplified implementation of <code>Permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/748">#748</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/790">#790</a>)</li>
<li>Combined
<code>Merge</code>/<code>MergeBy</code>/<code>MergeJoinBy</code>
implementations (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/736">#736</a>)</li>
<li>Simplified <code>Permutations::size_hint</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>)</li>
<li>Fix wrapping arithmetic in benchmarks (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
<li>Enforced <code>rustfmt</code> in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/751">#751</a>)</li>
<li>Disallowed compile warnings in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/720">#720</a>)</li>
<li>Used <code>cargo hack</code> to check MSRV (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/754">#754</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/98ecabb47d7147dae06fc3fa400ec758947194f3"><code>98ecabb</code></a>
chore: Release itertools version 0.12.0</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/22fc427ac5282cbdafccfe38a686ec1d3b720120"><code>22fc427</code></a>
prepare v0.12.0 release</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/6d291786a9c9686a3997d93c513bd18326611fe5"><code>6d29178</code></a>
Document the field <code>a_cur</code> of <code>Product</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/bf2b0129d1d3cc1ffa733059f3088adb6d745fe6"><code>bf2b012</code></a>
Better <code>Product::size_hint</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/8d07f6b8566a515118ca8b119f358b73d483152b"><code>8d07f6b</code></a>
Make <code>Product</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7e6bab9fd0ad79130692f8e48e21375362a7614"><code>d7e6bab</code></a>
Document the field <code>peek</code> of
<code>IntersperseWith</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/9b01a118919f0d1f7c3327d1a15a5eb660f3912e"><code>9b01a11</code></a>
Make <code>IntersperseWith</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4f22173b93a2eb58da16b7da6d08e6c3f1c56544"><code>4f22173</code></a>
Refactor <code>IntersperseWith::next</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/b76172b412116356ebef05b884a6e4def63a4d17"><code>b76172b</code></a>
chore: adjust docs to reflect discussion in the PR</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/955927f6c424f895ad7519d413bc5718e6ad26bf"><code>955927f</code></a>
chore: fixup docs of tree_fold1</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.11.0...v0.12.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.11.0&new-version=0.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 14:58:07 +00:00
|
|
|
[[package]]
|
|
|
|
name = "itertools"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.12.1"
|
Bump itertools from 0.11.0 to 0.12.0 (#11360)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.11.0 to 0.12.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.0</h2>
<h3>Breaking</h3>
<ul>
<li>Made <code>take_while_inclusive</code> consume iterator by value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/709">#709</a>)</li>
<li>Added <code>Clone</code> bound to <code>Unique</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/777">#777</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::try_len</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/723">#723</a>)</li>
<li>Added free function <code>sort_unstable</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/796">#796</a>)</li>
<li>Added <code>GroupMap::fold_with</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/778">#778</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/785">#785</a>)</li>
<li>Added <code>PeekNth::{peek_mut, peek_nth_mut}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/716">#716</a>)</li>
<li>Added <code>PeekNth::{next_if, next_if_eq}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/734">#734</a>)</li>
<li>Added conversion into <code>(Option<A>,Option<B>)</code>
to <code>EitherOrBoth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/713">#713</a>)</li>
<li>Added conversion from <code>Either<A, B></code> to
<code>EitherOrBoth<A, B></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/715">#715</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for <code>Tuples</code>
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/761">#761</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for
<code>(Circular)TupleWindows</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/752">#752</a>)</li>
<li>Made <code>EitherOrBoth<T></code> a shorthand for
<code>EitherOrBoth<T, T></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/719">#719</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Added missing <code>#[must_use]</code> annotations on iterator
adaptors (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/794">#794</a>)</li>
<li>Made <code>Combinations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/795">#795</a>)</li>
<li>Made <code>Intersperse(With)</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/797">#797</a>)</li>
<li>Made <code>Permutations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/793">#793</a>)</li>
<li>Made <code>Product</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/800">#800</a>)</li>
<li>Made <code>TupleWindows</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/602">#602</a>)</li>
<li>Specialized <code>Combinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/729">#729</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::{count,
size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/737">#737</a>)</li>
<li>Specialized <code>Powerset::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/765">#765</a>)</li>
<li>Specialized <code>Powerset::count</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/735">#735</a>)</li>
<li>Specialized <code>TupleCombinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/763">#763</a>)</li>
<li>Specialized <code>TupleCombinations::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/775">#775</a>)</li>
<li>Specialized <code>WhileSome::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/780">#780</a>)</li>
<li>Specialized <code>WithPosition::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/772">#772</a>)</li>
<li>Specialized <code>ZipLongest::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/774">#774</a>)</li>
<li>Changed <code>{min, max}_set*</code> operations require
<code>alloc</code> feature, instead of <code>std</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/760">#760</a>)</li>
<li>Improved documentation of <code>tree_fold1</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/787">#787</a>)</li>
<li>Improved documentation of <code>permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/724">#724</a>)</li>
<li>Fixed typo in documentation of <code>multiunzip</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Improved specialization tests (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/799">#799</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/786">#786</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/782">#782</a>)</li>
<li>Simplified implementation of <code>Permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/748">#748</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/790">#790</a>)</li>
<li>Combined
<code>Merge</code>/<code>MergeBy</code>/<code>MergeJoinBy</code>
implementations (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/736">#736</a>)</li>
<li>Simplified <code>Permutations::size_hint</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>)</li>
<li>Fix wrapping arithmetic in benchmarks (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
<li>Enforced <code>rustfmt</code> in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/751">#751</a>)</li>
<li>Disallowed compile warnings in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/720">#720</a>)</li>
<li>Used <code>cargo hack</code> to check MSRV (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/754">#754</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/98ecabb47d7147dae06fc3fa400ec758947194f3"><code>98ecabb</code></a>
chore: Release itertools version 0.12.0</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/22fc427ac5282cbdafccfe38a686ec1d3b720120"><code>22fc427</code></a>
prepare v0.12.0 release</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/6d291786a9c9686a3997d93c513bd18326611fe5"><code>6d29178</code></a>
Document the field <code>a_cur</code> of <code>Product</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/bf2b0129d1d3cc1ffa733059f3088adb6d745fe6"><code>bf2b012</code></a>
Better <code>Product::size_hint</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/8d07f6b8566a515118ca8b119f358b73d483152b"><code>8d07f6b</code></a>
Make <code>Product</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7e6bab9fd0ad79130692f8e48e21375362a7614"><code>d7e6bab</code></a>
Document the field <code>peek</code> of
<code>IntersperseWith</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/9b01a118919f0d1f7c3327d1a15a5eb660f3912e"><code>9b01a11</code></a>
Make <code>IntersperseWith</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4f22173b93a2eb58da16b7da6d08e6c3f1c56544"><code>4f22173</code></a>
Refactor <code>IntersperseWith::next</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/b76172b412116356ebef05b884a6e4def63a4d17"><code>b76172b</code></a>
chore: adjust docs to reflect discussion in the PR</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/955927f6c424f895ad7519d413bc5718e6ad26bf"><code>955927f</code></a>
chore: fixup docs of tree_fold1</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.11.0...v0.12.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.11.0&new-version=0.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 14:58:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
|
Bump itertools from 0.11.0 to 0.12.0 (#11360)
Bumps [itertools](https://github.com/rust-itertools/itertools) from
0.11.0 to 0.12.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md">itertools's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.0</h2>
<h3>Breaking</h3>
<ul>
<li>Made <code>take_while_inclusive</code> consume iterator by value (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/709">#709</a>)</li>
<li>Added <code>Clone</code> bound to <code>Unique</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/777">#777</a>)</li>
</ul>
<h3>Added</h3>
<ul>
<li>Added <code>Itertools::try_len</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/723">#723</a>)</li>
<li>Added free function <code>sort_unstable</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/796">#796</a>)</li>
<li>Added <code>GroupMap::fold_with</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/778">#778</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/785">#785</a>)</li>
<li>Added <code>PeekNth::{peek_mut, peek_nth_mut}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/716">#716</a>)</li>
<li>Added <code>PeekNth::{next_if, next_if_eq}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/734">#734</a>)</li>
<li>Added conversion into <code>(Option<A>,Option<B>)</code>
to <code>EitherOrBoth</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/713">#713</a>)</li>
<li>Added conversion from <code>Either<A, B></code> to
<code>EitherOrBoth<A, B></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/715">#715</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for <code>Tuples</code>
(<a
href="https://redirect.github.com/rust-itertools/itertools/issues/761">#761</a>)</li>
<li>Implemented <code>ExactSizeIterator</code> for
<code>(Circular)TupleWindows</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/752">#752</a>)</li>
<li>Made <code>EitherOrBoth<T></code> a shorthand for
<code>EitherOrBoth<T, T></code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/719">#719</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Added missing <code>#[must_use]</code> annotations on iterator
adaptors (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/794">#794</a>)</li>
<li>Made <code>Combinations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/795">#795</a>)</li>
<li>Made <code>Intersperse(With)</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/797">#797</a>)</li>
<li>Made <code>Permutations</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/793">#793</a>)</li>
<li>Made <code>Product</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/800">#800</a>)</li>
<li>Made <code>TupleWindows</code> lazy (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/602">#602</a>)</li>
<li>Specialized <code>Combinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/729">#729</a>)</li>
<li>Specialized <code>CombinationsWithReplacement::{count,
size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/737">#737</a>)</li>
<li>Specialized <code>Powerset::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/765">#765</a>)</li>
<li>Specialized <code>Powerset::count</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/735">#735</a>)</li>
<li>Specialized <code>TupleCombinations::{count, size_hint}</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/763">#763</a>)</li>
<li>Specialized <code>TupleCombinations::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/775">#775</a>)</li>
<li>Specialized <code>WhileSome::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/780">#780</a>)</li>
<li>Specialized <code>WithPosition::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/772">#772</a>)</li>
<li>Specialized <code>ZipLongest::fold</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/774">#774</a>)</li>
<li>Changed <code>{min, max}_set*</code> operations require
<code>alloc</code> feature, instead of <code>std</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/760">#760</a>)</li>
<li>Improved documentation of <code>tree_fold1</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/787">#787</a>)</li>
<li>Improved documentation of <code>permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/724">#724</a>)</li>
<li>Fixed typo in documentation of <code>multiunzip</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
</ul>
<h3>Notable Internal Changes</h3>
<ul>
<li>Improved specialization tests (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/799">#799</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/786">#786</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/782">#782</a>)</li>
<li>Simplified implementation of <code>Permutations</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/748">#748</a>,
<a
href="https://redirect.github.com/rust-itertools/itertools/issues/790">#790</a>)</li>
<li>Combined
<code>Merge</code>/<code>MergeBy</code>/<code>MergeJoinBy</code>
implementations (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/736">#736</a>)</li>
<li>Simplified <code>Permutations::size_hint</code> (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/739">#739</a>)</li>
<li>Fix wrapping arithmetic in benchmarks (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/770">#770</a>)</li>
<li>Enforced <code>rustfmt</code> in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/751">#751</a>)</li>
<li>Disallowed compile warnings in CI (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/720">#720</a>)</li>
<li>Used <code>cargo hack</code> to check MSRV (<a
href="https://redirect.github.com/rust-itertools/itertools/issues/754">#754</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-itertools/itertools/commit/98ecabb47d7147dae06fc3fa400ec758947194f3"><code>98ecabb</code></a>
chore: Release itertools version 0.12.0</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/22fc427ac5282cbdafccfe38a686ec1d3b720120"><code>22fc427</code></a>
prepare v0.12.0 release</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/6d291786a9c9686a3997d93c513bd18326611fe5"><code>6d29178</code></a>
Document the field <code>a_cur</code> of <code>Product</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/bf2b0129d1d3cc1ffa733059f3088adb6d745fe6"><code>bf2b012</code></a>
Better <code>Product::size_hint</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/8d07f6b8566a515118ca8b119f358b73d483152b"><code>8d07f6b</code></a>
Make <code>Product</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/d7e6bab9fd0ad79130692f8e48e21375362a7614"><code>d7e6bab</code></a>
Document the field <code>peek</code> of
<code>IntersperseWith</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/9b01a118919f0d1f7c3327d1a15a5eb660f3912e"><code>9b01a11</code></a>
Make <code>IntersperseWith</code> lazy</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/4f22173b93a2eb58da16b7da6d08e6c3f1c56544"><code>4f22173</code></a>
Refactor <code>IntersperseWith::next</code></li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/b76172b412116356ebef05b884a6e4def63a4d17"><code>b76172b</code></a>
chore: adjust docs to reflect discussion in the PR</li>
<li><a
href="https://github.com/rust-itertools/itertools/commit/955927f6c424f895ad7519d413bc5718e6ad26bf"><code>955927f</code></a>
chore: fixup docs of tree_fold1</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-itertools/itertools/compare/v0.11.0...v0.12.0">compare
view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=itertools&package-manager=cargo&previous-version=0.11.0&new-version=0.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 14:58:07 +00:00
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
]
|
|
|
|
|
2022-02-08 13:28:21 +00:00
|
|
|
[[package]]
|
|
|
|
name = "itoa"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.11"
|
2022-02-08 13:28:21 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
|
2022-02-08 13:28:21 +00:00
|
|
|
|
2024-02-13 12:27:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "itoap"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8"
|
|
|
|
|
2019-09-13 03:44:21 +00:00
|
|
|
[[package]]
|
|
|
|
name = "jobserver"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.28"
|
2019-09-13 03:44:21 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
|
2019-09-13 03:44:21 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"libc",
|
2019-09-13 03:44:21 +00:00
|
|
|
]
|
|
|
|
|
2022-04-04 20:45:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "joinery"
|
|
|
|
version = "2.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5"
|
|
|
|
|
2019-08-24 19:36:19 +00:00
|
|
|
[[package]]
|
|
|
|
name = "js-sys"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.3.69"
|
2019-08-24 19:36:19 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
|
2019-08-24 19:36:19 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"wasm-bindgen",
|
2019-08-24 19:36:19 +00:00
|
|
|
]
|
|
|
|
|
2024-04-13 18:00:04 +00:00
|
|
|
[[package]]
|
|
|
|
name = "jsonpath_lib_polars_vendor"
|
|
|
|
version = "0.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f4bd9354947622f7471ff713eacaabdb683ccb13bba4edccaab9860abf480b7d"
|
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
2022-04-28 14:26:34 +00:00
|
|
|
[[package]]
|
2023-07-05 12:14:55 +00:00
|
|
|
name = "kqueue"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "1.0.8"
|
Dependency update: update notify version to v5 (#8114)
# Description
Relative: #8060
While investigating, I found we need to update notify, which is a good
step to remove some duplicate dependencies.
As title, here are some goods and bads after updating:
## Good
keep dependency up to date, and remove duplidate dependency(cfg-if,
winapi) in Cargo.lock.
## Bad
Introduce some breaking changes:
After updating to notify v5, I found that we have to remove `Rename`
events.
But I've testing under notify v4, and it doesn't work good if we running
the following command on MacOS:
```
touch a
mv a b
```
It fires file create event, but no file rename event. So `rename` event
is not really reliable, so I think it's ok for us to remove `Rename`
events.
The reason to remove `--debounce-ms` flag:
It's not provided by defualt file watcher, we can use
[PollWatcher](https://docs.rs/notify/latest/notify/poll/struct.PollWatcher.html),
but it scans filesystem, which is really expensive. So I just remove the
flag.
# User-Facing Changes
1. `--debounce-ms` flag is removed
2. no longer watch `Rename` event.
# 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 -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass
# 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.
2023-02-22 21:35:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
|
Dependency update: update notify version to v5 (#8114)
# Description
Relative: #8060
While investigating, I found we need to update notify, which is a good
step to remove some duplicate dependencies.
As title, here are some goods and bads after updating:
## Good
keep dependency up to date, and remove duplidate dependency(cfg-if,
winapi) in Cargo.lock.
## Bad
Introduce some breaking changes:
After updating to notify v5, I found that we have to remove `Rename`
events.
But I've testing under notify v4, and it doesn't work good if we running
the following command on MacOS:
```
touch a
mv a b
```
It fires file create event, but no file rename event. So `rename` event
is not really reliable, so I think it's ok for us to remove `Rename`
events.
The reason to remove `--debounce-ms` flag:
It's not provided by defualt file watcher, we can use
[PollWatcher](https://docs.rs/notify/latest/notify/poll/struct.PollWatcher.html),
but it scans filesystem, which is really expensive. So I just remove the
flag.
# User-Facing Changes
1. `--debounce-ms` flag is removed
2. no longer watch `Rename` event.
# 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 -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass
# 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.
2023-02-22 21:35:09 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"kqueue-sys",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "kqueue-sys"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "1.0.4"
|
2023-07-05 12:14:55 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
|
2023-07-05 12:14:55 +00:00
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.3.2",
|
|
|
|
"libc",
|
2022-04-28 14:26:34 +00:00
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "lazy_static"
|
2019-10-13 04:53:58 +00:00
|
|
|
version = "1.4.0"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 02:21:00 +00:00
|
|
|
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
2019-05-10 16:59:12 +00:00
|
|
|
|
2022-04-28 14:26:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "lazycell"
|
|
|
|
version = "1.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
|
|
|
|
2020-09-08 22:35:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "lexical-core"
|
2022-05-25 17:13:14 +00:00
|
|
|
version = "0.8.5"
|
2020-09-08 22:35:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 17:13:14 +00:00
|
|
|
checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
|
2020-09-08 22:35:45 +00:00
|
|
|
dependencies = [
|
2021-09-15 19:10:12 +00:00
|
|
|
"lexical-parse-float",
|
|
|
|
"lexical-parse-integer",
|
|
|
|
"lexical-util",
|
|
|
|
"lexical-write-float",
|
|
|
|
"lexical-write-integer",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-parse-float"
|
2022-05-25 17:13:14 +00:00
|
|
|
version = "0.8.5"
|
2021-09-15 19:10:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 17:13:14 +00:00
|
|
|
checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
|
2021-09-15 19:10:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"lexical-parse-integer",
|
|
|
|
"lexical-util",
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-parse-integer"
|
2022-06-14 20:53:33 +00:00
|
|
|
version = "0.8.6"
|
2021-09-15 19:10:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-06-14 20:53:33 +00:00
|
|
|
checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
|
2021-09-15 19:10:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"lexical-util",
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-util"
|
2022-05-25 17:13:14 +00:00
|
|
|
version = "0.8.5"
|
2021-09-15 19:10:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 17:13:14 +00:00
|
|
|
checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
|
2021-09-15 19:10:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-write-float"
|
2022-05-25 17:13:14 +00:00
|
|
|
version = "0.8.5"
|
2021-09-15 19:10:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 17:13:14 +00:00
|
|
|
checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
|
2021-09-15 19:10:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"lexical-util",
|
|
|
|
"lexical-write-integer",
|
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lexical-write-integer"
|
2022-05-25 17:13:14 +00:00
|
|
|
version = "0.8.5"
|
2021-09-15 19:10:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 17:13:14 +00:00
|
|
|
checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
|
2021-09-15 19:10:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"lexical-util",
|
2020-09-08 22:35:45 +00:00
|
|
|
"static_assertions",
|
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libc"
|
2024-03-25 21:51:50 +00:00
|
|
|
version = "0.2.153"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 21:51:50 +00:00
|
|
|
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
|
2019-05-10 16:59:12 +00:00
|
|
|
|
2023-08-16 01:31:49 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libflate"
|
|
|
|
version = "1.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5ff4ae71b685bbad2f2f391fe74f6b7659a34871c08b210fdc039e43bee07d18"
|
|
|
|
dependencies = [
|
|
|
|
"adler32",
|
|
|
|
"crc32fast",
|
|
|
|
"libflate_lz77",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "libflate_lz77"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a52d3a8bfc85f250440e4424db7d857e241a3aebbbe301f3eb606ab15c39acbf"
|
|
|
|
dependencies = [
|
|
|
|
"rle-decode-fast",
|
|
|
|
]
|
|
|
|
|
2019-06-01 21:11:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libgit2-sys"
|
2024-02-12 16:07:12 +00:00
|
|
|
version = "0.16.2+1.7.2"
|
2019-06-01 21:11:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-12 16:07:12 +00:00
|
|
|
checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
|
2019-06-01 21:11:28 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"cc",
|
|
|
|
"libc",
|
2021-12-06 17:28:11 +00:00
|
|
|
"libssh2-sys",
|
2019-11-28 02:21:00 +00:00
|
|
|
"libz-sys",
|
2021-12-06 17:28:11 +00:00
|
|
|
"openssl-sys",
|
2019-11-28 02:21:00 +00:00
|
|
|
"pkg-config",
|
2019-06-01 21:11:28 +00:00
|
|
|
]
|
|
|
|
|
2022-07-11 16:18:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libloading"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.8.3"
|
2022-07-11 16:18:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
|
2022-07-11 16:18:06 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2024-04-10 00:31:43 +00:00
|
|
|
"windows-targets 0.52.4",
|
2022-07-11 16:18:06 +00:00
|
|
|
]
|
|
|
|
|
2021-05-27 05:09:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libm"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.2.8"
|
2021-05-27 05:09:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
|
2021-05-27 05:09:48 +00:00
|
|
|
|
2023-06-14 22:27:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libmimalloc-sys"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.1.35"
|
2023-06-14 22:27:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "3979b5c37ece694f1f5e51e7ecc871fdb0f517ed04ee45f88d15d6d553cb9664"
|
2023-06-14 22:27:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2019-08-27 21:45:18 +00:00
|
|
|
[[package]]
|
2022-01-14 06:20:53 +00:00
|
|
|
name = "libproc"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.14.6"
|
2022-01-14 06:20:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "8eb6497078a4c9c2aca63df56d8dce6eb4381d53a960f781a3a748f7ea97436d"
|
2022-01-14 06:20:53 +00:00
|
|
|
dependencies = [
|
2022-07-11 16:18:06 +00:00
|
|
|
"bindgen",
|
2023-07-10 05:10:36 +00:00
|
|
|
"errno",
|
2022-01-14 06:20:53 +00:00
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libredox"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.3"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2022-04-14 03:15:02 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libsqlite3-sys"
|
2024-02-17 15:32:17 +00:00
|
|
|
version = "0.28.0"
|
2022-04-14 03:15:02 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 15:32:17 +00:00
|
|
|
checksum = "0c10584274047cb335c23d3e61bcef8e323adae7c5c8c760540f73610177fc3f"
|
2022-04-14 03:15:02 +00:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"pkg-config",
|
|
|
|
"vcpkg",
|
|
|
|
]
|
|
|
|
|
2021-12-06 17:28:11 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libssh2-sys"
|
2023-04-05 19:20:58 +00:00
|
|
|
version = "0.3.0"
|
2021-12-06 17:28:11 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-05 19:20:58 +00:00
|
|
|
checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
|
2021-12-06 17:28:11 +00:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
"libz-sys",
|
|
|
|
"openssl-sys",
|
2019-11-28 02:21:00 +00:00
|
|
|
"pkg-config",
|
|
|
|
"vcpkg",
|
2019-08-27 21:45:18 +00:00
|
|
|
]
|
|
|
|
|
2019-06-01 21:11:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "libz-sys"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.1.16"
|
2019-06-01 21:11:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9"
|
2019-06-01 21:11:28 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
"pkg-config",
|
|
|
|
"vcpkg",
|
2019-06-01 21:11:28 +00:00
|
|
|
]
|
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "linked-hash-map"
|
2022-07-26 02:09:32 +00:00
|
|
|
version = "0.5.6"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 02:09:32 +00:00
|
|
|
checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
|
2021-03-04 06:35:13 +00:00
|
|
|
dependencies = [
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2021-03-04 06:35:13 +00:00
|
|
|
]
|
2019-05-18 01:24:13 +00:00
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "linux-raw-sys"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.4.13"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
|
2023-07-06 15:31:31 +00:00
|
|
|
|
2021-08-30 18:36:07 +00:00
|
|
|
[[package]]
|
|
|
|
name = "lock_api"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.4.11"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
|
2020-06-27 07:54:31 +00:00
|
|
|
dependencies = [
|
2022-04-15 11:04:15 +00:00
|
|
|
"autocfg",
|
2020-06-27 07:54:31 +00:00
|
|
|
"scopeguard",
|
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "log"
|
2024-03-27 15:43:37 +00:00
|
|
|
version = "0.4.21"
|
2020-06-24 17:57:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 15:43:37 +00:00
|
|
|
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
|
2021-08-30 18:36:07 +00:00
|
|
|
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 22:30:04 +00:00
|
|
|
[[package]]
|
|
|
|
name = "lru"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.12.3"
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 22:30:04 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 22:30:04 +00:00
|
|
|
dependencies = [
|
2023-12-06 00:09:34 +00:00
|
|
|
"hashbrown 0.14.3",
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 22:30:04 +00:00
|
|
|
]
|
|
|
|
|
2021-10-08 14:40:20 +00:00
|
|
|
[[package]]
|
|
|
|
name = "lscolors"
|
2024-01-25 04:57:15 +00:00
|
|
|
version = "0.17.0"
|
2022-08-10 19:56:15 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-25 04:57:15 +00:00
|
|
|
checksum = "53304fff6ab1e597661eee37e42ea8c47a146fca280af902bb76bff8a896e523"
|
2021-10-08 14:40:20 +00:00
|
|
|
dependencies = [
|
2023-07-24 11:16:18 +00:00
|
|
|
"nu-ansi-term",
|
2019-08-27 21:45:18 +00:00
|
|
|
]
|
|
|
|
|
2023-11-02 15:18:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "lsp-server"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.7.6"
|
2023-12-06 23:19:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095"
|
2023-11-02 15:18:57 +00:00
|
|
|
dependencies = [
|
|
|
|
"crossbeam-channel",
|
|
|
|
"log",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lsp-types"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.95.1"
|
2023-11-02 15:18:57 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "8e34d33a8e9b006cd3fc4fe69a921affa097bae4bb65f76271f4644f9a334365"
|
2023-11-02 15:18:57 +00:00
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.3.2",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"serde_repr",
|
|
|
|
"url",
|
|
|
|
]
|
|
|
|
|
2021-05-18 19:33:10 +00:00
|
|
|
[[package]]
|
|
|
|
name = "lz4"
|
2022-10-03 16:40:16 +00:00
|
|
|
version = "1.24.0"
|
2021-05-18 19:33:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 16:40:16 +00:00
|
|
|
checksum = "7e9e2dd86df36ce760a60f6ff6ad526f7ba1f14ba0356f8254fb6905e6494df1"
|
2021-05-18 19:33:10 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"lz4-sys",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lz4-sys"
|
2022-09-03 12:32:12 +00:00
|
|
|
version = "1.9.4"
|
2021-05-18 19:33:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-09-03 12:32:12 +00:00
|
|
|
checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900"
|
2021-05-18 19:33:10 +00:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "mac"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
|
|
|
|
|
2022-09-01 06:09:52 +00:00
|
|
|
[[package]]
|
|
|
|
name = "mach2"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.4.2"
|
2022-09-01 06:09:52 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
|
2022-09-01 06:09:52 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2019-06-07 16:30:50 +00:00
|
|
|
[[package]]
|
|
|
|
name = "malloc_buf"
|
|
|
|
version = "0.0.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 02:21:00 +00:00
|
|
|
checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
|
2019-06-07 16:30:50 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"libc",
|
2019-06-07 16:30:50 +00:00
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "markup5ever"
|
2022-07-26 02:09:32 +00:00
|
|
|
version = "0.11.0"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 02:09:32 +00:00
|
|
|
checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"log",
|
2022-07-26 02:09:32 +00:00
|
|
|
"phf 0.10.1",
|
|
|
|
"phf_codegen 0.10.0",
|
2020-11-03 21:46:42 +00:00
|
|
|
"string_cache",
|
|
|
|
"string_cache_codegen",
|
|
|
|
"tendril",
|
|
|
|
]
|
|
|
|
|
2021-07-25 19:08:08 +00:00
|
|
|
[[package]]
|
|
|
|
name = "md-5"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.10.6"
|
2021-12-10 23:14:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
|
2021-12-10 23:14:28 +00:00
|
|
|
dependencies = [
|
2023-10-07 11:58:26 +00:00
|
|
|
"cfg-if",
|
2022-10-03 16:40:16 +00:00
|
|
|
"digest",
|
2021-12-10 23:14:28 +00:00
|
|
|
]
|
|
|
|
|
2021-08-30 18:36:07 +00:00
|
|
|
[[package]]
|
2019-05-10 16:59:12 +00:00
|
|
|
name = "memchr"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.7.2"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
|
2021-05-12 01:01:31 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "memmap2"
|
2023-08-29 22:13:34 +00:00
|
|
|
version = "0.7.1"
|
2021-05-12 01:01:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-29 22:13:34 +00:00
|
|
|
checksum = "f49388d20533534cd19360ad3d6a7dadc885944aa802ba3995040c5ec11288c6"
|
2021-05-12 01:01:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
2019-05-10 16:59:12 +00:00
|
|
|
|
2021-09-20 21:37:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "miette"
|
2024-03-13 01:35:40 +00:00
|
|
|
version = "7.2.0"
|
2021-09-22 23:49:39 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-13 01:35:40 +00:00
|
|
|
checksum = "4edc8853320c2a0dab800fbda86253c8938f6ea88510dc92c5f1ed20e794afc1"
|
2021-09-20 21:37:26 +00:00
|
|
|
dependencies = [
|
2024-02-22 18:14:10 +00:00
|
|
|
"backtrace",
|
|
|
|
"backtrace-ext",
|
2024-03-13 01:35:40 +00:00
|
|
|
"cfg-if",
|
2022-10-24 19:42:32 +00:00
|
|
|
"miette-derive",
|
2021-09-20 21:37:26 +00:00
|
|
|
"owo-colors",
|
|
|
|
"supports-color",
|
|
|
|
"supports-hyperlinks",
|
|
|
|
"supports-unicode",
|
2024-02-08 01:26:18 +00:00
|
|
|
"terminal_size",
|
2023-06-07 13:29:54 +00:00
|
|
|
"textwrap",
|
2021-09-20 21:37:26 +00:00
|
|
|
"thiserror",
|
2022-02-21 03:31:50 +00:00
|
|
|
"unicode-width",
|
2021-09-20 21:37:26 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "miette-derive"
|
2024-03-13 01:35:40 +00:00
|
|
|
version = "7.2.0"
|
2021-09-22 23:49:39 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-13 01:35:40 +00:00
|
|
|
checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
|
2021-09-20 21:37:26 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2021-09-20 21:37:26 +00:00
|
|
|
]
|
|
|
|
|
2023-06-14 22:27:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "mimalloc"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.1.39"
|
2023-06-14 22:27:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "fa01922b5ea280a911e323e4d2fd24b7fe5cc4042e0d2cda3c40775cdc4bdc9c"
|
2023-06-14 22:27:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"libmimalloc-sys",
|
|
|
|
]
|
|
|
|
|
2022-01-04 02:01:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "mime"
|
2023-04-14 20:14:57 +00:00
|
|
|
version = "0.3.17"
|
2022-01-04 02:01:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 20:14:57 +00:00
|
|
|
checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
|
2020-09-08 22:35:45 +00:00
|
|
|
|
2022-12-27 18:46:23 +00:00
|
|
|
[[package]]
|
|
|
|
name = "mime_guess"
|
|
|
|
version = "2.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
|
|
|
|
dependencies = [
|
|
|
|
"mime",
|
|
|
|
"unicase",
|
|
|
|
]
|
|
|
|
|
2022-04-04 20:45:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "minimal-lexical"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
|
|
|
|
2020-01-01 06:45:27 +00:00
|
|
|
[[package]]
|
2022-04-15 11:04:15 +00:00
|
|
|
name = "miniz_oxide"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.7.2"
|
2020-01-01 06:45:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
|
2020-01-01 06:45:27 +00:00
|
|
|
dependencies = [
|
2022-04-15 11:04:15 +00:00
|
|
|
"adler",
|
2020-01-01 06:45:27 +00:00
|
|
|
]
|
|
|
|
|
2022-03-10 20:58:11 +00:00
|
|
|
[[package]]
|
|
|
|
name = "mio"
|
2024-03-05 09:46:11 +00:00
|
|
|
version = "0.8.11"
|
2022-03-10 20:58:11 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-05 09:46:11 +00:00
|
|
|
checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
|
2022-03-10 20:58:11 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"log",
|
2023-08-25 08:54:01 +00:00
|
|
|
"wasi",
|
2023-07-06 15:31:31 +00:00
|
|
|
"windows-sys 0.48.0",
|
2022-04-28 14:26:34 +00:00
|
|
|
]
|
|
|
|
|
2023-03-02 19:05:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "mockito"
|
2024-03-06 22:43:08 +00:00
|
|
|
version = "1.4.0"
|
2023-03-02 19:05:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-06 22:43:08 +00:00
|
|
|
checksum = "d2f6e023aa5bdf392aa06c78e4a4e6d498baab5138d0c993503350ebbc37bf1e"
|
2023-03-02 19:05:18 +00:00
|
|
|
dependencies = [
|
|
|
|
"assert-json-diff",
|
2024-03-06 22:43:08 +00:00
|
|
|
"futures-core",
|
2023-03-02 19:05:18 +00:00
|
|
|
"hyper",
|
|
|
|
"log",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand",
|
2023-03-02 19:05:18 +00:00
|
|
|
"regex",
|
|
|
|
"serde_json",
|
|
|
|
"serde_urlencoded",
|
|
|
|
"similar",
|
|
|
|
"tokio",
|
|
|
|
]
|
|
|
|
|
2021-05-12 01:01:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "multiversion"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.7.4"
|
2021-05-12 01:01:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c4851161a11d3ad0bf9402d90ffc3967bf231768bfd7aeb61755ad06dbf1a142"
|
2021-05-12 01:01:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"multiversion-macros",
|
2023-05-08 15:42:53 +00:00
|
|
|
"target-features",
|
2021-05-12 01:01:31 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "multiversion-macros"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.7.4"
|
2021-05-12 01:01:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "79a74ddee9e0c27d2578323c13905793e91622148f138ba29738f9dddb835e90"
|
2021-05-12 01:01:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2023-04-06 20:39:54 +00:00
|
|
|
"syn 1.0.109",
|
2023-05-08 15:42:53 +00:00
|
|
|
"target-features",
|
2021-05-12 01:01:31 +00:00
|
|
|
]
|
|
|
|
|
2020-03-20 07:53:49 +00:00
|
|
|
[[package]]
|
|
|
|
name = "native-tls"
|
2023-03-05 22:48:13 +00:00
|
|
|
version = "0.2.11"
|
2020-03-20 07:53:49 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-05 22:48:13 +00:00
|
|
|
checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e"
|
2020-03-20 07:53:49 +00:00
|
|
|
dependencies = [
|
2021-08-28 03:34:11 +00:00
|
|
|
"lazy_static",
|
2020-03-20 07:53:49 +00:00
|
|
|
"libc",
|
2021-07-09 19:28:07 +00:00
|
|
|
"log",
|
2020-03-20 07:53:49 +00:00
|
|
|
"openssl",
|
|
|
|
"openssl-probe",
|
|
|
|
"openssl-sys",
|
|
|
|
"schannel",
|
|
|
|
"security-framework",
|
|
|
|
"security-framework-sys",
|
|
|
|
"tempfile",
|
|
|
|
]
|
|
|
|
|
2019-07-04 22:17:18 +00:00
|
|
|
[[package]]
|
2020-11-03 21:46:42 +00:00
|
|
|
name = "new_debug_unreachable"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.6"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
|
2020-11-03 21:46:42 +00:00
|
|
|
|
2024-03-25 21:51:50 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nix"
|
|
|
|
version = "0.28.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
|
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2024-03-25 21:51:50 +00:00
|
|
|
"cfg-if",
|
|
|
|
"cfg_aliases",
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2022-04-04 20:45:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nom"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "7.1.3"
|
2022-04-04 20:45:01 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
|
2022-04-04 20:45:01 +00:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
"minimal-lexical",
|
|
|
|
]
|
|
|
|
|
2022-04-28 14:26:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "notify"
|
2023-08-31 22:07:41 +00:00
|
|
|
version = "6.1.1"
|
2022-04-28 14:26:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-31 22:07:41 +00:00
|
|
|
checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
|
2022-04-28 14:26:34 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2023-07-05 12:14:55 +00:00
|
|
|
"crossbeam-channel",
|
2022-04-28 14:26:34 +00:00
|
|
|
"filetime",
|
|
|
|
"fsevent-sys",
|
|
|
|
"inotify",
|
2023-07-05 12:14:55 +00:00
|
|
|
"kqueue",
|
2022-04-28 14:26:34 +00:00
|
|
|
"libc",
|
2023-08-31 22:07:41 +00:00
|
|
|
"log",
|
2023-07-05 12:14:55 +00:00
|
|
|
"mio",
|
|
|
|
"walkdir",
|
2023-08-31 22:07:41 +00:00
|
|
|
"windows-sys 0.48.0",
|
2023-07-05 12:14:55 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "notify-debouncer-full"
|
2023-08-31 22:07:41 +00:00
|
|
|
version = "0.3.1"
|
2023-07-05 12:14:55 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-31 22:07:41 +00:00
|
|
|
checksum = "49f5dab59c348b9b50cf7f261960a20e389feb2713636399cd9082cd4b536154"
|
2023-07-05 12:14:55 +00:00
|
|
|
dependencies = [
|
|
|
|
"file-id",
|
2023-08-31 22:07:41 +00:00
|
|
|
"log",
|
2023-07-05 12:14:55 +00:00
|
|
|
"notify",
|
2023-08-29 22:13:34 +00:00
|
|
|
"parking_lot",
|
2022-04-28 14:26:34 +00:00
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
2023-01-13 15:27:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "now"
|
|
|
|
version = "0.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6d89e9874397a1f0a52fc1f197a8effd9735223cb2390e9dcc83ac6cd02923d0"
|
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
]
|
|
|
|
|
2022-10-03 16:40:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ntapi"
|
2023-05-17 23:32:28 +00:00
|
|
|
version = "0.4.1"
|
2022-10-03 16:40:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-17 23:32:28 +00:00
|
|
|
checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
|
2022-10-03 16:40:16 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"winapi",
|
2022-10-03 16:40:16 +00:00
|
|
|
]
|
|
|
|
|
2019-05-16 23:39:58 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2022-02-02 20:59:01 +00:00
|
|
|
dependencies = [
|
|
|
|
"assert_cmd",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"crossterm",
|
2022-02-02 20:59:01 +00:00
|
|
|
"ctrlc",
|
Use XDG_CONFIG_HOME before default config directory (#12118)
<!--
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!
-->
Closes #12103
# 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.
-->
As described in #12103, this PR makes Nushell use `XDG_CONFIG_HOME` as
the config directory if it exists. Otherwise, it uses the old behavior,
which was to use `dirs_next::config_dir()`.
Edit: We discussed choosing between `XDG_CONFIG_HOME` and the default
config directory in Discord and decided against it, at least for now.
<s>@kubouch also suggested letting users choose between
`XDG_CONFIG_HOME` and the default config directory if config files
aren't found on startup and `XDG_CONFIG_HOME` is set to a value
different from the default config directory</s>
On Windows and MacOS, if the `XDG_CONFIG_HOME` variable is set but
`XDG_CONFIG_HOME` is either empty or doesn't exist *and* the old config
directory is non-empty, Nushell will issue a warning on startup saying
that it won't move files from the old config directory to the new one.
To do this, I had to add a `nu_path::config_dir_old()` function. I
assume that at some point, we will remove the warning message and the
function can be removed too. Alternatively, instead of having that
function there, `main.rs` could directly call `dirs_next::config_dir()`.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
When `$env.XDG_CONFIG_HOME` is set to an absolute path, Nushell will use
`$"($env.XDG_CONFIG_HOME)/nushell"` as its config directory (previously,
this only worked on Linux).
To use `App Data\Roaming` (Windows) or `Library/Application Support`
(MacOS) instead (the old behavior), one can either leave
`XDG_CONFIG_HOME` unset or set it to an empty string.
If `XDG_CONFIG_HOME` is set, but to a non-absolute/invalid path, Nushell
will report an error on startup and use the default config directory
instead:
![image](https://github.com/nushell/nushell/assets/45539777/a434fe04-b7c8-4e95-b50c-80628008ad08)
On Windows and MacOS, if the `XDG_CONFIG_HOME` variable is set but
`XDG_CONFIG_HOME` is either empty or doesn't exist *and* the old config
directory is non-empty, Nushell will issue a warning on startup saying
that it won't move files from the old config directory to the new one.
![image](https://github.com/nushell/nushell/assets/45539777/1686cc17-4083-4c12-aecf-1d832460ca57)
# 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 std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
The existing config path tests have been modified to use
`XDG_CONFIG_HOME` to change the config directory on all OSes, not just
Linux.
# 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.
-->
The documentation will have to be updated to note that Nushell uses
`XDG_CONFIG_HOME` now. As @fdncred pointed out, it's possible for people
to set `XDG_CONFIG_HOME` to, say, `~/.config/nushell` rather than
`~/.config`, so the documentation could warn about that mistake.
2024-03-11 11:15:46 +00:00
|
|
|
"dirs-next",
|
2024-03-01 18:09:21 +00:00
|
|
|
"divan",
|
2022-02-02 20:59:01 +00:00
|
|
|
"log",
|
2022-10-24 19:42:32 +00:00
|
|
|
"miette",
|
2023-06-14 22:27:12 +00:00
|
|
|
"mimalloc",
|
2024-03-27 15:43:37 +00:00
|
|
|
"nix",
|
2022-02-02 20:59:01 +00:00
|
|
|
"nu-cli",
|
2023-06-23 19:23:08 +00:00
|
|
|
"nu-cmd-base",
|
2023-05-19 17:56:08 +00:00
|
|
|
"nu-cmd-dataframe",
|
2023-06-14 21:12:55 +00:00
|
|
|
"nu-cmd-extra",
|
2023-02-24 15:54:42 +00:00
|
|
|
"nu-cmd-lang",
|
2024-04-21 12:36:26 +00:00
|
|
|
"nu-cmd-plugin",
|
2022-02-02 20:59:01 +00:00
|
|
|
"nu-command",
|
|
|
|
"nu-engine",
|
2023-06-13 23:18:36 +00:00
|
|
|
"nu-explore",
|
2023-11-02 15:18:57 +00:00
|
|
|
"nu-lsp",
|
2022-02-02 20:59:01 +00:00
|
|
|
"nu-parser",
|
|
|
|
"nu-path",
|
2024-04-27 17:08:12 +00:00
|
|
|
"nu-plugin-core",
|
|
|
|
"nu-plugin-engine",
|
|
|
|
"nu-plugin-protocol",
|
2022-02-02 20:59:01 +00:00
|
|
|
"nu-protocol",
|
2023-04-07 20:12:27 +00:00
|
|
|
"nu-std",
|
2024-03-27 15:43:37 +00:00
|
|
|
"nu-system",
|
2022-02-02 20:59:01 +00:00
|
|
|
"nu-test-support",
|
2022-05-17 18:28:18 +00:00
|
|
|
"nu-utils",
|
2022-04-28 00:25:09 +00:00
|
|
|
"openssl",
|
2022-02-02 20:59:01 +00:00
|
|
|
"pretty_assertions",
|
|
|
|
"reedline",
|
2023-08-08 17:11:05 +00:00
|
|
|
"rstest",
|
2023-04-05 19:34:47 +00:00
|
|
|
"serde_json",
|
2022-02-02 20:59:01 +00:00
|
|
|
"serial_test",
|
2022-08-09 16:44:37 +00:00
|
|
|
"simplelog",
|
2022-02-02 20:59:01 +00:00
|
|
|
"tempfile",
|
2023-08-25 08:54:01 +00:00
|
|
|
"time",
|
2023-04-26 12:14:55 +00:00
|
|
|
"winresource",
|
2020-03-04 18:58:20 +00:00
|
|
|
]
|
|
|
|
|
2021-02-22 18:33:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-ansi-term"
|
2024-01-25 04:57:15 +00:00
|
|
|
version = "0.50.0"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-25 04:57:15 +00:00
|
|
|
checksum = "dd2800e1520bdc966782168a627aa5d1ad92e33b984bf7c7615d31280c83ff14"
|
2023-07-06 15:31:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
2020-03-04 18:58:20 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cli"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
2022-06-14 20:53:33 +00:00
|
|
|
"chrono",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"crossterm",
|
2023-12-21 16:10:33 +00:00
|
|
|
"fancy-regex",
|
2022-04-24 21:43:18 +00:00
|
|
|
"fuzzy-matcher",
|
2022-01-20 18:02:53 +00:00
|
|
|
"is_executable",
|
2022-01-01 21:42:50 +00:00
|
|
|
"log",
|
2024-02-08 20:29:28 +00:00
|
|
|
"lscolors",
|
2022-10-24 19:42:32 +00:00
|
|
|
"miette",
|
2023-07-24 11:16:18 +00:00
|
|
|
"nu-ansi-term",
|
2023-06-23 19:23:08 +00:00
|
|
|
"nu-cmd-base",
|
2023-06-14 21:12:55 +00:00
|
|
|
"nu-cmd-lang",
|
2021-12-16 12:17:29 +00:00
|
|
|
"nu-color-config",
|
2022-04-20 04:54:00 +00:00
|
|
|
"nu-command",
|
2021-08-30 18:36:07 +00:00
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
2021-10-04 19:21:31 +00:00
|
|
|
"nu-path",
|
2024-04-27 17:08:12 +00:00
|
|
|
"nu-plugin-engine",
|
2021-09-02 01:29:43 +00:00
|
|
|
"nu-protocol",
|
2022-04-20 04:54:00 +00:00
|
|
|
"nu-test-support",
|
2022-03-16 22:21:06 +00:00
|
|
|
"nu-utils",
|
2022-12-17 18:30:04 +00:00
|
|
|
"once_cell",
|
2023-10-02 17:44:51 +00:00
|
|
|
"pathdiff",
|
2022-09-13 12:36:53 +00:00
|
|
|
"percent-encoding",
|
2021-08-30 18:36:07 +00:00
|
|
|
"reedline",
|
2023-08-08 17:11:05 +00:00
|
|
|
"rstest",
|
2024-01-24 15:27:06 +00:00
|
|
|
"sysinfo",
|
2023-04-09 22:56:47 +00:00
|
|
|
"unicode-segmentation",
|
2023-09-29 14:36:03 +00:00
|
|
|
"uuid",
|
2024-01-22 15:28:47 +00:00
|
|
|
"which",
|
2021-08-30 18:36:07 +00:00
|
|
|
]
|
|
|
|
|
2023-06-22 21:45:54 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cmd-base"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2023-06-22 21:45:54 +00:00
|
|
|
dependencies = [
|
2023-12-06 00:09:34 +00:00
|
|
|
"indexmap",
|
2023-08-29 21:46:50 +00:00
|
|
|
"miette",
|
2023-06-23 19:23:08 +00:00
|
|
|
"nu-engine",
|
2023-08-29 21:46:50 +00:00
|
|
|
"nu-parser",
|
2023-06-23 19:23:08 +00:00
|
|
|
"nu-path",
|
2023-06-22 21:45:54 +00:00
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2023-05-19 17:56:08 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cmd-dataframe"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2023-05-19 17:56:08 +00:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
2024-04-13 18:00:04 +00:00
|
|
|
"chrono-tz 0.8.6",
|
2023-12-21 16:10:33 +00:00
|
|
|
"fancy-regex",
|
2023-12-06 00:09:34 +00:00
|
|
|
"indexmap",
|
2023-05-19 17:56:08 +00:00
|
|
|
"nu-cmd-lang",
|
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
|
|
|
"nu-protocol",
|
Update tests Playground (#12134)
<!--
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.
-->
It looks like `Playground` and `Director` in nu-tests-support haven't
gotten much love recently, so this PR is for updating them to work with
newer Nushell versions.
- `Director` adds a `--skip-plugins` argument before running `nu`, but
that doesn't exist anymore, so I removed it.
- `Director` also adds a `--perf` argument, which also doesn't exist
anymore. I added `--log-level info` instead to get the performance
output.
- It doesn't seem like anyone was using `playground::matchers`, and it
used the [hamcrest2](https://github.com/Valloric/hamcrest2-rust) crate,
which appears to be unmaintained, so I got rid of that (and the
`hamcrest2` dependency).
- Inside `tests/fixtures/playground/config` were two files in the old
config format: `default.toml` and `startup.toml`. I removed those too.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
None, these changes only mess with tests.
# 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 std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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-03-09 04:31:21 +00:00
|
|
|
"num",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars",
|
|
|
|
"polars-arrow",
|
|
|
|
"polars-io",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-plan",
|
|
|
|
"polars-utils",
|
2023-05-19 17:56:08 +00:00
|
|
|
"serde",
|
2024-04-13 18:00:04 +00:00
|
|
|
"sqlparser 0.45.0",
|
2023-05-19 17:56:08 +00:00
|
|
|
]
|
|
|
|
|
2023-06-01 17:46:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cmd-extra"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2023-06-01 17:46:16 +00:00
|
|
|
dependencies = [
|
2023-12-21 16:10:33 +00:00
|
|
|
"fancy-regex",
|
2024-03-21 19:17:30 +00:00
|
|
|
"heck 0.5.0",
|
2024-04-10 00:31:43 +00:00
|
|
|
"itertools 0.12.1",
|
2023-07-24 11:16:18 +00:00
|
|
|
"nu-ansi-term",
|
2023-06-23 19:23:08 +00:00
|
|
|
"nu-cmd-base",
|
2023-06-01 17:46:16 +00:00
|
|
|
"nu-cmd-lang",
|
2023-07-06 15:31:31 +00:00
|
|
|
"nu-command",
|
2023-06-01 17:46:16 +00:00
|
|
|
"nu-engine",
|
2023-07-06 15:31:31 +00:00
|
|
|
"nu-json",
|
2023-06-01 17:46:16 +00:00
|
|
|
"nu-parser",
|
2023-07-06 15:31:31 +00:00
|
|
|
"nu-pretty-hex",
|
2023-06-01 17:46:16 +00:00
|
|
|
"nu-protocol",
|
|
|
|
"nu-test-support",
|
2023-06-23 19:23:08 +00:00
|
|
|
"nu-utils",
|
2023-06-01 17:46:16 +00:00
|
|
|
"num-traits",
|
2023-07-06 15:31:31 +00:00
|
|
|
"rust-embed",
|
|
|
|
"serde",
|
|
|
|
"serde_urlencoded",
|
2024-01-18 18:58:35 +00:00
|
|
|
"v_htmlescape",
|
2023-06-01 17:46:16 +00:00
|
|
|
]
|
|
|
|
|
2023-02-24 15:54:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cmd-lang"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2023-02-24 15:54:42 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"itertools 0.12.1",
|
2023-02-24 15:54:42 +00:00
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
|
|
|
"nu-protocol",
|
|
|
|
"nu-utils",
|
|
|
|
"shadow-rs",
|
|
|
|
]
|
|
|
|
|
2024-04-21 12:36:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-cmd-plugin"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2024-04-21 12:36:26 +00:00
|
|
|
dependencies = [
|
|
|
|
"itertools 0.12.1",
|
|
|
|
"nu-engine",
|
|
|
|
"nu-path",
|
2024-04-27 17:08:12 +00:00
|
|
|
"nu-plugin-engine",
|
2024-04-21 12:36:26 +00:00
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2021-12-16 12:17:29 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-color-config"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-12-16 12:17:29 +00:00
|
|
|
dependencies = [
|
2023-07-24 11:16:18 +00:00
|
|
|
"nu-ansi-term",
|
color_config now accepts closures as color values (#7141)
# Description
Closes #6909. You can now add closures to your `color_config` themes.
Whenever a value would be printed with `table`, the closure is run with
the value piped-in. The closure must return either a {fg,bg,attr} record
or a color name (`'light_red'` etc.). This returned style is used to
colour the value.
This is entirely backwards-compatible with existing config.nu files.
Example code excerpt:
```
let my_theme = {
header: green_bold
bool: { if $in { 'light_cyan' } else { 'light_red' } }
int: purple_bold
filesize: { |e| if $e == 0b { 'gray' } else if $e < 1mb { 'purple_bold' } else { 'cyan_bold' } }
duration: purple_bold
date: { (date now) - $in | if $in > 1wk { 'cyan_bold' } else if $in > 1day { 'green_bold' } else { 'yellow_bold' } }
range: yellow_bold
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }
nothing: white
```
Example output with this in effect:
![2022-11-16 12 47 23 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952558-482de05d-69c7-4bf2-91fc-d0964bf71264.png)
![2022-11-16 12 39 41 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952580-2384bb86-b680-40fe-8192-71bae396c738.png)
![2022-11-15 09 21 54 PM - run_external
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952601-343fc15d-e4a8-4a92-ad89-9a7d17d42748.png)
Slightly important notes:
* Some color_config names, namely "separator", "empty" and "hints", pipe
in `null` instead of a value.
* Currently, doing anything non-trivial inside a closure has an
understandably big perf hit. I currently do not actually recommend
something like `string: { if $in =~ '^#\w{6}$' { $in } else { 'white' }
}` for serious work, mainly because of the abundance of string-type data
in the world. Nevertheless, lesser-used types like "date" and "duration"
work well with this.
* I had to do some reorganisation in order to make it possible to call
`eval_block()` that late in table rendering. I invented a new struct
called "StyleComputer" which holds the engine_state and stack of the
initial `table` command (implicit or explicit).
* StyleComputer has a `compute()` method which takes a color_config name
and a nu value, and always returns the correct Style, so you don't have
to worry about A) the color_config value was set at all, B) whether it
was set to a closure or not, or C) which default style to use in those
cases.
* Currently, errors encountered during execution of the closures are
thrown in the garbage. Any other ideas are welcome. (Nonetheless, errors
result in a huge perf hit when they are encountered. I think what should
be done is to assume something terrible happened to the user's config
and invalidate the StyleComputer for that `table` run, thus causing
subsequent output to just be Style::default().)
* More thorough tests are forthcoming - ran into some difficulty using
`nu!` to take an alternative config, and for some reason `let-env config
=` statements don't seem to work inside `nu!` pipelines(???)
* The default config.nu has not been updated to make use of this yet. Do
tell if you think I should incorporate that into this.
# User-Facing Changes
See above.
# 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 --features=extra -- -D warnings -D
clippy::unwrap_used -A clippy::needless_collect` to check that you're
using the standard code style
- `cargo test --workspace --features=extra` to check that all tests pass
# 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.
2022-12-17 13:07:56 +00:00
|
|
|
"nu-engine",
|
2022-12-18 14:43:15 +00:00
|
|
|
"nu-json",
|
2021-12-16 12:17:29 +00:00
|
|
|
"nu-protocol",
|
color_config now accepts closures as color values (#7141)
# Description
Closes #6909. You can now add closures to your `color_config` themes.
Whenever a value would be printed with `table`, the closure is run with
the value piped-in. The closure must return either a {fg,bg,attr} record
or a color name (`'light_red'` etc.). This returned style is used to
colour the value.
This is entirely backwards-compatible with existing config.nu files.
Example code excerpt:
```
let my_theme = {
header: green_bold
bool: { if $in { 'light_cyan' } else { 'light_red' } }
int: purple_bold
filesize: { |e| if $e == 0b { 'gray' } else if $e < 1mb { 'purple_bold' } else { 'cyan_bold' } }
duration: purple_bold
date: { (date now) - $in | if $in > 1wk { 'cyan_bold' } else if $in > 1day { 'green_bold' } else { 'yellow_bold' } }
range: yellow_bold
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }
nothing: white
```
Example output with this in effect:
![2022-11-16 12 47 23 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952558-482de05d-69c7-4bf2-91fc-d0964bf71264.png)
![2022-11-16 12 39 41 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952580-2384bb86-b680-40fe-8192-71bae396c738.png)
![2022-11-15 09 21 54 PM - run_external
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952601-343fc15d-e4a8-4a92-ad89-9a7d17d42748.png)
Slightly important notes:
* Some color_config names, namely "separator", "empty" and "hints", pipe
in `null` instead of a value.
* Currently, doing anything non-trivial inside a closure has an
understandably big perf hit. I currently do not actually recommend
something like `string: { if $in =~ '^#\w{6}$' { $in } else { 'white' }
}` for serious work, mainly because of the abundance of string-type data
in the world. Nevertheless, lesser-used types like "date" and "duration"
work well with this.
* I had to do some reorganisation in order to make it possible to call
`eval_block()` that late in table rendering. I invented a new struct
called "StyleComputer" which holds the engine_state and stack of the
initial `table` command (implicit or explicit).
* StyleComputer has a `compute()` method which takes a color_config name
and a nu value, and always returns the correct Style, so you don't have
to worry about A) the color_config value was set at all, B) whether it
was set to a closure or not, or C) which default style to use in those
cases.
* Currently, errors encountered during execution of the closures are
thrown in the garbage. Any other ideas are welcome. (Nonetheless, errors
result in a huge perf hit when they are encountered. I think what should
be done is to assume something terrible happened to the user's config
and invalidate the StyleComputer for that `table` run, thus causing
subsequent output to just be Style::default().)
* More thorough tests are forthcoming - ran into some difficulty using
`nu!` to take an alternative config, and for some reason `let-env config
=` statements don't seem to work inside `nu!` pipelines(???)
* The default config.nu has not been updated to make use of this yet. Do
tell if you think I should incorporate that into this.
# User-Facing Changes
See above.
# 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 --features=extra -- -D warnings -D
clippy::unwrap_used -A clippy::needless_collect` to check that you're
using the standard code style
- `cargo test --workspace --features=extra` to check that all tests pass
# 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.
2022-12-17 13:07:56 +00:00
|
|
|
"nu-test-support",
|
2021-12-16 12:17:29 +00:00
|
|
|
"serde",
|
2019-11-21 14:33:14 +00:00
|
|
|
]
|
2021-01-10 02:50:49 +00:00
|
|
|
|
2021-01-11 18:50:53 +00:00
|
|
|
[[package]]
|
2021-01-12 04:59:53 +00:00
|
|
|
name = "nu-command"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-09-02 22:58:15 +00:00
|
|
|
dependencies = [
|
2022-05-06 12:58:32 +00:00
|
|
|
"alphanumeric-sort",
|
2024-03-21 19:17:36 +00:00
|
|
|
"base64 0.22.0",
|
2023-06-28 17:57:44 +00:00
|
|
|
"bracoxide",
|
2024-04-26 11:23:16 +00:00
|
|
|
"brotli 5.0.0",
|
2022-07-03 18:31:50 +00:00
|
|
|
"byteorder",
|
2021-10-12 20:22:12 +00:00
|
|
|
"bytesize",
|
2021-11-19 19:23:35 +00:00
|
|
|
"calamine",
|
2023-08-25 00:21:17 +00:00
|
|
|
"chardetng",
|
2021-10-05 02:27:39 +00:00
|
|
|
"chrono",
|
2021-11-02 03:08:05 +00:00
|
|
|
"chrono-humanize",
|
2024-04-13 18:00:04 +00:00
|
|
|
"chrono-tz 0.8.6",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"crossterm",
|
2021-11-09 20:17:37 +00:00
|
|
|
"csv",
|
2021-10-15 18:51:25 +00:00
|
|
|
"dialoguer",
|
2022-10-03 16:40:16 +00:00
|
|
|
"digest",
|
2021-03-14 02:13:31 +00:00
|
|
|
"dirs-next",
|
2021-01-12 04:59:53 +00:00
|
|
|
"dtparse",
|
|
|
|
"encoding_rs",
|
2023-12-21 16:10:33 +00:00
|
|
|
"fancy-regex",
|
2021-01-12 04:59:53 +00:00
|
|
|
"filesize",
|
2022-04-07 11:44:05 +00:00
|
|
|
"filetime",
|
2022-02-09 14:56:27 +00:00
|
|
|
"fs_extra",
|
2023-11-15 23:43:37 +00:00
|
|
|
"human-date-parser",
|
2023-12-06 00:09:34 +00:00
|
|
|
"indexmap",
|
2023-01-11 01:57:48 +00:00
|
|
|
"indicatif",
|
2024-04-10 00:31:43 +00:00
|
|
|
"itertools 0.12.1",
|
2021-07-09 19:28:07 +00:00
|
|
|
"log",
|
2021-10-08 14:40:20 +00:00
|
|
|
"lscolors",
|
2021-07-25 19:08:08 +00:00
|
|
|
"md-5",
|
2021-09-01 02:29:09 +00:00
|
|
|
"mime",
|
2022-12-27 18:46:23 +00:00
|
|
|
"mime_guess",
|
2023-03-02 19:05:18 +00:00
|
|
|
"mockito",
|
2023-03-05 22:48:13 +00:00
|
|
|
"native-tls",
|
2024-03-27 15:43:37 +00:00
|
|
|
"nix",
|
2023-07-05 12:14:55 +00:00
|
|
|
"notify-debouncer-full",
|
2023-07-24 11:16:18 +00:00
|
|
|
"nu-ansi-term",
|
2023-06-22 21:45:54 +00:00
|
|
|
"nu-cmd-base",
|
2023-02-24 15:54:42 +00:00
|
|
|
"nu-cmd-lang",
|
2021-12-16 12:17:29 +00:00
|
|
|
"nu-color-config",
|
2021-09-02 22:58:15 +00:00
|
|
|
"nu-engine",
|
2022-03-13 18:30:27 +00:00
|
|
|
"nu-glob",
|
2021-10-01 05:11:49 +00:00
|
|
|
"nu-json",
|
2021-10-09 13:10:10 +00:00
|
|
|
"nu-parser",
|
2021-10-02 20:16:37 +00:00
|
|
|
"nu-path",
|
2021-12-24 07:22:11 +00:00
|
|
|
"nu-pretty-hex",
|
2021-09-02 22:58:15 +00:00
|
|
|
"nu-protocol",
|
2022-01-14 06:20:53 +00:00
|
|
|
"nu-system",
|
2021-09-10 02:27:12 +00:00
|
|
|
"nu-table",
|
2021-10-07 15:32:39 +00:00
|
|
|
"nu-term-grid",
|
2022-02-02 20:59:01 +00:00
|
|
|
"nu-test-support",
|
2022-03-16 22:21:06 +00:00
|
|
|
"nu-utils",
|
2022-08-13 02:13:50 +00:00
|
|
|
"num-format",
|
2022-08-02 20:52:04 +00:00
|
|
|
"num-traits",
|
create `nuon` crate from `from nuon` and `to nuon` (#12553)
# Description
playing with the NUON format in Rust code in some plugins, we agreed
with the team it was a great time to create a standalone NUON format to
allow Rust devs to use this Nushell file format.
> **Note**
> this PR almost copy-pastes the code from
`nu_commands/src/formats/from/nuon.rs` and
`nu_commands/src/formats/to/nuon.rs` to `nuon/src/from.rs` and
`nuon/src/to.rs`, with minor tweaks to make then standalone functions,
e.g. remove the rest of the command implementations
### TODO
- [x] add tests
- [x] add documentation
# User-Facing Changes
devs will have access to a new crate, `nuon`, and two functions,
`from_nuon` and `to_nuon`
```rust
from_nuon(
input: &str,
span: Option<Span>,
) -> Result<Value, ShellError>
```
```rust
to_nuon(
input: &Value,
raw: bool,
tabs: Option<usize>,
indent: Option<usize>,
span: Option<Span>,
) -> Result<String, ShellError>
```
# Tests + Formatting
i've basically taken all the tests from
`crates/nu-command/tests/format_conversions/nuon.rs` and converted them
to use `from_nuon` and `to_nuon` instead of Nushell commands
- i've created a `nuon_end_to_end` to run both conversions with an
optional middle value to check that all is fine
> **Note**
> the `nuon::tests::read_code_should_fail_rather_than_panic` test does
give different results locally and in the CI...
> i've left it ignored with comments to help future us :)
# After Submitting
mention that in the release notes for sure!!
2024-04-19 11:54:16 +00:00
|
|
|
"nuon",
|
2022-11-19 11:09:39 +00:00
|
|
|
"once_cell",
|
2023-01-03 18:47:37 +00:00
|
|
|
"open",
|
2023-04-28 12:55:48 +00:00
|
|
|
"os_pipe",
|
2022-01-16 13:55:56 +00:00
|
|
|
"pathdiff",
|
2023-01-05 18:24:38 +00:00
|
|
|
"percent-encoding",
|
2024-04-26 11:23:16 +00:00
|
|
|
"pretty_assertions",
|
`string | fill` counts clusters, not graphemes; and doesn't count ANSI escape codes (#8134)
Enhancement of new `fill` command (#7846) to handle content including
ANSI escape codes for formatting or multi-code-point Unicode grapheme
clusters.
In both of these cases, the content is (many) bytes longer than its
visible length, and `fill` was counting the extra bytes so not adding
enough fill characters.
# Description
This script:
```rust
# the teacher emoji `\u{1F9D1}\u{200D}\u{1F3EB}` is 3 code points, but only 1 print position wide.
echo "This output should be 3 print positions wide, with leading and trailing `+`"
$"\u{1F9D1}\u{200D}\u{1F3EB}" | fill -c "+" -w 3 -a "c"
echo "This output should be 3 print positions wide, with leading and trailing `+`"
$"(ansi green)a(ansi reset)" | fill -c "+" -w 3 -a c
echo ""
```
Was producing this output:
```rust
This output should be 3 print positions wide, with leading and trailing `+`
🧑🏫
This output should be 3 print positions wide, with leading and trailing `+`
a
```
After this PR, it produces this output:
```rust
This output should be 3 print positions wide, with leading and trailing `+`
+🧑🏫+
This output should be 3 print positions wide, with leading and trailing `+`
+a+
```
# User-Facing Changes
Users may have to undo fixes they may have introduced to work around the
former behavior. I have one such in my prompt string that I can now
revert.
# Tests + Formatting
Don't forget to add tests that cover your changes.
-- Done
Make sure you've run and fixed any issues with these commands:
- [x] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- [x] `cargo test --workspace` to check that all tests pass
# After Submitting
`fill` command not documented in the book, and it still talks about `str
lpad/rpad`. I'll fix.
Note added dependency on a new library `print-positions`, which is an
iterator that yields a complete print position (cluster + Ansi sequence)
per call. Should this be vendored?
2023-02-20 12:32:20 +00:00
|
|
|
"print-positions",
|
2023-11-20 20:22:35 +00:00
|
|
|
"procfs",
|
2024-01-31 14:06:59 +00:00
|
|
|
"quick-xml",
|
2021-01-12 04:59:53 +00:00
|
|
|
"quickcheck",
|
|
|
|
"quickcheck_macros",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand",
|
2021-10-26 01:30:53 +00:00
|
|
|
"rayon",
|
2022-12-02 16:30:26 +00:00
|
|
|
"regex",
|
2024-04-26 11:23:16 +00:00
|
|
|
"rmp",
|
2021-01-12 04:59:53 +00:00
|
|
|
"roxmltree",
|
2023-08-08 17:11:05 +00:00
|
|
|
"rstest",
|
2022-04-14 03:15:02 +00:00
|
|
|
"rusqlite",
|
2022-09-23 18:09:31 +00:00
|
|
|
"same-file",
|
2021-11-10 01:02:33 +00:00
|
|
|
"serde",
|
2023-04-26 13:15:42 +00:00
|
|
|
"serde_json",
|
2021-11-12 20:46:39 +00:00
|
|
|
"serde_urlencoded",
|
2021-11-10 01:02:33 +00:00
|
|
|
"serde_yaml",
|
2022-10-03 16:40:16 +00:00
|
|
|
"sha2",
|
2024-01-24 15:27:06 +00:00
|
|
|
"sysinfo",
|
2023-08-03 19:52:12 +00:00
|
|
|
"tabled",
|
2024-02-08 01:26:18 +00:00
|
|
|
"terminal_size",
|
2021-11-02 03:08:05 +00:00
|
|
|
"titlecase",
|
2024-04-10 00:31:43 +00:00
|
|
|
"toml 0.8.12",
|
2021-01-12 04:59:53 +00:00
|
|
|
"trash",
|
|
|
|
"umask",
|
|
|
|
"unicode-segmentation",
|
2024-03-26 05:57:55 +00:00
|
|
|
"unicode-width",
|
2023-03-05 22:48:13 +00:00
|
|
|
"ureq",
|
2021-01-12 04:59:53 +00:00
|
|
|
"url",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
"uu_cp",
|
2023-10-30 12:59:48 +00:00
|
|
|
"uu_mkdir",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"uu_mktemp",
|
Initial implementation of umv from uutils (#10822)
<!--
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
Hi,
This closes #10446 , wherein we start implementing `mv` from `uutils`.
There are some stuff to iron out, particularly
* Decide on behavior from ignored tests
* Wait for release/PRs to be approved on `uutils` side, but still can be
tested for now. See [PR
approved](https://github.com/uutils/coreutils/pull/5428), and
[pending](https://github.com/uutils/coreutils/pull/5429).
* `--progress` does not seem to work on `uutils mv` either and have not
checked whether certain `X` size has to be achieved in order for it to
appear, thus something to investigate as well, but thought it wasnt
important enough to not make the PR.
See [issue
comment](https://github.com/nushell/nushell/issues/10446#issuecomment-1764497988),
on the possible strategy to follow, mainly copy what we did with `ucp`.
I still left some comments on purpose particularly on tests, which of
course would be removed before something is decided here. :) @fdncred
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `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))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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-01-18 16:20:57 +00:00
|
|
|
"uu_mv",
|
2024-03-25 21:51:50 +00:00
|
|
|
"uu_uname",
|
implement whoami using uutils (#10488)
<!--
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.
-->
Implements `whoami` using the `whoami` command from uutils as backend.
This is a draft because it depends on
https://github.com/uutils/coreutils/pull/5310 and a new release of
uutils needs to be made (and the paths in `Cargo.toml` should be
updated). At this point, this is more of a proof of concept 😄
Additionally, this implements a (simple and naive) conversion from the
uutils `UResult` to the nushell `ShellError`, which should help with the
integration of other utils, too. I can split that off into a separate PR
if desired.
I put this command in the "platform" category. If it should go somewhere
else, let me know!
The tests will currently fail, because I've used a local path to uutils.
Once the PR on the uutils side is merged, I'll update it to a git path
so that it can be tested and runs on more machines than just mine.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New `whoami` command. This might break some users who expect the system
`whoami` command. However, the result of this new command should be very
close, just with a nicer help message, at least for Linux users. The
default `whoami` on Windows is quite different from this implementation:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/whoami
# 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 std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-10-25 14:53:52 +00:00
|
|
|
"uu_whoami",
|
2024-03-14 21:43:42 +00:00
|
|
|
"uucore",
|
2021-01-12 04:59:53 +00:00
|
|
|
"uuid",
|
2024-01-18 18:58:35 +00:00
|
|
|
"v_htmlescape",
|
2022-04-04 20:45:01 +00:00
|
|
|
"wax",
|
2024-01-22 15:28:47 +00:00
|
|
|
"which",
|
2024-03-08 00:36:28 +00:00
|
|
|
"windows 0.54.0",
|
2023-03-05 22:48:13 +00:00
|
|
|
"winreg",
|
2021-01-11 18:50:53 +00:00
|
|
|
]
|
|
|
|
|
2021-01-10 02:50:49 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-engine"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-01-10 02:50:49 +00:00
|
|
|
dependencies = [
|
2022-03-13 18:30:27 +00:00
|
|
|
"nu-glob",
|
2021-06-19 23:07:26 +00:00
|
|
|
"nu-path",
|
2021-01-10 02:50:49 +00:00
|
|
|
"nu-protocol",
|
2022-05-17 18:28:18 +00:00
|
|
|
"nu-utils",
|
Extract core stuff into own crates
This commit extracts five new crates:
- nu-source, which contains the core source-code handling logic in Nu,
including Text, Span, and also the pretty.rs-based debug logic
- nu-parser, which is the parser and expander logic
- nu-protocol, which is the bulk of the types and basic conveniences
used by plugins
- nu-errors, which contains ShellError, ParseError and error handling
conveniences
- nu-textview, which is the textview plugin extracted into a crate
One of the major consequences of this refactor is that it's no longer
possible to `impl X for Spanned<Y>` outside of the `nu-source` crate, so
a lot of types became more concrete (Value became a concrete type
instead of Spanned<Value>, for example).
This also turned a number of inherent methods in the main nu crate into
plain functions (impl Value {} became a bunch of functions in the
`value` namespace in `crate::data::value`).
2019-11-26 02:30:48 +00:00
|
|
|
]
|
|
|
|
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 15:32:10 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-explore"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 15:32:10 +00:00
|
|
|
dependencies = [
|
2023-07-10 07:24:08 +00:00
|
|
|
"ansi-str",
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-01 22:34:37 +00:00
|
|
|
"anyhow",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"crossterm",
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-01 22:34:37 +00:00
|
|
|
"log",
|
2022-12-18 14:43:15 +00:00
|
|
|
"lscolors",
|
2023-07-24 11:16:18 +00:00
|
|
|
"nu-ansi-term",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 15:32:10 +00:00
|
|
|
"nu-color-config",
|
|
|
|
"nu-engine",
|
2022-12-16 15:47:07 +00:00
|
|
|
"nu-json",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 15:32:10 +00:00
|
|
|
"nu-parser",
|
2024-03-22 00:02:03 +00:00
|
|
|
"nu-pretty-hex",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 15:32:10 +00:00
|
|
|
"nu-protocol",
|
|
|
|
"nu-table",
|
2022-12-18 14:43:15 +00:00
|
|
|
"nu-utils",
|
`explore`: adopt `anyhow`, support `CustomValue`, remove help system (#12692)
This PR:
1. Adds basic support for `CustomValue` to `explore`. Previously `open
foo.db | explore` didn't really work, now we "materialize" the whole
database to a `Value` before loading it
2. Adopts `anyhow` for error handling in `explore`. Previously we were
kind of rolling our own version of `anyhow` by shoving all errors into a
`std::io::Error`; I think this is much nicer. This was necessary because
as part of 1), collecting input is now fallible...
3. Removes a lot of `explore`'s fancy command help system.
- Previously each command (`:help`, `:try`, etc.) had a sophisticated
help system with examples etc... but this was not very visible to users.
You had to know to run `:help :try` or view a list of commands with
`:help :`
- As discussed previously, we eventually want to move to a less modal
approach for `explore`, without the Vim-like commands. And so I don't
think it's worth keeping this command help system around (it's
intertwined with other stuff, and making these changes would have been
harder if keeping it).
4. Rename the `--reverse` flag to `--tail`. The flag scrolls to the end
of the data, which IMO is described better by "tail"
5. Does some renaming+commenting to clear up things I found difficult to
understand when navigating the `explore` code
I initially thought 1) would be just a few lines, and then this PR blew
up into much more extensive changes 😅
## Before
The whole database was being displayed as a single Nuon/JSON line 🤔
![image](https://github.com/nushell/nushell/assets/26268125/6383f43b-fdff-48b4-9604-398438ad1499)
## After
The database gets displayed like a record
![image](https://github.com/nushell/nushell/assets/26268125/2f00ed7b-a3c4-47f4-a08c-98d07efc7bb4)
## Future work
It is sort of annoying that we have to load a whole SQLite database into
memory to make this work; it will be impractical for large databases.
I'd like to explore improvements to `CustomValue` that can make this
work more efficiently.
2024-05-01 22:34:37 +00:00
|
|
|
"once_cell",
|
2023-04-25 23:07:23 +00:00
|
|
|
"ratatui",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 15:32:10 +00:00
|
|
|
"strip-ansi-escapes",
|
2024-02-08 01:26:18 +00:00
|
|
|
"terminal_size",
|
2023-10-07 11:58:26 +00:00
|
|
|
"unicode-width",
|
[MVP][WIP] `less` like pager (#6984)
Run it as `explore`.
#### example
```nu
ls | explore
```
Configuration points in `config.nu` file.
```
# A 'explore' utility config
explore_config: {
highlight: { bg: 'yellow', fg: 'black' }
status_bar: { bg: '#C4C9C6', fg: '#1D1F21' }
command_bar: { fg: '#C4C9C6' }
split_line: '#404040'
cursor: true
# selected_column: 'blue'
# selected_row: { fg: 'yellow', bg: '#C1C2A3' }
# selected_cell: { fg: 'white', bg: '#777777' }
# line_shift: false,
# line_index: false,
# line_head_top: false,
# line_head_bottom: false,
}
```
You can start without a pipeline and type `explore` and it'll give you a
few tips.
![image](https://user-images.githubusercontent.com/343840/205088971-a8c0262f-f222-4641-b13a-027fbd4f5e1a.png)
If you type `:help` you an see the help screen with some information on
what tui keybindings are available.
![image](https://user-images.githubusercontent.com/343840/205089461-c4c54217-7ec4-4fa0-96c0-643d68dc0062.png)
From the `:help` screen you can now hit `i` and that puts you in
`cursor` aka `inspection` mode and you can move the cursor left right up
down and it you put it on an area such as `[table 5 rows]` and hit the
enter key, you'll see something like this, which shows all the `:`
commands. If you hit `esc` it will take you to the previous screen.
![image](https://user-images.githubusercontent.com/343840/205090155-3558a14b-87b7-4072-8dfb-dc8cc2ef4943.png)
If you then type `:try` you'll get this type of window where you can
type in the top portion and see results in the bottom.
![image](https://user-images.githubusercontent.com/343840/205089185-3c065551-0792-43d6-a13c-a52762856209.png)
The `:nu` command is interesting because you can type pipelines like
`:nu ls | sort-by type size` or another pipeline of your choosing such
as `:nu sys` and that will show the table that looks like this, which
we're calling "table mode".
![image](https://user-images.githubusercontent.com/343840/205090809-e686ff0f-6d0b-4347-8ed0-8c59adfbd741.png)
If you hit the `t` key it will now transpose the view to look like this.
![image](https://user-images.githubusercontent.com/343840/205090948-a834d7f2-1713-4dfe-92fe-5432f287df3d.png)
In table mode or transposed table mode you can use the `i` key to
inspect any collapsed field like `{record 8 fields}`, `[table 16 rows]`,
`[list x]`, etc.
One of the original benefits was that when you're in a view that has a
lot of columns, `explore` gives you the ability to scroll left, right,
up, and down.
`explore` is also smart enough to know when you're in table mode versus
preview mode. If you do `open Cargo.toml | explore` you get this.
![image](https://user-images.githubusercontent.com/343840/205091822-cac79130-3a52-4ca8-9210-eba5be30ed58.png)
If you type `open --raw Cargo.toml | explore` you get this where you can
scroll left, right, up, down. This is called preview mode.
![image](https://user-images.githubusercontent.com/343840/205091990-69455191-ab78-4fea-a961-feafafc16d70.png)
When you're in table mode, you can also type `:preview`. So, with `open
--raw Cargo.toml | explore`, if you type `:preview`, it will look like
this.
![image](https://user-images.githubusercontent.com/343840/205092569-436aa55a-0474-48d5-ab71-baddb1f43027.png)
Signed-off-by: Maxim Zhiburt <zhiburt@gmail.com>
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2022-12-01 15:32:10 +00:00
|
|
|
]
|
|
|
|
|
2022-03-13 18:30:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-glob"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2022-03-13 18:30:27 +00:00
|
|
|
dependencies = [
|
|
|
|
"doc-comment",
|
|
|
|
]
|
|
|
|
|
2020-11-22 00:37:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-json"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2020-11-22 00:37:16 +00:00
|
|
|
dependencies = [
|
2021-08-28 03:34:11 +00:00
|
|
|
"linked-hash-map",
|
|
|
|
"num-traits",
|
|
|
|
"serde",
|
2024-03-20 21:14:31 +00:00
|
|
|
"serde_json",
|
2020-11-22 00:37:16 +00:00
|
|
|
]
|
|
|
|
|
2023-11-02 15:18:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-lsp"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2023-11-02 15:18:57 +00:00
|
|
|
dependencies = [
|
|
|
|
"assert-json-diff",
|
2023-11-15 23:35:48 +00:00
|
|
|
"crossbeam-channel",
|
2023-11-02 15:18:57 +00:00
|
|
|
"lsp-server",
|
|
|
|
"lsp-types",
|
|
|
|
"miette",
|
|
|
|
"nu-cli",
|
|
|
|
"nu-cmd-lang",
|
|
|
|
"nu-command",
|
|
|
|
"nu-parser",
|
|
|
|
"nu-protocol",
|
|
|
|
"nu-test-support",
|
|
|
|
"reedline",
|
|
|
|
"ropey",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
Extract core stuff into own crates
This commit extracts five new crates:
- nu-source, which contains the core source-code handling logic in Nu,
including Text, Span, and also the pretty.rs-based debug logic
- nu-parser, which is the parser and expander logic
- nu-protocol, which is the bulk of the types and basic conveniences
used by plugins
- nu-errors, which contains ShellError, ParseError and error handling
conveniences
- nu-textview, which is the textview plugin extracted into a crate
One of the major consequences of this refactor is that it's no longer
possible to `impl X for Spanned<Y>` outside of the `nu-source` crate, so
a lot of types became more concrete (Value became a concrete type
instead of Spanned<Value>, for example).
This also turned a number of inherent methods in the main nu crate into
plain functions (impl Value {} became a bunch of functions in the
`value` namespace in `crate::data::value`).
2019-11-26 02:30:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-parser"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
2022-09-28 22:08:38 +00:00
|
|
|
"bytesize",
|
2022-02-24 02:02:48 +00:00
|
|
|
"chrono",
|
2024-04-10 00:31:43 +00:00
|
|
|
"itertools 0.12.1",
|
2022-01-01 21:42:50 +00:00
|
|
|
"log",
|
2022-08-08 12:26:49 +00:00
|
|
|
"nu-engine",
|
2021-11-18 19:32:27 +00:00
|
|
|
"nu-path",
|
2024-04-27 17:08:12 +00:00
|
|
|
"nu-plugin-engine",
|
2021-09-02 01:29:43 +00:00
|
|
|
"nu-protocol",
|
2023-08-08 17:11:05 +00:00
|
|
|
"rstest",
|
2021-11-19 02:51:42 +00:00
|
|
|
"serde_json",
|
Extract core stuff into own crates
This commit extracts five new crates:
- nu-source, which contains the core source-code handling logic in Nu,
including Text, Span, and also the pretty.rs-based debug logic
- nu-parser, which is the parser and expander logic
- nu-protocol, which is the bulk of the types and basic conveniences
used by plugins
- nu-errors, which contains ShellError, ParseError and error handling
conveniences
- nu-textview, which is the textview plugin extracted into a crate
One of the major consequences of this refactor is that it's no longer
possible to `impl X for Spanned<Y>` outside of the `nu-source` crate, so
a lot of types became more concrete (Value became a concrete type
instead of Spanned<Value>, for example).
This also turned a number of inherent methods in the main nu crate into
plain functions (impl Value {} became a bunch of functions in the
`value` namespace in `crate::data::value`).
2019-11-26 02:30:48 +00:00
|
|
|
]
|
|
|
|
|
2021-06-19 23:07:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-path"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-06-19 23:07:26 +00:00
|
|
|
dependencies = [
|
|
|
|
"dirs-next",
|
2022-10-22 16:51:52 +00:00
|
|
|
"omnipath",
|
2022-04-24 22:12:57 +00:00
|
|
|
"pwd",
|
2021-06-19 23:07:26 +00:00
|
|
|
]
|
|
|
|
|
2019-12-27 13:30:14 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-10-28 06:12:33 +00:00
|
|
|
dependencies = [
|
2024-02-25 22:32:50 +00:00
|
|
|
"log",
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 18:28:18 +00:00
|
|
|
"nix",
|
2021-12-02 05:42:56 +00:00
|
|
|
"nu-engine",
|
2024-04-27 17:08:12 +00:00
|
|
|
"nu-plugin-core",
|
|
|
|
"nu-plugin-protocol",
|
|
|
|
"nu-protocol",
|
|
|
|
"serde",
|
|
|
|
"thiserror",
|
|
|
|
"typetag",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin-core"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2024-04-27 17:08:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"interprocess",
|
|
|
|
"log",
|
|
|
|
"nu-plugin-protocol",
|
2021-10-28 06:12:33 +00:00
|
|
|
"nu-protocol",
|
2022-08-21 11:13:38 +00:00
|
|
|
"rmp-serde",
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2019-12-27 13:30:14 +00:00
|
|
|
"serde_json",
|
2024-04-27 17:08:12 +00:00
|
|
|
"windows 0.54.0",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin-engine"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2024-04-27 17:08:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"nu-engine",
|
|
|
|
"nu-plugin-core",
|
|
|
|
"nu-plugin-protocol",
|
|
|
|
"nu-protocol",
|
|
|
|
"nu-system",
|
|
|
|
"serde",
|
2024-02-25 22:32:50 +00:00
|
|
|
"typetag",
|
2024-03-23 23:46:02 +00:00
|
|
|
"windows 0.54.0",
|
2019-12-27 13:30:14 +00:00
|
|
|
]
|
|
|
|
|
2024-04-27 17:08:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin-protocol"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2024-04-27 17:08:12 +00:00
|
|
|
dependencies = [
|
|
|
|
"bincode",
|
|
|
|
"nu-protocol",
|
|
|
|
"nu-utils",
|
|
|
|
"semver",
|
|
|
|
"serde",
|
|
|
|
"typetag",
|
|
|
|
]
|
|
|
|
|
2024-03-23 18:29:54 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-plugin-test-support"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2024-03-23 18:29:54 +00:00
|
|
|
dependencies = [
|
2024-03-26 02:13:12 +00:00
|
|
|
"nu-ansi-term",
|
2024-04-06 20:11:41 +00:00
|
|
|
"nu-cmd-lang",
|
2024-03-23 18:29:54 +00:00
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
|
|
|
"nu-plugin",
|
2024-04-27 17:08:12 +00:00
|
|
|
"nu-plugin-core",
|
|
|
|
"nu-plugin-engine",
|
|
|
|
"nu-plugin-protocol",
|
2024-03-23 18:29:54 +00:00
|
|
|
"nu-protocol",
|
|
|
|
"serde",
|
2024-03-26 02:13:12 +00:00
|
|
|
"similar",
|
2024-03-23 18:29:54 +00:00
|
|
|
"typetag",
|
|
|
|
]
|
|
|
|
|
2021-05-01 16:12:25 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-pretty-hex"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-12-24 07:22:11 +00:00
|
|
|
dependencies = [
|
2022-07-19 17:35:25 +00:00
|
|
|
"heapless",
|
2023-07-24 11:16:18 +00:00
|
|
|
"nu-ansi-term",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand",
|
2021-05-01 16:12:25 +00:00
|
|
|
]
|
|
|
|
|
Extract core stuff into own crates
This commit extracts five new crates:
- nu-source, which contains the core source-code handling logic in Nu,
including Text, Span, and also the pretty.rs-based debug logic
- nu-parser, which is the parser and expander logic
- nu-protocol, which is the bulk of the types and basic conveniences
used by plugins
- nu-errors, which contains ShellError, ParseError and error handling
conveniences
- nu-textview, which is the textview plugin extracted into a crate
One of the major consequences of this refactor is that it's no longer
possible to `impl X for Spanned<Y>` outside of the `nu-source` crate, so
a lot of types became more concrete (Value became a concrete type
instead of Spanned<Value>, for example).
This also turned a number of inherent methods in the main nu crate into
plain functions (impl Value {} became a bunch of functions in the
`value` namespace in `crate::data::value`).
2019-11-26 02:30:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-protocol"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-09-02 08:25:22 +00:00
|
|
|
dependencies = [
|
2024-04-21 12:36:26 +00:00
|
|
|
"brotli 5.0.0",
|
2021-10-05 02:27:39 +00:00
|
|
|
"byte-unit",
|
|
|
|
"chrono",
|
|
|
|
"chrono-humanize",
|
2023-12-21 16:10:33 +00:00
|
|
|
"fancy-regex",
|
2023-12-06 00:09:34 +00:00
|
|
|
"indexmap",
|
Add LRU regex cache (#7587)
Closes #7572 by adding a cache for compiled regexes of type
`Arc<Mutex<LruCache<String, Regex>>>` to `EngineState` .
The cache is limited to 100 entries (limit chosen arbitrarily) and
evicts least-recently-used items first.
This PR makes a noticeable difference when using regexes for
`color_config`, e.g.:
```bash
#first set string formatting in config.nu like:
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }`
# then try displaying and exploring a table with many strings
# this is instant after the PR, but takes hundreds of milliseconds before
['#ff0033', '#0025ee', '#0087aa', 'string', '#4101ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff', '#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff','#ff0033', '#0025ee', '#0087aa', 'string', '#6103ff']
```
## New dependency (`lru`)
This uses [the popular `lru` crate](https://lib.rs/crates/lru). The new
dependency adds 19.8KB to a Linux release build of Nushell. I think this
is OK, especially since the crate can be useful elsewhere in Nu.
2022-12-23 22:30:04 +00:00
|
|
|
"lru",
|
2022-10-24 19:42:32 +00:00
|
|
|
"miette",
|
2023-09-01 06:18:55 +00:00
|
|
|
"nu-path",
|
|
|
|
"nu-system",
|
`$env.config` now always holds a record with only valid values (#7309)
# Description
Closes #7059. Rather than generate a new Record each time $env.config is
accessed (as described in that issue), instead `$env.config = ` now A)
parses the input record, then B) un-parses it into a clean Record with
only the valid values, and stores that as an env-var. The reasoning for
this is that I believe `config_to_nu_record()` (the method that performs
step B) will be useful in later PRs. (See below)
As a result, this also "fixes" the following "bug":
```
〉$env.config = 'butts'
$env.config is not a record
〉$env.config
butts
```
~~Instead, `$env.config = 'butts'` now turns `$env.config` into the
default (not the default config.nu, but `Config::default()`, which
notably has empty keybindings, color_config, menus and hooks vecs).~~
This doesn't attempt to fix #7110. cc @Kangaxx-0
# Example of new behaviour
OLD:
```
〉$env.config = ($env.config | merge { foo: 1 })
$env.config.foo is an unknown config setting
〉$env.config.foo
1
```
NEW:
```
〉$env.config = ($env.config | merge { foo: 1 })
Error:
× Config record contains invalid values or unknown settings
Error:
× Error while applying config changes
╭─[entry #1:1:1]
1 │ $env.config = ($env.config | merge { foo: 1 })
· ┬
· ╰── $env.config.foo is an unknown config setting
╰────
help: This value has been removed from your $env.config record.
〉$env.config.foo
Error: nu::shell::column_not_found (link)
× Cannot find column
╭─[entry #1:1:1]
1 │ $env.config = ($env.config | merge { foo: 1 })
· ──┬──
· ╰── value originates here
╰────
╭─[entry #2:1:1]
1 │ $env.config.foo
· ─┬─
· ╰── cannot find column 'foo'
╰────
```
# Example of new errors
OLD:
```
$env.config.cd.baz is an unknown config setting
$env.config.foo is an unknown config setting
$env.config.bar is an unknown config setting
$env.config.table.qux is an unknown config setting
$env.config.history.qux is an unknown config setting
```
NEW:
```
Error:
× Config record contains invalid values or unknown settings
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:267:1]
267 │ abbreviations: true # allows `cd s/o/f` to expand to `cd some/other/folder`
268 │ baz: 3,
· ┬
· ╰── $env.config.cd.baz is an unknown config setting
269 │ }
╰────
help: This value has been removed from your $env.config record.
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:269:1]
269 │ }
270 │ foo: 1,
· ┬
· ╰── $env.config.foo is an unknown config setting
271 │ bar: 2,
╰────
help: This value has been removed from your $env.config record.
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:270:1]
270 │ foo: 1,
271 │ bar: 2,
· ┬
· ╰── $env.config.bar is an unknown config setting
╰────
help: This value has been removed from your $env.config record.
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:279:1]
279 │ }
280 │ qux: 4,
· ┬
· ╰── $env.config.table.qux is an unknown config setting
281 │ }
╰────
help: This value has been removed from your $env.config record.
Error:
× Error while applying config changes
╭─[C:\Users\Leon\AppData\Roaming\nushell\config.nu:285:1]
285 │ file_format: "plaintext" # "sqlite" or "plaintext"
286 │ qux: 2
· ┬
· ╰── $env.config.history.qux is an unknown config setting
287 │ }
╰────
help: This value has been removed from your $env.config record.
```
# User-Facing Changes
See above.
# 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 -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass
# 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.
2022-12-10 13:34:46 +00:00
|
|
|
"nu-test-support",
|
2022-05-17 18:28:18 +00:00
|
|
|
"nu-utils",
|
2021-12-09 19:19:36 +00:00
|
|
|
"num-format",
|
2024-04-21 12:36:26 +00:00
|
|
|
"pretty_assertions",
|
|
|
|
"rmp-serde",
|
2023-08-08 17:11:05 +00:00
|
|
|
"rstest",
|
2021-10-01 05:11:49 +00:00
|
|
|
"serde",
|
2021-11-19 02:51:42 +00:00
|
|
|
"serde_json",
|
2024-03-13 18:42:31 +00:00
|
|
|
"strum",
|
2024-04-10 00:31:43 +00:00
|
|
|
"strum_macros 0.26.2",
|
Migrate to a new PWD API (#12603)
This is the first PR towards migrating to a new `$env.PWD` API that
returns potentially un-canonicalized paths. Refer to PR #12515 for
motivations.
## New API: `EngineState::cwd()`
The goal of the new API is to cover both parse-time and runtime use
case, and avoid unintentional misuse. It takes an `Option<Stack>` as
argument, which if supplied, will search for `$env.PWD` on the stack in
additional to the engine state. I think with this design, there's less
confusion over parse-time and runtime environments. If you have access
to a stack, just supply it; otherwise supply `None`.
## Deprecation of other PWD-related APIs
Other APIs are re-implemented using `EngineState::cwd()` and properly
documented. They're marked deprecated, but their behavior is unchanged.
Unused APIs are deleted, and code that accesses `$env.PWD` directly
without using an API is rewritten.
Deprecated APIs:
* `EngineState::current_work_dir()`
* `StateWorkingSet::get_cwd()`
* `env::current_dir()`
* `env::current_dir_str()`
* `env::current_dir_const()`
* `env::current_dir_str_const()`
Other changes:
* `EngineState::get_cwd()` (deleted)
* `StateWorkingSet::list_env()` (deleted)
* `repl::do_run_cmd()` (rewritten with `env::current_dir_str()`)
## `cd` and `pwd` now use logical paths by default
This pulls the changes from PR #12515. It's currently somewhat broken
because using non-canonicalized paths exposed a bug in our path
normalization logic (Issue #12602). Once that is fixed, this should
work.
## Future plans
This PR needs some tests. Which test helpers should I use, and where
should I put those tests?
I noticed that unquoted paths are expanded within `eval_filepath()` and
`eval_directory()` before they even reach the `cd` command. This means
every paths is expanded twice. Is this intended?
Once this PR lands, the plan is to review all usages of the deprecated
APIs and migrate them to `EngineState::cwd()`. In the meantime, these
usages are annotated with `#[allow(deprecated)]` to avoid breaking CI.
---------
Co-authored-by: Jakub Žádník <kubouch@gmail.com>
2024-05-03 11:33:09 +00:00
|
|
|
"tempfile",
|
2021-09-20 21:37:26 +00:00
|
|
|
"thiserror",
|
2021-11-23 08:14:40 +00:00
|
|
|
"typetag",
|
2021-09-02 08:25:22 +00:00
|
|
|
]
|
2021-09-02 01:29:43 +00:00
|
|
|
|
2023-04-07 20:12:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-std"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2023-04-07 20:12:27 +00:00
|
|
|
dependencies = [
|
2024-03-28 16:27:12 +00:00
|
|
|
"log",
|
2023-04-07 20:12:27 +00:00
|
|
|
"miette",
|
2023-05-23 20:48:50 +00:00
|
|
|
"nu-engine",
|
2023-04-07 20:12:27 +00:00
|
|
|
"nu-parser",
|
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2022-01-14 06:20:53 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-system"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2022-01-14 06:20:53 +00:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
"libc",
|
|
|
|
"libproc",
|
2022-10-22 16:54:46 +00:00
|
|
|
"log",
|
2022-09-01 06:09:52 +00:00
|
|
|
"mach2",
|
2024-03-27 15:43:37 +00:00
|
|
|
"nix",
|
2022-10-30 13:29:41 +00:00
|
|
|
"ntapi",
|
2022-02-01 21:05:26 +00:00
|
|
|
"once_cell",
|
2022-01-14 06:20:53 +00:00
|
|
|
"procfs",
|
2024-01-24 15:27:06 +00:00
|
|
|
"sysinfo",
|
2024-03-08 00:36:28 +00:00
|
|
|
"windows 0.54.0",
|
2022-01-14 06:20:53 +00:00
|
|
|
]
|
|
|
|
|
2021-09-10 02:27:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-table"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2021-09-10 02:27:12 +00:00
|
|
|
dependencies = [
|
2023-12-21 16:10:33 +00:00
|
|
|
"fancy-regex",
|
2023-07-24 11:16:18 +00:00
|
|
|
"nu-ansi-term",
|
color_config now accepts closures as color values (#7141)
# Description
Closes #6909. You can now add closures to your `color_config` themes.
Whenever a value would be printed with `table`, the closure is run with
the value piped-in. The closure must return either a {fg,bg,attr} record
or a color name (`'light_red'` etc.). This returned style is used to
colour the value.
This is entirely backwards-compatible with existing config.nu files.
Example code excerpt:
```
let my_theme = {
header: green_bold
bool: { if $in { 'light_cyan' } else { 'light_red' } }
int: purple_bold
filesize: { |e| if $e == 0b { 'gray' } else if $e < 1mb { 'purple_bold' } else { 'cyan_bold' } }
duration: purple_bold
date: { (date now) - $in | if $in > 1wk { 'cyan_bold' } else if $in > 1day { 'green_bold' } else { 'yellow_bold' } }
range: yellow_bold
string: { if $in =~ '^#\w{6}$' { $in } else { 'white' } }
nothing: white
```
Example output with this in effect:
![2022-11-16 12 47 23 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952558-482de05d-69c7-4bf2-91fc-d0964bf71264.png)
![2022-11-16 12 39 41 AM - style_computer
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952580-2384bb86-b680-40fe-8192-71bae396c738.png)
![2022-11-15 09 21 54 PM - run_external
rs_-_nushell_-_VSCodium](https://user-images.githubusercontent.com/83939/201952601-343fc15d-e4a8-4a92-ad89-9a7d17d42748.png)
Slightly important notes:
* Some color_config names, namely "separator", "empty" and "hints", pipe
in `null` instead of a value.
* Currently, doing anything non-trivial inside a closure has an
understandably big perf hit. I currently do not actually recommend
something like `string: { if $in =~ '^#\w{6}$' { $in } else { 'white' }
}` for serious work, mainly because of the abundance of string-type data
in the world. Nevertheless, lesser-used types like "date" and "duration"
work well with this.
* I had to do some reorganisation in order to make it possible to call
`eval_block()` that late in table rendering. I invented a new struct
called "StyleComputer" which holds the engine_state and stack of the
initial `table` command (implicit or explicit).
* StyleComputer has a `compute()` method which takes a color_config name
and a nu value, and always returns the correct Style, so you don't have
to worry about A) the color_config value was set at all, B) whether it
was set to a closure or not, or C) which default style to use in those
cases.
* Currently, errors encountered during execution of the closures are
thrown in the garbage. Any other ideas are welcome. (Nonetheless, errors
result in a huge perf hit when they are encountered. I think what should
be done is to assume something terrible happened to the user's config
and invalidate the StyleComputer for that `table` run, thus causing
subsequent output to just be Style::default().)
* More thorough tests are forthcoming - ran into some difficulty using
`nu!` to take an alternative config, and for some reason `let-env config
=` statements don't seem to work inside `nu!` pipelines(???)
* The default config.nu has not been updated to make use of this yet. Do
tell if you think I should incorporate that into this.
# User-Facing Changes
See above.
# 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 --features=extra -- -D warnings -D
clippy::unwrap_used -A clippy::needless_collect` to check that you're
using the standard code style
- `cargo test --workspace --features=extra` to check that all tests pass
# 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.
2022-12-17 13:07:56 +00:00
|
|
|
"nu-color-config",
|
|
|
|
"nu-engine",
|
2021-12-01 19:20:23 +00:00
|
|
|
"nu-protocol",
|
2022-11-04 18:49:45 +00:00
|
|
|
"nu-utils",
|
2023-09-13 12:47:53 +00:00
|
|
|
"once_cell",
|
2023-08-03 19:52:12 +00:00
|
|
|
"tabled",
|
2021-09-10 02:27:12 +00:00
|
|
|
]
|
|
|
|
|
2021-10-07 15:32:39 +00:00
|
|
|
[[package]]
|
2022-02-07 19:11:34 +00:00
|
|
|
name = "nu-term-grid"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2019-12-17 18:41:47 +00:00
|
|
|
dependencies = [
|
2022-11-04 18:49:45 +00:00
|
|
|
"nu-utils",
|
2022-02-07 19:54:06 +00:00
|
|
|
"unicode-width",
|
2020-05-08 18:19:48 +00:00
|
|
|
]
|
|
|
|
|
2019-12-10 03:57:55 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "nu-test-support"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2019-12-10 03:57:55 +00:00
|
|
|
dependencies = [
|
2022-03-13 18:30:27 +00:00
|
|
|
"nu-glob",
|
2022-02-07 19:54:06 +00:00
|
|
|
"nu-path",
|
2022-08-13 02:13:50 +00:00
|
|
|
"nu-utils",
|
|
|
|
"num-format",
|
2022-02-07 19:54:06 +00:00
|
|
|
"tempfile",
|
2024-01-22 15:28:47 +00:00
|
|
|
"which",
|
2019-12-10 03:57:55 +00:00
|
|
|
]
|
|
|
|
|
2022-03-16 22:21:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu-utils"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2022-03-16 22:21:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"crossterm_winapi",
|
2023-01-24 20:28:59 +00:00
|
|
|
"log",
|
2022-07-20 15:09:33 +00:00
|
|
|
"lscolors",
|
2024-04-06 13:56:46 +00:00
|
|
|
"nix",
|
2022-08-13 02:13:50 +00:00
|
|
|
"num-format",
|
2024-04-14 01:42:03 +00:00
|
|
|
"serde",
|
2022-11-04 18:49:45 +00:00
|
|
|
"strip-ansi-escapes",
|
2022-08-13 02:13:50 +00:00
|
|
|
"sys-locale",
|
2023-11-08 22:58:54 +00:00
|
|
|
"unicase",
|
2022-03-16 22:21:06 +00:00
|
|
|
]
|
|
|
|
|
2022-07-25 16:32:56 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu_plugin_custom_values"
|
|
|
|
version = "0.1.0"
|
|
|
|
dependencies = [
|
|
|
|
"nu-plugin",
|
2024-03-26 02:20:35 +00:00
|
|
|
"nu-plugin-test-support",
|
2022-07-25 16:32:56 +00:00
|
|
|
"nu-protocol",
|
|
|
|
"serde",
|
|
|
|
"typetag",
|
|
|
|
]
|
|
|
|
|
2020-07-18 01:59:23 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "nu_plugin_example"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2020-07-18 01:59:23 +00:00
|
|
|
dependencies = [
|
2024-03-26 02:20:35 +00:00
|
|
|
"nu-cmd-lang",
|
2020-07-18 01:59:23 +00:00
|
|
|
"nu-plugin",
|
2024-03-26 02:20:35 +00:00
|
|
|
"nu-plugin-test-support",
|
2020-07-18 01:59:23 +00:00
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2023-02-13 12:42:08 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu_plugin_formats"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2023-02-13 12:42:08 +00:00
|
|
|
dependencies = [
|
|
|
|
"eml-parser",
|
|
|
|
"ical",
|
2023-12-06 00:09:34 +00:00
|
|
|
"indexmap",
|
2023-02-13 12:42:08 +00:00
|
|
|
"nu-plugin",
|
2024-03-26 02:20:35 +00:00
|
|
|
"nu-plugin-test-support",
|
2023-02-13 12:42:08 +00:00
|
|
|
"nu-protocol",
|
|
|
|
"rust-ini",
|
|
|
|
]
|
|
|
|
|
2020-07-18 01:59:23 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "nu_plugin_gstat"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2020-07-18 01:59:23 +00:00
|
|
|
dependencies = [
|
2022-02-07 19:54:06 +00:00
|
|
|
"git2",
|
2020-07-18 01:59:23 +00:00
|
|
|
"nu-plugin",
|
|
|
|
"nu-protocol",
|
|
|
|
]
|
|
|
|
|
2019-12-09 18:39:51 +00:00
|
|
|
[[package]]
|
2022-02-07 19:54:06 +00:00
|
|
|
name = "nu_plugin_inc"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2019-12-09 18:39:51 +00:00
|
|
|
dependencies = [
|
2019-12-27 13:30:14 +00:00
|
|
|
"nu-plugin",
|
2019-12-09 18:39:51 +00:00
|
|
|
"nu-protocol",
|
2023-03-11 23:35:56 +00:00
|
|
|
"semver",
|
2019-12-09 18:39:51 +00:00
|
|
|
]
|
|
|
|
|
2024-04-10 00:31:43 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu_plugin_polars"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2024-04-10 00:31:43 +00:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
2024-04-13 18:00:04 +00:00
|
|
|
"chrono-tz 0.9.0",
|
2024-04-10 00:31:43 +00:00
|
|
|
"fancy-regex",
|
|
|
|
"indexmap",
|
|
|
|
"nu-cmd-lang",
|
|
|
|
"nu-command",
|
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
2024-04-13 00:30:37 +00:00
|
|
|
"nu-path",
|
2024-04-10 00:31:43 +00:00
|
|
|
"nu-plugin",
|
|
|
|
"nu-plugin-test-support",
|
|
|
|
"nu-protocol",
|
|
|
|
"num",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars",
|
|
|
|
"polars-arrow",
|
|
|
|
"polars-io",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-plan",
|
|
|
|
"polars-utils",
|
2024-04-10 00:31:43 +00:00
|
|
|
"serde",
|
2024-04-13 18:00:04 +00:00
|
|
|
"sqlparser 0.45.0",
|
2024-04-13 00:30:37 +00:00
|
|
|
"tempfile",
|
2024-04-10 00:31:43 +00:00
|
|
|
"typetag",
|
|
|
|
"uuid",
|
|
|
|
]
|
|
|
|
|
2020-10-12 23:18:39 +00:00
|
|
|
[[package]]
|
2022-02-01 18:45:48 +00:00
|
|
|
name = "nu_plugin_query"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
2022-02-01 18:45:48 +00:00
|
|
|
dependencies = [
|
|
|
|
"gjson",
|
|
|
|
"nu-plugin",
|
|
|
|
"nu-protocol",
|
|
|
|
"scraper",
|
2020-10-12 23:18:39 +00:00
|
|
|
"sxd-document",
|
|
|
|
"sxd-xpath",
|
|
|
|
]
|
|
|
|
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 18:28:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nu_plugin_stress_internals"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
Local socket mode and foreground terminal control for plugins (#12448)
# Description
Adds support for running plugins using local socket communication
instead of stdio. This will be an optional thing that not all plugins
have to support.
This frees up stdio for use to make plugins that use stdio to create
terminal UIs, cc @amtoine, @fdncred.
This uses the [`interprocess`](https://crates.io/crates/interprocess)
crate (298 stars, MIT license, actively maintained), which seems to be
the best option for cross-platform local socket support in Rust. On
Windows, a local socket name is provided. On Unixes, it's a path. The
socket name is kept to a relatively small size because some operating
systems have pretty strict limits on the whole path (~100 chars), so on
macOS for example we prefer `/tmp/nu.{pid}.{hash64}.sock` where the hash
includes the plugin filename and timestamp to be unique enough.
This also adds an API for moving plugins in and out of the foreground
group, which is relevant for Unixes where direct terminal control
depends on that.
TODO:
- [x] Generate local socket path according to OS conventions
- [x] Add support for passing `--local-socket` to the plugin executable
instead of `--stdio`, and communicating over that instead
- [x] Test plugins that were broken, including
[amtoine/nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore)
- [x] Automatically upgrade to using local sockets when supported,
falling back if it doesn't work, transparently to the user without any
visible error messages
- Added protocol feature: `LocalSocket`
- [x] Reset preferred mode to `None` on `register`
- [x] Allow plugins to detect whether they're running on a local socket
and can use stdio freely, so that TUI plugins can just produce an error
message otherwise
- Implemented via `EngineInterface::is_using_stdio()`
- [x] Clean up foreground state when plugin command exits on the engine
side too, not just whole plugin
- [x] Make sure tests for failure cases work as intended
- `nu_plugin_stress_internals` added
# User-Facing Changes
- TUI plugins work
- Non-Rust plugins could optionally choose to use this
- This might behave differently, so will need to test it carefully
across different operating systems
# Tests + Formatting
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# After Submitting
- [ ] Document local socket option in plugin contrib docs
- [ ] Document how to do a terminal UI plugin in plugin contrib docs
- [ ] Document: `EnterForeground` engine call
- [ ] Document: `LeaveForeground` engine call
- [ ] Document: `LocalSocket` protocol feature
2024-04-15 18:28:18 +00:00
|
|
|
dependencies = [
|
|
|
|
"interprocess",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
]
|
|
|
|
|
2021-05-12 01:01:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.4.1"
|
2021-05-12 01:01:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af"
|
2021-05-12 01:01:31 +00:00
|
|
|
dependencies = [
|
Update tests Playground (#12134)
<!--
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.
-->
It looks like `Playground` and `Director` in nu-tests-support haven't
gotten much love recently, so this PR is for updating them to work with
newer Nushell versions.
- `Director` adds a `--skip-plugins` argument before running `nu`, but
that doesn't exist anymore, so I removed it.
- `Director` also adds a `--perf` argument, which also doesn't exist
anymore. I added `--log-level info` instead to get the performance
output.
- It doesn't seem like anyone was using `playground::matchers`, and it
used the [hamcrest2](https://github.com/Valloric/hamcrest2-rust) crate,
which appears to be unmaintained, so I got rid of that (and the
`hamcrest2` dependency).
- Inside `tests/fixtures/playground/config` were two files in the old
config format: `default.toml` and `startup.toml`. I removed those too.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
None, these changes only mess with tests.
# 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 std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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-03-09 04:31:21 +00:00
|
|
|
"num-bigint",
|
|
|
|
"num-complex",
|
2021-05-12 01:01:31 +00:00
|
|
|
"num-integer",
|
|
|
|
"num-iter",
|
Update tests Playground (#12134)
<!--
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.
-->
It looks like `Playground` and `Director` in nu-tests-support haven't
gotten much love recently, so this PR is for updating them to work with
newer Nushell versions.
- `Director` adds a `--skip-plugins` argument before running `nu`, but
that doesn't exist anymore, so I removed it.
- `Director` also adds a `--perf` argument, which also doesn't exist
anymore. I added `--log-level info` instead to get the performance
output.
- It doesn't seem like anyone was using `playground::matchers`, and it
used the [hamcrest2](https://github.com/Valloric/hamcrest2-rust) crate,
which appears to be unmaintained, so I got rid of that (and the
`hamcrest2` dependency).
- Inside `tests/fixtures/playground/config` were two files in the old
config format: `default.toml` and `startup.toml`. I removed those too.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
None, these changes only mess with tests.
# 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 std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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-03-09 04:31:21 +00:00
|
|
|
"num-rational",
|
2021-08-28 03:34:11 +00:00
|
|
|
"num-traits",
|
2021-05-12 01:01:31 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num-bigint"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.4.4"
|
2021-05-12 01:01:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
|
2021-05-12 01:01:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
"num-integer",
|
2021-08-28 03:34:11 +00:00
|
|
|
"num-traits",
|
2019-08-30 17:29:04 +00:00
|
|
|
]
|
|
|
|
|
2021-05-12 01:01:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num-complex"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.4.5"
|
2021-05-12 01:01:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
|
2021-05-12 01:01:31 +00:00
|
|
|
dependencies = [
|
2021-08-28 03:34:11 +00:00
|
|
|
"num-traits",
|
2021-05-12 01:01:31 +00:00
|
|
|
]
|
|
|
|
|
2024-04-10 00:31:43 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num-conv"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
|
|
|
|
|
2020-07-12 03:57:39 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num-format"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.4.4"
|
2020-07-12 03:57:39 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3"
|
2020-07-12 03:57:39 +00:00
|
|
|
dependencies = [
|
2023-07-06 15:31:31 +00:00
|
|
|
"arrayvec 0.7.4",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2020-07-12 03:57:39 +00:00
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num-integer"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.46"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
|
2019-05-10 16:59:12 +00:00
|
|
|
dependencies = [
|
2021-08-28 03:34:11 +00:00
|
|
|
"num-traits",
|
2019-05-22 07:12:03 +00:00
|
|
|
]
|
|
|
|
|
2019-07-05 07:53:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num-iter"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.44"
|
2019-07-05 07:53:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9"
|
2019-07-05 07:53:09 +00:00
|
|
|
dependencies = [
|
2020-11-22 00:37:16 +00:00
|
|
|
"autocfg",
|
2019-11-28 02:21:00 +00:00
|
|
|
"num-integer",
|
2021-08-28 03:34:11 +00:00
|
|
|
"num-traits",
|
2019-07-05 07:53:09 +00:00
|
|
|
]
|
|
|
|
|
2020-12-15 19:27:21 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num-rational"
|
2022-07-26 02:09:32 +00:00
|
|
|
version = "0.4.1"
|
2021-05-12 01:01:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 02:09:32 +00:00
|
|
|
checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
|
2021-05-12 01:01:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
Update tests Playground (#12134)
<!--
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.
-->
It looks like `Playground` and `Director` in nu-tests-support haven't
gotten much love recently, so this PR is for updating them to work with
newer Nushell versions.
- `Director` adds a `--skip-plugins` argument before running `nu`, but
that doesn't exist anymore, so I removed it.
- `Director` also adds a `--perf` argument, which also doesn't exist
anymore. I added `--log-level info` instead to get the performance
output.
- It doesn't seem like anyone was using `playground::matchers`, and it
used the [hamcrest2](https://github.com/Valloric/hamcrest2-rust) crate,
which appears to be unmaintained, so I got rid of that (and the
`hamcrest2` dependency).
- Inside `tests/fixtures/playground/config` were two files in the old
config format: `default.toml` and `startup.toml`. I removed those too.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
None, these changes only mess with tests.
# 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 std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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-03-09 04:31:21 +00:00
|
|
|
"num-bigint",
|
2020-12-15 19:27:21 +00:00
|
|
|
"num-integer",
|
2021-08-28 03:34:11 +00:00
|
|
|
"num-traits",
|
2019-06-03 07:41:28 +00:00
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num-traits"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.18"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
|
2019-05-22 07:12:03 +00:00
|
|
|
dependencies = [
|
2020-11-22 00:37:16 +00:00
|
|
|
"autocfg",
|
2021-05-27 05:09:48 +00:00
|
|
|
"libm",
|
2019-05-22 07:12:03 +00:00
|
|
|
]
|
2019-05-10 16:59:12 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num_cpus"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "1.16.0"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
|
2019-05-10 16:59:12 +00:00
|
|
|
dependencies = [
|
2023-07-12 16:15:54 +00:00
|
|
|
"hermit-abi",
|
2019-11-28 02:21:00 +00:00
|
|
|
"libc",
|
2019-05-10 16:59:12 +00:00
|
|
|
]
|
|
|
|
|
2022-07-26 02:09:32 +00:00
|
|
|
[[package]]
|
|
|
|
name = "num_threads"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.7"
|
2022-07-26 02:09:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
|
2022-07-26 02:09:32 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2023-01-11 01:57:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "number_prefix"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
|
|
|
|
|
create `nuon` crate from `from nuon` and `to nuon` (#12553)
# Description
playing with the NUON format in Rust code in some plugins, we agreed
with the team it was a great time to create a standalone NUON format to
allow Rust devs to use this Nushell file format.
> **Note**
> this PR almost copy-pastes the code from
`nu_commands/src/formats/from/nuon.rs` and
`nu_commands/src/formats/to/nuon.rs` to `nuon/src/from.rs` and
`nuon/src/to.rs`, with minor tweaks to make then standalone functions,
e.g. remove the rest of the command implementations
### TODO
- [x] add tests
- [x] add documentation
# User-Facing Changes
devs will have access to a new crate, `nuon`, and two functions,
`from_nuon` and `to_nuon`
```rust
from_nuon(
input: &str,
span: Option<Span>,
) -> Result<Value, ShellError>
```
```rust
to_nuon(
input: &Value,
raw: bool,
tabs: Option<usize>,
indent: Option<usize>,
span: Option<Span>,
) -> Result<String, ShellError>
```
# Tests + Formatting
i've basically taken all the tests from
`crates/nu-command/tests/format_conversions/nuon.rs` and converted them
to use `from_nuon` and `to_nuon` instead of Nushell commands
- i've created a `nuon_end_to_end` to run both conversions with an
optional middle value to check that all is fine
> **Note**
> the `nuon::tests::read_code_should_fail_rather_than_panic` test does
give different results locally and in the CI...
> i've left it ignored with comments to help future us :)
# After Submitting
mention that in the release notes for sure!!
2024-04-19 11:54:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "nuon"
|
2024-05-01 22:19:20 +00:00
|
|
|
version = "0.93.1"
|
create `nuon` crate from `from nuon` and `to nuon` (#12553)
# Description
playing with the NUON format in Rust code in some plugins, we agreed
with the team it was a great time to create a standalone NUON format to
allow Rust devs to use this Nushell file format.
> **Note**
> this PR almost copy-pastes the code from
`nu_commands/src/formats/from/nuon.rs` and
`nu_commands/src/formats/to/nuon.rs` to `nuon/src/from.rs` and
`nuon/src/to.rs`, with minor tweaks to make then standalone functions,
e.g. remove the rest of the command implementations
### TODO
- [x] add tests
- [x] add documentation
# User-Facing Changes
devs will have access to a new crate, `nuon`, and two functions,
`from_nuon` and `to_nuon`
```rust
from_nuon(
input: &str,
span: Option<Span>,
) -> Result<Value, ShellError>
```
```rust
to_nuon(
input: &Value,
raw: bool,
tabs: Option<usize>,
indent: Option<usize>,
span: Option<Span>,
) -> Result<String, ShellError>
```
# Tests + Formatting
i've basically taken all the tests from
`crates/nu-command/tests/format_conversions/nuon.rs` and converted them
to use `from_nuon` and `to_nuon` instead of Nushell commands
- i've created a `nuon_end_to_end` to run both conversions with an
optional middle value to check that all is fine
> **Note**
> the `nuon::tests::read_code_should_fail_rather_than_panic` test does
give different results locally and in the CI...
> i've left it ignored with comments to help future us :)
# After Submitting
mention that in the release notes for sure!!
2024-04-19 11:54:16 +00:00
|
|
|
dependencies = [
|
|
|
|
"chrono",
|
|
|
|
"fancy-regex",
|
|
|
|
"nu-engine",
|
|
|
|
"nu-parser",
|
|
|
|
"nu-protocol",
|
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
2019-06-07 16:30:50 +00:00
|
|
|
[[package]]
|
|
|
|
name = "objc"
|
2019-11-16 17:17:05 +00:00
|
|
|
version = "0.2.7"
|
2019-06-07 16:30:50 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 02:21:00 +00:00
|
|
|
checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
|
2019-06-07 16:30:50 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"malloc_buf",
|
2019-06-07 16:30:50 +00:00
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "objc-foundation"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
|
|
|
|
dependencies = [
|
|
|
|
"block",
|
|
|
|
"objc",
|
|
|
|
"objc_id",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "objc_id"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
|
|
|
|
dependencies = [
|
|
|
|
"objc",
|
|
|
|
]
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "object"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.32.2"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
|
2023-07-06 15:31:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
2022-10-22 16:51:52 +00:00
|
|
|
[[package]]
|
|
|
|
name = "omnipath"
|
2023-05-17 23:32:28 +00:00
|
|
|
version = "0.1.6"
|
2022-10-22 16:51:52 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-17 23:32:28 +00:00
|
|
|
checksum = "80adb31078122c880307e9cdfd4e3361e6545c319f9b9dcafcb03acd3b51a575"
|
2022-10-22 16:51:52 +00:00
|
|
|
|
2019-10-08 13:47:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "once_cell"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.19.0"
|
2019-10-08 13:47:30 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
|
2019-10-08 13:47:30 +00:00
|
|
|
|
2023-01-03 18:47:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "open"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "5.1.2"
|
2023-01-03 18:47:37 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32"
|
2023-01-03 18:47:37 +00:00
|
|
|
dependencies = [
|
2023-04-17 05:05:40 +00:00
|
|
|
"is-wsl",
|
2023-06-29 13:30:07 +00:00
|
|
|
"libc",
|
2023-01-03 18:47:37 +00:00
|
|
|
"pathdiff",
|
|
|
|
]
|
|
|
|
|
2020-01-17 20:35:48 +00:00
|
|
|
[[package]]
|
2020-03-20 07:53:49 +00:00
|
|
|
name = "openssl"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.10.64"
|
2020-03-20 07:53:49 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
|
2020-03-20 07:53:49 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2020-03-20 07:53:49 +00:00
|
|
|
"foreign-types",
|
|
|
|
"libc",
|
2021-05-12 01:01:31 +00:00
|
|
|
"once_cell",
|
2022-05-25 17:13:14 +00:00
|
|
|
"openssl-macros",
|
2020-03-20 07:53:49 +00:00
|
|
|
"openssl-sys",
|
|
|
|
]
|
|
|
|
|
2022-05-25 17:13:14 +00:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-macros"
|
2023-04-14 20:14:57 +00:00
|
|
|
version = "0.1.1"
|
2022-05-25 17:13:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 20:14:57 +00:00
|
|
|
checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
2022-05-25 17:13:14 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2022-05-25 17:13:14 +00:00
|
|
|
]
|
|
|
|
|
2019-06-01 21:11:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-probe"
|
2022-02-08 13:28:21 +00:00
|
|
|
version = "0.1.5"
|
2019-06-01 21:11:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-08 13:28:21 +00:00
|
|
|
checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
2019-06-01 21:11:28 +00:00
|
|
|
|
2022-04-28 00:25:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-src"
|
2024-02-15 13:05:50 +00:00
|
|
|
version = "300.2.3+3.2.1"
|
2022-04-28 00:25:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-15 13:05:50 +00:00
|
|
|
checksum = "5cff92b6f71555b61bb9315f7c64da3ca43d87531622120fea0195fc761b4843"
|
2022-04-28 00:25:09 +00:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
]
|
|
|
|
|
2019-06-01 21:11:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-sys"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.9.102"
|
2019-06-01 21:11:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
|
2019-06-01 21:11:28 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"cc",
|
|
|
|
"libc",
|
2022-04-28 00:25:09 +00:00
|
|
|
"openssl-src",
|
2019-11-28 02:21:00 +00:00
|
|
|
"pkg-config",
|
|
|
|
"vcpkg",
|
2019-06-01 21:11:28 +00:00
|
|
|
]
|
|
|
|
|
2023-02-09 11:47:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ordered-multimap"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.7.3"
|
2023-02-09 11:47:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "49203cdcae0030493bad186b28da2fa25645fa276a51b6fec8010d281e02ef79"
|
2023-02-09 11:47:45 +00:00
|
|
|
dependencies = [
|
|
|
|
"dlv-list",
|
2023-12-06 00:09:34 +00:00
|
|
|
"hashbrown 0.14.3",
|
2023-02-09 11:47:45 +00:00
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "os_display"
|
|
|
|
version = "0.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7a6229bad892b46b0dcfaaeb18ad0d2e56400f5aaea05b768bde96e73676cf75"
|
|
|
|
dependencies = [
|
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2023-04-28 12:55:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "os_pipe"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.1.5"
|
2023-04-28 12:55:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
|
2023-04-28 12:55:48 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-01-21 03:53:24 +00:00
|
|
|
"windows-sys 0.52.0",
|
2023-04-28 12:55:48 +00:00
|
|
|
]
|
|
|
|
|
2020-06-27 07:54:31 +00:00
|
|
|
[[package]]
|
2021-09-20 21:37:26 +00:00
|
|
|
name = "owo-colors"
|
2024-02-08 01:26:18 +00:00
|
|
|
version = "4.0.0"
|
2021-09-20 21:37:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 01:26:18 +00:00
|
|
|
checksum = "caff54706df99d2a78a5a4e3455ff45448d81ef1bb63c22cd14052ca0e993a3f"
|
2021-09-20 21:37:26 +00:00
|
|
|
|
2022-07-06 19:57:40 +00:00
|
|
|
[[package]]
|
|
|
|
name = "papergrid"
|
2023-08-04 18:50:47 +00:00
|
|
|
version = "0.10.0"
|
2022-07-22 15:33:29 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-04 18:50:47 +00:00
|
|
|
checksum = "a2ccbe15f2b6db62f9a9871642746427e297b0ceb85f9a7f1ee5ff47d184d0c8"
|
2022-07-06 19:57:40 +00:00
|
|
|
dependencies = [
|
2023-07-10 07:24:08 +00:00
|
|
|
"ansi-str",
|
2022-10-03 16:40:16 +00:00
|
|
|
"ansitok",
|
2022-07-06 19:57:40 +00:00
|
|
|
"bytecount",
|
2022-07-22 15:33:29 +00:00
|
|
|
"fnv",
|
2022-07-06 19:57:40 +00:00
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2022-03-01 12:05:46 +00:00
|
|
|
[[package]]
|
|
|
|
name = "parking_lot"
|
2022-06-14 20:53:33 +00:00
|
|
|
version = "0.12.1"
|
2022-03-01 12:05:46 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-06-14 20:53:33 +00:00
|
|
|
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
|
2022-03-01 12:05:46 +00:00
|
|
|
dependencies = [
|
|
|
|
"lock_api",
|
2023-08-29 22:13:34 +00:00
|
|
|
"parking_lot_core",
|
2019-05-29 15:26:45 +00:00
|
|
|
]
|
|
|
|
|
2022-03-01 12:05:46 +00:00
|
|
|
[[package]]
|
|
|
|
name = "parking_lot_core"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.9.9"
|
2022-03-01 12:05:46 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
|
2022-03-01 12:05:46 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2022-03-01 12:05:46 +00:00
|
|
|
"libc",
|
2023-12-06 00:09:34 +00:00
|
|
|
"redox_syscall",
|
2022-03-01 12:05:46 +00:00
|
|
|
"smallvec",
|
2023-10-07 11:58:26 +00:00
|
|
|
"windows-targets 0.48.5",
|
2022-03-01 12:05:46 +00:00
|
|
|
]
|
|
|
|
|
2021-05-18 19:33:10 +00:00
|
|
|
[[package]]
|
2022-11-09 22:07:38 +00:00
|
|
|
name = "parquet-format-safe"
|
|
|
|
version = "0.2.4"
|
2021-07-04 23:46:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-11-09 22:07:38 +00:00
|
|
|
checksum = "1131c54b167dd4e4799ce762e1ab01549ebb94d5bdd13e6ec1b467491c378e1f"
|
2021-05-18 19:33:10 +00:00
|
|
|
dependencies = [
|
2021-09-15 19:10:12 +00:00
|
|
|
"async-trait",
|
2021-11-23 08:14:40 +00:00
|
|
|
"futures",
|
2021-05-18 19:33:10 +00:00
|
|
|
]
|
|
|
|
|
2020-08-05 21:34:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "parse-zoneinfo"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41"
|
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"regex",
|
2020-08-05 21:34:28 +00:00
|
|
|
]
|
|
|
|
|
2022-08-21 11:13:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "paste"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "1.0.14"
|
2022-08-21 11:13:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
|
2022-08-21 11:13:38 +00:00
|
|
|
|
2020-06-16 21:17:32 +00:00
|
|
|
[[package]]
|
2021-08-28 03:34:11 +00:00
|
|
|
name = "pathdiff"
|
2021-12-02 18:05:38 +00:00
|
|
|
version = "0.2.1"
|
2021-08-28 03:34:11 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-12-02 18:05:38 +00:00
|
|
|
checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
|
2021-08-28 03:34:11 +00:00
|
|
|
|
2019-07-29 07:46:24 +00:00
|
|
|
[[package]]
|
|
|
|
name = "percent-encoding"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "2.3.1"
|
2019-07-29 07:46:24 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
2019-07-29 07:46:24 +00:00
|
|
|
|
2020-10-12 13:03:00 +00:00
|
|
|
[[package]]
|
|
|
|
name = "peresil"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f658886ed52e196e850cfbbfddab9eaa7f6d90dd0929e264c31e5cec07e09e57"
|
|
|
|
|
2023-11-15 23:43:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "pest"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.7.9"
|
2023-11-15 23:43:37 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "311fb059dee1a7b802f036316d790138c613a4e8b180c822e3925a662e9f0c95"
|
2023-11-15 23:43:37 +00:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
"thiserror",
|
|
|
|
"ucd-trie",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pest_derive"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.7.9"
|
2023-11-15 23:43:37 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "f73541b156d32197eecda1a4014d7f868fd2bcb3c550d5386087cfba442bf69c"
|
2023-11-15 23:43:37 +00:00
|
|
|
dependencies = [
|
|
|
|
"pest",
|
|
|
|
"pest_generator",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pest_generator"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.7.9"
|
2023-11-15 23:43:37 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c35eeed0a3fab112f75165fdc026b3913f4183133f19b49be773ac9ea966e8bd"
|
2023-11-15 23:43:37 +00:00
|
|
|
dependencies = [
|
|
|
|
"pest",
|
|
|
|
"pest_meta",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2023-11-15 23:43:37 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pest_meta"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.7.9"
|
2023-11-15 23:43:37 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "2adbf29bb9776f28caece835398781ab24435585fe0d4dc1374a61db5accedca"
|
2023-11-15 23:43:37 +00:00
|
|
|
dependencies = [
|
|
|
|
"once_cell",
|
|
|
|
"pest",
|
|
|
|
"sha2",
|
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "petgraph"
|
|
|
|
version = "0.6.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
|
|
|
|
dependencies = [
|
|
|
|
"fixedbitset",
|
|
|
|
"indexmap",
|
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
2021-11-02 03:08:05 +00:00
|
|
|
name = "phf"
|
2022-02-04 06:47:18 +00:00
|
|
|
version = "0.10.1"
|
2021-11-02 03:08:05 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-04 06:47:18 +00:00
|
|
|
checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
|
2021-11-02 03:08:05 +00:00
|
|
|
dependencies = [
|
2022-02-01 18:45:48 +00:00
|
|
|
"phf_shared 0.10.0",
|
|
|
|
]
|
|
|
|
|
2022-07-26 02:09:32 +00:00
|
|
|
[[package]]
|
|
|
|
name = "phf"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "0.11.2"
|
2022-07-26 02:09:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
|
2022-07-26 02:09:32 +00:00
|
|
|
dependencies = [
|
2023-07-10 05:28:36 +00:00
|
|
|
"phf_macros",
|
2023-07-06 15:31:31 +00:00
|
|
|
"phf_shared 0.11.2",
|
2022-07-26 02:09:32 +00:00
|
|
|
]
|
|
|
|
|
2021-11-02 03:08:05 +00:00
|
|
|
[[package]]
|
|
|
|
name = "phf_codegen"
|
|
|
|
version = "0.10.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
|
|
|
|
dependencies = [
|
2022-02-01 18:45:48 +00:00
|
|
|
"phf_generator 0.10.0",
|
|
|
|
"phf_shared 0.10.0",
|
2020-11-03 21:46:42 +00:00
|
|
|
]
|
|
|
|
|
2022-07-26 02:09:32 +00:00
|
|
|
[[package]]
|
|
|
|
name = "phf_codegen"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "0.11.2"
|
2022-07-26 02:09:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
|
2022-07-26 02:09:32 +00:00
|
|
|
dependencies = [
|
2023-07-06 15:31:31 +00:00
|
|
|
"phf_generator 0.11.2",
|
|
|
|
"phf_shared 0.11.2",
|
2022-07-26 02:09:32 +00:00
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
2021-11-02 03:08:05 +00:00
|
|
|
name = "phf_generator"
|
|
|
|
version = "0.10.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
|
|
|
|
dependencies = [
|
2022-02-01 18:45:48 +00:00
|
|
|
"phf_shared 0.10.0",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand",
|
2022-02-01 18:45:48 +00:00
|
|
|
]
|
|
|
|
|
2022-07-26 02:09:32 +00:00
|
|
|
[[package]]
|
|
|
|
name = "phf_generator"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "0.11.2"
|
2022-07-26 02:09:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
|
2022-07-26 02:09:32 +00:00
|
|
|
dependencies = [
|
2023-07-06 15:31:31 +00:00
|
|
|
"phf_shared 0.11.2",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand",
|
2022-07-26 02:09:32 +00:00
|
|
|
]
|
|
|
|
|
2022-02-01 18:45:48 +00:00
|
|
|
[[package]]
|
2020-11-03 21:46:42 +00:00
|
|
|
name = "phf_macros"
|
2023-07-10 05:28:36 +00:00
|
|
|
version = "0.11.2"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-10 05:28:36 +00:00
|
|
|
checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
2023-07-10 05:28:36 +00:00
|
|
|
"phf_generator 0.11.2",
|
|
|
|
"phf_shared 0.11.2",
|
2020-11-03 21:46:42 +00:00
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2020-11-03 21:46:42 +00:00
|
|
|
]
|
|
|
|
|
2020-11-22 00:37:16 +00:00
|
|
|
[[package]]
|
2021-11-02 03:08:05 +00:00
|
|
|
name = "phf_shared"
|
|
|
|
version = "0.10.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
|
2022-07-26 02:09:32 +00:00
|
|
|
dependencies = [
|
|
|
|
"siphasher",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "phf_shared"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "0.11.2"
|
2022-07-26 02:09:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
|
2021-11-02 03:08:05 +00:00
|
|
|
dependencies = [
|
|
|
|
"siphasher",
|
|
|
|
]
|
|
|
|
|
2021-11-23 08:14:40 +00:00
|
|
|
[[package]]
|
|
|
|
name = "pin-project-lite"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.14"
|
2021-11-23 08:14:40 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
|
2020-01-01 06:45:27 +00:00
|
|
|
|
2019-05-23 04:30:43 +00:00
|
|
|
[[package]]
|
|
|
|
name = "pin-utils"
|
2020-05-16 03:18:24 +00:00
|
|
|
version = "0.1.0"
|
2019-05-23 04:30:43 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-05-16 03:18:24 +00:00
|
|
|
checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
2019-05-23 04:30:43 +00:00
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "pkg-config"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.3.30"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
|
2019-05-18 01:24:13 +00:00
|
|
|
|
2022-02-27 16:10:29 +00:00
|
|
|
[[package]]
|
|
|
|
name = "planus"
|
2022-08-12 12:10:36 +00:00
|
|
|
version = "0.3.1"
|
2022-02-27 16:10:29 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-08-12 12:10:36 +00:00
|
|
|
checksum = "fc1691dd09e82f428ce8d6310bd6d5da2557c82ff17694d2a32cad7242aea89f"
|
2022-02-27 16:10:29 +00:00
|
|
|
dependencies = [
|
|
|
|
"array-init-cursor",
|
|
|
|
]
|
|
|
|
|
2024-03-25 21:51:50 +00:00
|
|
|
[[package]]
|
|
|
|
name = "platform-info"
|
|
|
|
version = "2.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d6259c4860e53bf665016f1b2f46a8859cadfa717581dc9d597ae4069de6300f"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1c352aaa0399c0863eecd879f2cbe585c9026c5cafe432f029025e4bec3adf43"
|
|
|
|
dependencies = [
|
|
|
|
"getrandom",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-io",
|
|
|
|
"polars-lazy",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-parquet",
|
|
|
|
"polars-sql",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
2023-01-13 15:27:37 +00:00
|
|
|
"version_check",
|
2021-05-12 01:01:31 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-arrow"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f88d3cfc6b500f106f03a5f4d37f700deef38c5b58a2e843edb3ec31f5a0ec19"
|
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"atoi",
|
|
|
|
"atoi_simd",
|
|
|
|
"avro-schema",
|
|
|
|
"bytemuck",
|
|
|
|
"chrono",
|
|
|
|
"chrono-tz 0.8.6",
|
|
|
|
"dyn-clone",
|
|
|
|
"either",
|
|
|
|
"ethnum",
|
|
|
|
"fast-float",
|
|
|
|
"foreign_vec",
|
|
|
|
"futures",
|
|
|
|
"getrandom",
|
|
|
|
"hashbrown 0.14.3",
|
|
|
|
"itoa",
|
|
|
|
"itoap",
|
|
|
|
"lz4",
|
|
|
|
"multiversion",
|
|
|
|
"num-traits",
|
|
|
|
"polars-arrow-format",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2023-12-06 00:09:34 +00:00
|
|
|
"ryu",
|
2022-05-16 07:27:43 +00:00
|
|
|
"serde",
|
2023-12-06 00:09:34 +00:00
|
|
|
"simdutf8",
|
|
|
|
"streaming-iterator",
|
|
|
|
"strength_reduce",
|
2024-01-24 15:27:06 +00:00
|
|
|
"version_check",
|
2023-12-06 00:09:34 +00:00
|
|
|
"zstd",
|
2021-05-12 01:01:31 +00:00
|
|
|
]
|
|
|
|
|
2024-02-13 12:27:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-arrow-format"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "19b0ef2474af9396b19025b189d96e992311e6a47f90c53cd998b36c4c64b84c"
|
|
|
|
dependencies = [
|
|
|
|
"planus",
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-compute"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "cf264bfb632aaeba859fe19a87fa051d850e72542c36177ccea71fd9cae84079"
|
|
|
|
dependencies = [
|
|
|
|
"bytemuck",
|
|
|
|
"either",
|
|
|
|
"num-traits",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2024-04-13 18:00:04 +00:00
|
|
|
"strength_reduce",
|
2024-01-24 15:27:06 +00:00
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-core"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "85cb72917958e82f29d604429ab55851f561c7cd336f7744a7360f9e50b9ac88"
|
2021-05-12 01:01:31 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"ahash 0.8.11",
|
|
|
|
"bitflags 2.5.0",
|
2023-12-06 00:09:34 +00:00
|
|
|
"bytemuck",
|
2022-03-19 11:13:34 +00:00
|
|
|
"chrono",
|
2024-04-13 18:00:04 +00:00
|
|
|
"chrono-tz 0.8.6",
|
2024-04-10 00:31:43 +00:00
|
|
|
"comfy-table",
|
2023-05-08 15:42:53 +00:00
|
|
|
"either",
|
2023-12-06 00:09:34 +00:00
|
|
|
"hashbrown 0.14.3",
|
|
|
|
"indexmap",
|
2023-05-08 15:42:53 +00:00
|
|
|
"num-traits",
|
2022-06-15 16:45:03 +00:00
|
|
|
"once_cell",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-compute",
|
|
|
|
"polars-error",
|
|
|
|
"polars-row",
|
|
|
|
"polars-utils",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand",
|
2021-05-27 05:09:48 +00:00
|
|
|
"rand_distr",
|
2021-05-12 01:01:31 +00:00
|
|
|
"rayon",
|
2021-07-09 19:28:07 +00:00
|
|
|
"regex",
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2021-07-29 21:16:30 +00:00
|
|
|
"serde_json",
|
2022-08-12 12:10:36 +00:00
|
|
|
"smartstring",
|
2021-05-12 01:01:31 +00:00
|
|
|
"thiserror",
|
2023-08-29 22:13:34 +00:00
|
|
|
"version_check",
|
2023-01-13 15:27:37 +00:00
|
|
|
"xxhash-rust",
|
2021-05-12 01:01:31 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-error"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c18ef81979a6d9e9fdbd25ad3bf1591cbd5c474489f785af44604cf591cd636d"
|
|
|
|
dependencies = [
|
|
|
|
"avro-schema",
|
|
|
|
"polars-arrow-format",
|
|
|
|
"regex",
|
|
|
|
"simdutf8",
|
|
|
|
"thiserror",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "polars-io"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4d47f2cdd8e2a2bfc71b0d30444d4c378ddc0d6f80826746fc3c731c06251b42"
|
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"async-trait",
|
|
|
|
"atoi_simd",
|
|
|
|
"bytes",
|
|
|
|
"chrono",
|
|
|
|
"fast-float",
|
|
|
|
"flate2",
|
|
|
|
"futures",
|
|
|
|
"home",
|
|
|
|
"itoa",
|
|
|
|
"memchr",
|
|
|
|
"memmap2",
|
|
|
|
"num-traits",
|
|
|
|
"once_cell",
|
|
|
|
"percent-encoding",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-json",
|
|
|
|
"polars-parquet",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
2021-05-12 01:01:31 +00:00
|
|
|
"rayon",
|
2021-07-09 19:28:07 +00:00
|
|
|
"regex",
|
2023-12-06 00:09:34 +00:00
|
|
|
"ryu",
|
2022-05-16 07:27:43 +00:00
|
|
|
"serde",
|
2023-01-13 15:27:37 +00:00
|
|
|
"serde_json",
|
2022-11-09 22:07:38 +00:00
|
|
|
"simd-json",
|
2021-11-16 08:53:03 +00:00
|
|
|
"simdutf8",
|
2023-12-06 00:09:34 +00:00
|
|
|
"smartstring",
|
|
|
|
"tokio",
|
|
|
|
"tokio-util",
|
|
|
|
"zstd",
|
2021-05-12 01:01:31 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-json"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "af22dcdf6f94894bbedb0b0b11fbffbb1905cc6e2a43bdb3e15355f3d4cf874a"
|
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"chrono",
|
|
|
|
"fallible-streaming-iterator",
|
|
|
|
"hashbrown 0.14.3",
|
|
|
|
"indexmap",
|
|
|
|
"itoa",
|
|
|
|
"num-traits",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2023-12-06 00:09:34 +00:00
|
|
|
"ryu",
|
2023-06-13 17:05:45 +00:00
|
|
|
"simd-json",
|
2023-12-06 00:09:34 +00:00
|
|
|
"streaming-iterator",
|
2023-06-13 17:05:45 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-lazy"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ee5683b551f5e2bb004468edec0f87fd585f436c2e5f89b292c2bfee1b6f5d4f"
|
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"bitflags 2.5.0",
|
|
|
|
"glob",
|
|
|
|
"once_cell",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-io",
|
|
|
|
"polars-json",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-pipe",
|
|
|
|
"polars-plan",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
2021-05-12 01:01:31 +00:00
|
|
|
"rayon",
|
2023-05-08 15:42:53 +00:00
|
|
|
"smartstring",
|
2023-08-29 22:13:34 +00:00
|
|
|
"version_check",
|
2022-05-16 07:27:43 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-ops"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f311543e0e110d385867df25f47c1c740ee0cc854feead54262a24b0246383bb"
|
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"argminmax",
|
|
|
|
"base64 0.21.7",
|
|
|
|
"bytemuck",
|
|
|
|
"chrono",
|
|
|
|
"chrono-tz 0.8.6",
|
|
|
|
"either",
|
|
|
|
"hashbrown 0.14.3",
|
|
|
|
"hex",
|
|
|
|
"indexmap",
|
|
|
|
"jsonpath_lib_polars_vendor",
|
|
|
|
"memchr",
|
|
|
|
"num-traits",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-compute",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-json",
|
|
|
|
"polars-utils",
|
2023-12-06 00:09:34 +00:00
|
|
|
"rand",
|
|
|
|
"rand_distr",
|
|
|
|
"rayon",
|
2023-10-11 19:28:18 +00:00
|
|
|
"regex",
|
2023-01-13 15:27:37 +00:00
|
|
|
"serde",
|
2024-04-13 18:00:04 +00:00
|
|
|
"serde_json",
|
2023-05-08 15:42:53 +00:00
|
|
|
"smartstring",
|
2024-02-13 12:27:30 +00:00
|
|
|
"unicode-reverse",
|
2023-08-29 22:13:34 +00:00
|
|
|
"version_check",
|
2022-11-09 22:07:38 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-parquet"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a41cd1f445fea8377350dfa2bd216785839ce97c826299c7e0e9557c1dbe887f"
|
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"async-stream",
|
|
|
|
"base64 0.21.7",
|
2024-04-21 12:36:26 +00:00
|
|
|
"brotli 3.5.0",
|
2024-04-17 11:35:09 +00:00
|
|
|
"ethnum",
|
|
|
|
"flate2",
|
|
|
|
"futures",
|
|
|
|
"lz4",
|
|
|
|
"num-traits",
|
|
|
|
"parquet-format-safe",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2023-12-06 00:09:34 +00:00
|
|
|
"seq-macro",
|
|
|
|
"simdutf8",
|
|
|
|
"snap",
|
|
|
|
"streaming-decompression",
|
|
|
|
"zstd",
|
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-pipe"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "58f57de92c0ca9851e89cf9374cd88029f9bb2197937c34d571ec2a7ac45cca3"
|
|
|
|
dependencies = [
|
|
|
|
"crossbeam-channel",
|
|
|
|
"crossbeam-queue",
|
|
|
|
"enum_dispatch",
|
|
|
|
"hashbrown 0.14.3",
|
|
|
|
"num-traits",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-compute",
|
|
|
|
"polars-core",
|
|
|
|
"polars-io",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-plan",
|
|
|
|
"polars-row",
|
|
|
|
"polars-utils",
|
2022-11-09 22:07:38 +00:00
|
|
|
"rayon",
|
2023-01-13 15:27:37 +00:00
|
|
|
"smartstring",
|
2024-04-13 18:00:04 +00:00
|
|
|
"uuid",
|
2023-08-29 22:13:34 +00:00
|
|
|
"version_check",
|
2022-11-09 22:07:38 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-plan"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4c509bc273c402a8b1fbfa63df2b2e90ca10d30decab698c7739003817de67e1"
|
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"bytemuck",
|
|
|
|
"chrono-tz 0.8.6",
|
|
|
|
"hashbrown 0.14.3",
|
|
|
|
"once_cell",
|
|
|
|
"percent-encoding",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-io",
|
|
|
|
"polars-json",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-parquet",
|
|
|
|
"polars-time",
|
|
|
|
"polars-utils",
|
2024-04-17 11:35:09 +00:00
|
|
|
"rayon",
|
|
|
|
"recursive",
|
|
|
|
"regex",
|
|
|
|
"serde",
|
|
|
|
"smartstring",
|
|
|
|
"strum_macros 0.25.3",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "polars-row"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "695a9954f5aa273e44c497c19f806177f787ccf87cd4b3044c96a5057266a861"
|
|
|
|
dependencies = [
|
|
|
|
"bytemuck",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-error",
|
|
|
|
"polars-utils",
|
2024-04-17 11:35:09 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "polars-sql"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f7cdf3b41bda70004ed3ec78652eb690aec3db5d99dfac03fbf9995fe76a7e26"
|
|
|
|
dependencies = [
|
|
|
|
"hex",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-lazy",
|
|
|
|
"polars-plan",
|
2023-12-06 00:09:34 +00:00
|
|
|
"rand",
|
2023-05-12 12:44:35 +00:00
|
|
|
"serde",
|
|
|
|
"serde_json",
|
2024-04-10 00:31:43 +00:00
|
|
|
"sqlparser 0.39.0",
|
2023-05-12 12:44:35 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-time"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5bdc956b63e99a5ad1dabd9d397ce9ce50f703e503a5039c972968683a953d0c"
|
|
|
|
dependencies = [
|
|
|
|
"atoi",
|
|
|
|
"chrono",
|
|
|
|
"chrono-tz 0.8.6",
|
|
|
|
"now",
|
|
|
|
"once_cell",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-arrow",
|
|
|
|
"polars-core",
|
|
|
|
"polars-error",
|
|
|
|
"polars-ops",
|
|
|
|
"polars-utils",
|
2023-02-21 23:32:28 +00:00
|
|
|
"regex",
|
2022-05-16 07:27:43 +00:00
|
|
|
"serde",
|
2023-05-08 15:42:53 +00:00
|
|
|
"smartstring",
|
2022-02-27 16:10:29 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "polars-utils"
|
|
|
|
version = "0.39.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "355b126757b4a87da5248ae6eb644e99b5583a11ffc2d42e13b2b856d43e84be"
|
|
|
|
dependencies = [
|
|
|
|
"ahash 0.8.11",
|
|
|
|
"bytemuck",
|
|
|
|
"hashbrown 0.14.3",
|
|
|
|
"indexmap",
|
|
|
|
"num-traits",
|
|
|
|
"once_cell",
|
2024-04-17 17:50:17 +00:00
|
|
|
"polars-error",
|
2024-04-17 11:35:09 +00:00
|
|
|
"raw-cpuid",
|
|
|
|
"rayon",
|
|
|
|
"smartstring",
|
|
|
|
"stacker",
|
|
|
|
"sysinfo",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2022-04-04 20:45:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "pori"
|
|
|
|
version = "0.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a4a63d338dec139f56dacc692ca63ad35a6be6a797442479b55acd611d79e906"
|
|
|
|
dependencies = [
|
2023-01-04 22:50:18 +00:00
|
|
|
"nom",
|
2022-04-04 20:45:01 +00:00
|
|
|
]
|
|
|
|
|
2023-01-11 01:57:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "portable-atomic"
|
2023-12-15 10:21:30 +00:00
|
|
|
version = "1.6.0"
|
2023-05-17 23:32:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-15 10:21:30 +00:00
|
|
|
checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "powerfmt"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
|
2023-01-11 01:57:48 +00:00
|
|
|
|
2019-07-04 22:17:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ppv-lite86"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.2.17"
|
2019-07-04 22:17:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
2019-07-04 22:17:18 +00:00
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "precomputed-hash"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
|
|
|
|
|
2019-11-04 15:47:03 +00:00
|
|
|
[[package]]
|
2021-08-30 18:36:07 +00:00
|
|
|
name = "predicates"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "3.1.0"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
2023-04-14 20:14:57 +00:00
|
|
|
"anstyle",
|
2021-08-30 18:36:07 +00:00
|
|
|
"difflib",
|
|
|
|
"predicates-core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "predicates-core"
|
2023-04-14 20:14:57 +00:00
|
|
|
version = "1.0.6"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 20:14:57 +00:00
|
|
|
checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
|
2021-08-30 18:36:07 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "predicates-tree"
|
2023-04-14 20:14:57 +00:00
|
|
|
version = "1.0.9"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 20:14:57 +00:00
|
|
|
checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
|
|
|
"predicates-core",
|
2021-10-10 04:13:15 +00:00
|
|
|
"termtree",
|
2021-08-30 18:36:07 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "pretty_assertions"
|
2023-07-24 05:41:03 +00:00
|
|
|
version = "1.4.0"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-24 05:41:03 +00:00
|
|
|
checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
|
|
|
"diff",
|
2022-10-03 16:40:16 +00:00
|
|
|
"yansi",
|
2019-11-04 15:47:03 +00:00
|
|
|
]
|
|
|
|
|
`string | fill` counts clusters, not graphemes; and doesn't count ANSI escape codes (#8134)
Enhancement of new `fill` command (#7846) to handle content including
ANSI escape codes for formatting or multi-code-point Unicode grapheme
clusters.
In both of these cases, the content is (many) bytes longer than its
visible length, and `fill` was counting the extra bytes so not adding
enough fill characters.
# Description
This script:
```rust
# the teacher emoji `\u{1F9D1}\u{200D}\u{1F3EB}` is 3 code points, but only 1 print position wide.
echo "This output should be 3 print positions wide, with leading and trailing `+`"
$"\u{1F9D1}\u{200D}\u{1F3EB}" | fill -c "+" -w 3 -a "c"
echo "This output should be 3 print positions wide, with leading and trailing `+`"
$"(ansi green)a(ansi reset)" | fill -c "+" -w 3 -a c
echo ""
```
Was producing this output:
```rust
This output should be 3 print positions wide, with leading and trailing `+`
🧑🏫
This output should be 3 print positions wide, with leading and trailing `+`
a
```
After this PR, it produces this output:
```rust
This output should be 3 print positions wide, with leading and trailing `+`
+🧑🏫+
This output should be 3 print positions wide, with leading and trailing `+`
+a+
```
# User-Facing Changes
Users may have to undo fixes they may have introduced to work around the
former behavior. I have one such in my prompt string that I can now
revert.
# Tests + Formatting
Don't forget to add tests that cover your changes.
-- Done
Make sure you've run and fixed any issues with these commands:
- [x] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- [x] `cargo test --workspace` to check that all tests pass
# After Submitting
`fill` command not documented in the book, and it still talks about `str
lpad/rpad`. I'll fix.
Note added dependency on a new library `print-positions`, which is an
iterator that yields a complete print position (cluster + Ansi sequence)
per call. Should this be vendored?
2023-02-20 12:32:20 +00:00
|
|
|
[[package]]
|
|
|
|
name = "print-positions"
|
|
|
|
version = "0.6.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1df593470e3ef502e48cb0cfc9a3a61e5f61e967b78e1ed35a67ac615cfbd208"
|
|
|
|
dependencies = [
|
|
|
|
"unicode-segmentation",
|
|
|
|
]
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "proc-macro-crate"
|
|
|
|
version = "3.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
|
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"toml_edit 0.21.1",
|
2024-01-21 20:17:28 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "proc-macro-error"
|
|
|
|
version = "1.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro-error-attr",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "proc-macro-error-attr"
|
|
|
|
version = "1.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "proc-macro2"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.79"
|
2019-08-24 19:36:19 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
|
2019-08-24 19:36:19 +00:00
|
|
|
dependencies = [
|
2022-05-25 17:13:14 +00:00
|
|
|
"unicode-ident",
|
2019-08-24 19:36:19 +00:00
|
|
|
]
|
|
|
|
|
2019-06-07 07:50:26 +00:00
|
|
|
[[package]]
|
2022-01-14 06:20:53 +00:00
|
|
|
name = "procfs"
|
2023-11-20 20:22:35 +00:00
|
|
|
version = "0.16.0"
|
2022-01-14 06:20:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-11-20 20:22:35 +00:00
|
|
|
checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4"
|
2022-01-14 06:20:53 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2022-01-14 06:20:53 +00:00
|
|
|
"chrono",
|
|
|
|
"flate2",
|
|
|
|
"hex",
|
|
|
|
"lazy_static",
|
2023-11-20 20:22:35 +00:00
|
|
|
"procfs-core",
|
2024-01-05 16:19:46 +00:00
|
|
|
"rustix",
|
2023-11-20 20:22:35 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "procfs-core"
|
|
|
|
version = "0.16.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29"
|
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2023-11-20 20:22:35 +00:00
|
|
|
"chrono",
|
|
|
|
"hex",
|
2019-06-07 07:50:26 +00:00
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "psm"
|
|
|
|
version = "0.1.21"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874"
|
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
]
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ptr_meta"
|
|
|
|
version = "0.1.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1"
|
|
|
|
dependencies = [
|
|
|
|
"ptr_meta_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ptr_meta_derive"
|
|
|
|
version = "0.1.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 1.0.109",
|
|
|
|
]
|
|
|
|
|
2022-08-14 13:07:04 +00:00
|
|
|
[[package]]
|
|
|
|
name = "pure-rust-locales"
|
fix format date based on users locale (#11908)
<!--
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
Hi,
Fixes #10838, where before the `date` would be formatted incorrectly,
and was not picking `LC_TIME` for time formatting, but it picked the
first locale returned by the `sys-locale` crate instead. Now it will
format time based on `LC_TIME`. For example,
```
// my locale `nl_NL.UTF-8`
❯ date now | format date '%x %X'
20-02-24 17:17:12
$env.LC_TIME = "en_US.UTF-8"
❯ date now | format date '%x %X'
02/20/2024 05:16:28 PM
```
Note that I also changed the `default_env.nu` as otherwise the Time will
show AM/PM twice. Also reason for the `chrono` update is because this
relies on a fix to upstream repo, which i initially submitted an
[issue](https://github.com/chronotope/chrono/issues/1349#event-11765363286)
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `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))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
# 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-02-20 17:08:49 +00:00
|
|
|
version = "0.8.1"
|
2022-08-14 13:07:04 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
fix format date based on users locale (#11908)
<!--
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
Hi,
Fixes #10838, where before the `date` would be formatted incorrectly,
and was not picking `LC_TIME` for time formatting, but it picked the
first locale returned by the `sys-locale` crate instead. Now it will
format time based on `LC_TIME`. For example,
```
// my locale `nl_NL.UTF-8`
❯ date now | format date '%x %X'
20-02-24 17:17:12
$env.LC_TIME = "en_US.UTF-8"
❯ date now | format date '%x %X'
02/20/2024 05:16:28 PM
```
Note that I also changed the `default_env.nu` as otherwise the Time will
show AM/PM twice. Also reason for the `chrono` update is because this
relies on a fix to upstream repo, which i initially submitted an
[issue](https://github.com/chronotope/chrono/issues/1349#event-11765363286)
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `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))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
# 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-02-20 17:08:49 +00:00
|
|
|
checksum = "1190fd18ae6ce9e137184f207593877e70f39b015040156b1e05081cdfe3733a"
|
2022-08-14 13:07:04 +00:00
|
|
|
|
2022-04-24 22:12:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "pwd"
|
2022-07-26 02:09:32 +00:00
|
|
|
version = "1.4.0"
|
2022-04-24 22:12:57 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 02:09:32 +00:00
|
|
|
checksum = "72c71c0c79b9701efe4e1e4b563b2016dd4ee789eb99badcb09d61ac4b92e4a2"
|
2022-04-24 22:12:57 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2022-07-26 02:09:32 +00:00
|
|
|
"thiserror",
|
2022-04-24 22:12:57 +00:00
|
|
|
]
|
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "quick-error"
|
2020-02-01 06:11:42 +00:00
|
|
|
version = "1.2.3"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-02-01 06:11:42 +00:00
|
|
|
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
|
2019-05-18 01:24:13 +00:00
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "quick-error"
|
|
|
|
version = "2.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3"
|
|
|
|
|
2023-01-16 02:06:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "quick-xml"
|
2024-01-19 18:23:51 +00:00
|
|
|
version = "0.31.0"
|
2023-01-16 02:06:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-19 18:23:51 +00:00
|
|
|
checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
|
2023-01-16 02:06:31 +00:00
|
|
|
dependencies = [
|
2023-09-11 10:39:52 +00:00
|
|
|
"encoding_rs",
|
2023-01-16 02:06:31 +00:00
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
2020-04-11 19:05:59 +00:00
|
|
|
[[package]]
|
|
|
|
name = "quickcheck"
|
2021-02-05 20:54:54 +00:00
|
|
|
version = "1.0.3"
|
2020-04-11 19:05:59 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-02-05 20:54:54 +00:00
|
|
|
checksum = "588f6378e4dd99458b60ec275b4477add41ce4fa9f64dcba6f15adccb19b50d6"
|
2020-04-11 19:05:59 +00:00
|
|
|
dependencies = [
|
2022-08-09 16:44:37 +00:00
|
|
|
"env_logger",
|
2021-07-09 19:28:07 +00:00
|
|
|
"log",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand",
|
2020-04-11 19:05:59 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "quickcheck_macros"
|
2021-02-05 20:54:54 +00:00
|
|
|
version = "1.0.0"
|
2020-04-11 19:05:59 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-02-05 20:54:54 +00:00
|
|
|
checksum = "b22a693222d716a9587786f37ac3f6b4faedb5b80c23914e7303ff5a1d8016e9"
|
2020-04-11 19:05:59 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2023-04-06 20:39:54 +00:00
|
|
|
"syn 1.0.109",
|
2020-04-11 19:05:59 +00:00
|
|
|
]
|
|
|
|
|
2019-08-24 19:36:19 +00:00
|
|
|
[[package]]
|
|
|
|
name = "quote"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.0.35"
|
2019-08-24 19:36:19 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
|
2019-08-24 19:36:19 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"proc-macro2",
|
2019-08-24 19:36:19 +00:00
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "quoted_printable"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.5.0"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0"
|
2023-12-06 00:09:34 +00:00
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "radium"
|
|
|
|
version = "0.7.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
|
|
|
|
|
2021-01-19 20:24:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rand"
|
2022-03-10 20:58:11 +00:00
|
|
|
version = "0.8.5"
|
2021-01-19 20:24:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-03-10 20:58:11 +00:00
|
|
|
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
2021-01-19 20:24:27 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand_chacha",
|
|
|
|
"rand_core",
|
2020-08-12 17:20:22 +00:00
|
|
|
]
|
|
|
|
|
2021-01-19 20:24:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rand_chacha"
|
2021-06-28 10:16:03 +00:00
|
|
|
version = "0.3.1"
|
2021-01-19 20:24:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-06-28 10:16:03 +00:00
|
|
|
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
2021-01-19 20:24:27 +00:00
|
|
|
dependencies = [
|
|
|
|
"ppv-lite86",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand_core",
|
2021-01-19 20:24:27 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_core"
|
2022-10-03 16:40:16 +00:00
|
|
|
version = "0.6.4"
|
2021-01-19 20:24:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 16:40:16 +00:00
|
|
|
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
2021-01-19 20:24:27 +00:00
|
|
|
dependencies = [
|
2023-07-10 05:28:36 +00:00
|
|
|
"getrandom",
|
2019-05-18 01:24:13 +00:00
|
|
|
]
|
|
|
|
|
2021-05-27 05:09:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rand_distr"
|
2022-02-04 06:47:18 +00:00
|
|
|
version = "0.4.3"
|
2021-12-21 18:32:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-04 06:47:18 +00:00
|
|
|
checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31"
|
2021-12-21 18:32:09 +00:00
|
|
|
dependencies = [
|
|
|
|
"num-traits",
|
2023-07-10 05:28:36 +00:00
|
|
|
"rand",
|
2020-11-03 21:46:42 +00:00
|
|
|
]
|
|
|
|
|
2023-04-25 23:07:23 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ratatui"
|
2024-04-22 12:48:33 +00:00
|
|
|
version = "0.26.2"
|
2023-04-25 23:07:23 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-22 12:48:33 +00:00
|
|
|
checksum = "a564a852040e82671dc50a37d88f3aa83bbc690dfc6844cfe7a2591620206a80"
|
2023-04-25 23:07:23 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2023-04-25 23:07:23 +00:00
|
|
|
"cassowary",
|
2024-02-08 00:15:45 +00:00
|
|
|
"compact_str",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"crossterm",
|
2023-09-04 00:22:25 +00:00
|
|
|
"indoc",
|
2024-04-10 00:31:43 +00:00
|
|
|
"itertools 0.12.1",
|
2024-02-08 00:15:45 +00:00
|
|
|
"lru",
|
2023-09-04 00:22:25 +00:00
|
|
|
"paste",
|
2024-02-08 00:15:45 +00:00
|
|
|
"stability",
|
2024-03-13 18:42:31 +00:00
|
|
|
"strum",
|
2023-04-25 23:07:23 +00:00
|
|
|
"unicode-segmentation",
|
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2024-04-13 18:00:04 +00:00
|
|
|
[[package]]
|
|
|
|
name = "raw-cpuid"
|
|
|
|
version = "11.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9d86a7c4638d42c44551f4791a20e687dbb4c3de1f33c43dd71e355cd429def1"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 2.5.0",
|
|
|
|
]
|
|
|
|
|
2019-10-08 13:47:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rayon"
|
2024-03-27 06:44:17 +00:00
|
|
|
version = "1.10.0"
|
2019-10-08 13:47:30 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 06:44:17 +00:00
|
|
|
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
|
2019-10-08 13:47:30 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"either",
|
|
|
|
"rayon-core",
|
2019-10-08 13:47:30 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rayon-core"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.12.1"
|
2019-10-08 13:47:30 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
|
2019-10-08 13:47:30 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"crossbeam-deque",
|
|
|
|
"crossbeam-utils",
|
2019-10-08 13:47:30 +00:00
|
|
|
]
|
|
|
|
|
2024-04-17 11:35:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "recursive"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "0786a43debb760f491b1bc0269fe5e84155353c67482b9e60d0cfb596054b43e"
|
|
|
|
dependencies = [
|
|
|
|
"recursive-proc-macro-impl",
|
|
|
|
"stacker",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "recursive-proc-macro-impl"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "76009fbe0614077fc1a2ce255e3a1881a2e3a3527097d5dc6d8212c585e7e38b"
|
|
|
|
dependencies = [
|
|
|
|
"quote",
|
|
|
|
"syn 2.0.58",
|
|
|
|
]
|
|
|
|
|
2024-05-03 05:31:33 +00:00
|
|
|
[[package]]
|
|
|
|
name = "recvmsg"
|
|
|
|
version = "1.0.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d3edd4d5d42c92f0a659926464d4cce56b562761267ecf0f469d85b7de384175"
|
|
|
|
|
2023-04-06 20:39:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "redox_syscall"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.4.1"
|
2023-04-06 20:39:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
|
2023-04-06 20:39:31 +00:00
|
|
|
dependencies = [
|
2023-05-26 15:32:48 +00:00
|
|
|
"bitflags 1.3.2",
|
2023-04-06 20:39:31 +00:00
|
|
|
]
|
|
|
|
|
2021-01-19 20:24:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "redox_users"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.4.5"
|
2021-01-19 20:24:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
|
2021-01-19 20:24:27 +00:00
|
|
|
dependencies = [
|
2023-07-10 05:28:36 +00:00
|
|
|
"getrandom",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"libredox",
|
2022-03-27 13:01:04 +00:00
|
|
|
"thiserror",
|
2021-10-01 05:11:49 +00:00
|
|
|
]
|
|
|
|
|
2021-08-30 18:36:07 +00:00
|
|
|
[[package]]
|
|
|
|
name = "reedline"
|
2024-04-30 22:32:54 +00:00
|
|
|
version = "0.32.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "abf59e4c97b5049ba96b052cdb652368305a2eddcbce9bf1c16f9d003139eeea"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
2024-01-20 14:04:06 +00:00
|
|
|
"arboard",
|
2021-08-30 18:36:07 +00:00
|
|
|
"chrono",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"crossterm",
|
2022-02-06 00:16:21 +00:00
|
|
|
"fd-lock",
|
2024-04-10 00:31:43 +00:00
|
|
|
"itertools 0.12.1",
|
2023-07-24 11:16:18 +00:00
|
|
|
"nu-ansi-term",
|
2022-06-14 20:53:33 +00:00
|
|
|
"rusqlite",
|
2021-08-30 18:36:07 +00:00
|
|
|
"serde",
|
2022-06-14 20:53:33 +00:00
|
|
|
"serde_json",
|
2021-12-09 22:06:26 +00:00
|
|
|
"strip-ansi-escapes",
|
2024-03-13 18:42:31 +00:00
|
|
|
"strum",
|
2024-04-10 00:31:43 +00:00
|
|
|
"strum_macros 0.26.2",
|
2022-06-14 20:53:33 +00:00
|
|
|
"thiserror",
|
2021-08-30 18:36:07 +00:00
|
|
|
"unicode-segmentation",
|
|
|
|
"unicode-width",
|
2021-01-19 20:24:27 +00:00
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ref-cast"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.0.22"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "c4846d4c50d1721b1a3bef8af76924eef20d5e723647333798c1b519b3a9473f"
|
2023-12-06 00:09:34 +00:00
|
|
|
dependencies = [
|
|
|
|
"ref-cast-impl",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ref-cast-impl"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.0.22"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "5fddb4f8d99b0a2ebafc65a87a69a7b9875e4b1ae1f00db265d300ef7f28bccc"
|
2023-12-06 00:09:34 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2023-12-06 00:09:34 +00:00
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "regex"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.10.4"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
|
2019-05-10 16:59:12 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"aho-corasick",
|
2019-11-28 02:21:00 +00:00
|
|
|
"memchr",
|
2023-10-23 14:11:32 +00:00
|
|
|
"regex-automata",
|
2023-12-06 00:09:34 +00:00
|
|
|
"regex-syntax",
|
2019-05-10 16:59:12 +00:00
|
|
|
]
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "regex-automata"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.4.6"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
|
2023-07-06 15:31:31 +00:00
|
|
|
dependencies = [
|
|
|
|
"aho-corasick",
|
|
|
|
"memchr",
|
2023-12-06 00:09:34 +00:00
|
|
|
"regex-syntax",
|
2023-07-06 15:31:31 +00:00
|
|
|
]
|
|
|
|
|
2024-03-01 18:09:21 +00:00
|
|
|
[[package]]
|
|
|
|
name = "regex-lite"
|
|
|
|
version = "0.1.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
|
|
|
|
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
[[package]]
|
|
|
|
name = "regex-syntax"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.8.3"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "relative-path"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.9.2"
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "e898588f33fdd5b9420719948f9f2a32c922a246964576f71ba7f24f80610fbc"
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rend"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.4.2"
|
2024-01-21 20:17:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c"
|
2024-01-21 20:17:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"bytecheck",
|
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rfc2047-decoder"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.5"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "e90a668c463c412c3118ae1883e18b53d812c349f5af7a06de3ba4bb0c17cc73"
|
2023-12-06 00:09:34 +00:00
|
|
|
dependencies = [
|
2024-01-21 03:53:24 +00:00
|
|
|
"base64 0.21.7",
|
2023-12-06 00:09:34 +00:00
|
|
|
"charset",
|
|
|
|
"chumsky",
|
|
|
|
"memchr",
|
|
|
|
"quoted_printable",
|
|
|
|
"thiserror",
|
|
|
|
]
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rkyv"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.7.44"
|
2024-01-21 20:17:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "5cba464629b3394fc4dbc6f940ff8f5b4ff5c7aef40f29166fd4ad12acbc99c0"
|
2024-01-21 20:17:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"bitvec",
|
|
|
|
"bytecheck",
|
|
|
|
"bytes",
|
|
|
|
"hashbrown 0.12.3",
|
|
|
|
"ptr_meta",
|
|
|
|
"rend",
|
|
|
|
"rkyv_derive",
|
|
|
|
"seahash",
|
|
|
|
"tinyvec",
|
|
|
|
"uuid",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rkyv_derive"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.7.44"
|
2024-01-21 20:17:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "a7dddfff8de25e6f62b9d64e6e432bf1c6736c57d20323e15ee10435fbda7c65"
|
2024-01-21 20:17:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"syn 1.0.109",
|
|
|
|
]
|
|
|
|
|
2023-08-16 01:31:49 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rle-decode-fast"
|
|
|
|
version = "1.0.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422"
|
|
|
|
|
2022-08-21 11:13:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rmp"
|
2024-04-27 17:08:12 +00:00
|
|
|
version = "0.8.14"
|
2022-08-21 11:13:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-27 17:08:12 +00:00
|
|
|
checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4"
|
2022-08-21 11:13:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"byteorder",
|
|
|
|
"num-traits",
|
|
|
|
"paste",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rmp-serde"
|
2024-05-02 00:26:00 +00:00
|
|
|
version = "1.3.0"
|
2022-08-21 11:13:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-05-02 00:26:00 +00:00
|
|
|
checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db"
|
2022-08-21 11:13:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"byteorder",
|
|
|
|
"rmp",
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2023-11-02 15:18:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ropey"
|
|
|
|
version = "1.6.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "93411e420bcd1a75ddd1dc3caf18c23155eda2c090631a85af21ba19e97093b5"
|
|
|
|
dependencies = [
|
|
|
|
"smallvec",
|
|
|
|
"str_indices",
|
|
|
|
]
|
|
|
|
|
2019-06-11 06:26:03 +00:00
|
|
|
[[package]]
|
|
|
|
name = "roxmltree"
|
2024-02-17 15:07:50 +00:00
|
|
|
version = "0.19.0"
|
2019-06-11 06:26:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 15:07:50 +00:00
|
|
|
checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
|
2019-06-11 06:26:03 +00:00
|
|
|
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rstest"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.18.2"
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "97eeab2f3c0a199bc4be135c36c924b6590b88c377d416494288c14f2db30199"
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
dependencies = [
|
2023-08-08 17:11:05 +00:00
|
|
|
"rstest_macros",
|
2023-03-11 23:35:56 +00:00
|
|
|
"rustc_version",
|
2022-07-11 16:18:06 +00:00
|
|
|
]
|
|
|
|
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rstest_macros"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.18.2"
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "d428f8247852f894ee1be110b375111b586d4fa431f6c46e64ba5a0dcccbe605"
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"glob",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"regex",
|
|
|
|
"relative-path",
|
|
|
|
"rustc_version",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
Fix duration type to not report months or years (#9632)
<!--
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!
-->
This PR should close #8036, #9028 (in the negative) and #9118.
Fix for #9118 is a bit pedantic. As reported, the issue is:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
3yr 12month 2day 18hr 9min 33sec
```
with this PR, you now get:
```
> 2023-05-07T04:08:45+12:00 - 2019-05-10T09:59:12+12:00
208wk 1day 18hr 9min 33sec
```
Which is strictly correct, but could still fairly be called "weird date
arithmetic".
# Description
* [x] Abide by constraint that Value::Duration remains a number of
nanoseconds with no additional fields.
* [x] `to_string()` only displays weeks .. nanoseconds. Duration doesn't
have base date to compute months or years from.
* [x] `duration | into record` likewise only has fields for weeks ..
nanoseconds.
* [x] `string | into duration` now accepts compound form of duration
to_string() (e.g '2day 3hr`, not just '2day')
* [x] `duration | into string` now works (and produces the same
representation as to_string(), which may be compound).
# User-Facing Changes
## duration -> string -> duration
Now you can "round trip" an arbitrary duration value: convert it to a
string that may include multiple time units (a "compound" value), then
convert that string back into a duration. This required changes to
`string | into duration` and the addition of `duration | into string'.
```
> 2day + 3hr
2day 3hr # the "to_string()" representation (in this case, a compound value)
> 2day + 3hr | into string
2day 3hr # string value
> 2day + 3hr | into string | into duration
2day 3hr # round-trip duration -> string -> duration
```
Note that `to nuon` and `from nuon` already round-tripped durations, but
use a different string representation.
## potentially breaking changes
* string rendering of a duration no longer has 'yr' or 'month' phrases.
* record from `duration | into record` no longer has 'year' or 'month'
fields.
The excess duration is all lumped into the `week` field, which is the
largest time unit you can
convert to without knowing the datetime from which the duration was
calculated.
Scripts that depended on month or year time units on output will need to
be changed.
### Examples
```
> 365day
52wk 1day
## Used to be:
## 1yr
> 365day | into record
╭──────┬────╮
│ week │ 52 │
│ day │ 1 │
│ sign │ + │
╰──────┴────╯
## used to be:
##╭──────┬───╮
##│ year │ 1 │
##│ sign │ + │
##╰──────┴───╯
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns)
56wk 6day 6hr 7min 8sec 9ms 10µs 11ns
## used to be:
## 1yr 1month 3day 6hr 7min 8sec 9ms 10µs 11ns
## which looks reasonable, but was actually only correct in 75% of the years and 25% of the months in the last 4 years.
> (365day + 4wk + 5day + 6hr + 7min + 8sec + 9ms + 10us + 11ns) | into record
╭─────────────┬────╮
│ week │ 56 │
│ day │ 6 │
│ hour │ 6 │
│ minute │ 7 │
│ second │ 8 │
│ millisecond │ 9 │
│ microsecond │ 10 │
│ nanosecond │ 11 │
│ sign │ + │
╰─────────────┴────╯
```
Strictly speaking, these changes could break an existing user script.
Losing years and months as time units is arguably a regression in
behavior.
Also, the corrected duration calculation could break an existing script
that was calibrated using the old algorithm.
# Tests + Formatting
```
> toolkit check pr
```
- :green_circle: `toolkit fmt`
- :green_circle: `toolkit clippy`
- :green_circle: `toolkit test`
- :green_circle: `toolkit test stdlib`
# 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.
-->
---------
Co-authored-by: Bob Hyman <bobhy@localhost.localdomain>
2023-08-08 11:24:09 +00:00
|
|
|
"unicode-ident",
|
|
|
|
]
|
|
|
|
|
2022-04-14 03:15:02 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rusqlite"
|
2024-02-17 15:32:17 +00:00
|
|
|
version = "0.31.0"
|
2022-04-14 03:15:02 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-17 15:32:17 +00:00
|
|
|
checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae"
|
2022-04-14 03:15:02 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
Fix memory consumption of into sqlite (#10232)
# Description
Currently, the `into sqlite` command collects the entire input stream
into a single Value, which soaks up the entire input into memory, before
it ever tries to write anything to the DB. This is very problematic for
large inputs; for example, I tried transforming a multi-gigabyte CSV
file into SQLite, and before I knew what was happening, my system's
memory was completely exhausted, and I had to hard reboot to recover.
This PR fixes this problem by working directly with the pipeline stream,
inserting into the DB as values are read from the stream.
In order to facilitate working with the stream directly, I introduced a
new `Table` struct to store the connection and a few configuration
parameters, as well as to make it easier to lazily create the table on
the first read value.
In addition to the purely functional fixes, a few other changes were
made to the serialization and user facing behavior.
### Serialization
Much of the preexisting code was focused on generating the exact text
needed for a SQL statement. This is unneeded and less safe than using
the `rusqlite` crate's serialization for native Rust types along with
prepared statements.
### User-Facing Changes
Currently, the command is very liberal in the input types it accepts.
The strategy is basically if it is a record, try to follow its structure
and make an analogous SQL row, which is pretty reasonable. However, when
it's not a record, it basically tries to guess what the user wanted and
just makes a single column table and serializes the value into that one
column, whatever type it may be.
This has been changed so that it only accepts records as input. If the
user wants to serialize non-record types into SQL, then they must
explicitly opt into doing this by constructing a record or table with it
first. For a utility for inserting data into SQL, I think it makes more
sense to let the user choose how to convert their data, rather than make
a choice for them that may surprise them.
However, I understand this may be a controversial change. If the
maintainers don't agree, I can change this back.
#### Long switch names
The `file_name` and `table_name` long form switches are currently
snake_case and expect to be as such at the command line. These have been
changed to kebab-case to be more conventional.
# Tests + Formatting
To test the memory consumption, I used [this publicly available index of
all Wikipedia articles](https://dumps.wikimedia.org/enwiki/20230820/),
using the first 10,000, 100,000, and 1,000,000 entries, in that order. I
ran the following script to benchmark the changes against the current
stable release:
```nu
#!/usr/bin/nu
# let shellbin = $"($env.HOME)/src/nushell/target/aarch64-linux-android/release/nu"
let shellbin = "nu"
const dbpath = 'enwiki-index.db'
[10000, 100000, 1000000]
| each {|rows|
rm -f $dbpath;
do { time -f '%M %e %U %S' $shellbin -c (
$"bzip2 -cdk ~/enwiki-20230820-pages-articles-multistream-index.txt.bz2
| head -n ($rows)
| lines
| parse '{offset}:{id}:{title}'
| update cells -c [offset, id] { into int }
| into sqlite ($dbpath)"
)
}
| complete
| get stderr
| str trim
| parse '{rss_max} {real} {user} {kernel}'
| update cells -c [rss_max] { $"($in)kb" | into filesize }
| update cells -c [real, user, kernel] { $"($in)sec" | into duration }
| insert rows $rows
| roll right
}
| flatten
| to nuon
```
This yields the following results
Current stable release:
|rows|rss_max|real|user|kernel|
|-|-|-|-|-|
|10000|53.6 MiB|770ms|460ms|420ms|
|100000|209.6 MiB|6sec 940ms|3sec 740ms|4sec 380ms|
|1000000|1.7 GiB|1min 8sec 810ms|38sec 690ms|42sec 550ms|
This PR:
|rows|rss_max|real|user|kernel|
|-|-|-|-|-|
|10000|38.2 MiB|780ms|440ms|410ms|
|100000|39.8 MiB|6sec 450ms|3sec 530ms|4sec 160ms|
|1000000|39.8 MiB|1min 3sec 230ms|37sec 440ms|40sec 180ms|
# Note
I started this branch kind of at the same time as my others, but I
understand the feedback that smaller PRs are preferred. Let me know if
it would be better to split this up.
I do think the scope of the changes are on the bigger side even without
the behavior changes I mentioned, so I'm not sure if that will help this
particular PR very much, but I'm happy to oblige on request.
2024-01-16 03:41:25 +00:00
|
|
|
"chrono",
|
2022-04-14 03:15:02 +00:00
|
|
|
"fallible-iterator",
|
|
|
|
"fallible-streaming-iterator",
|
|
|
|
"hashlink",
|
|
|
|
"libsqlite3-sys",
|
|
|
|
"smallvec",
|
|
|
|
]
|
|
|
|
|
2020-08-10 17:43:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rust-embed"
|
2024-04-06 13:59:01 +00:00
|
|
|
version = "8.3.0"
|
2021-12-10 01:16:35 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-06 13:59:01 +00:00
|
|
|
checksum = "fb78f46d0066053d16d4ca7b898e9343bc3530f71c61d5ad84cd404ada068745"
|
2020-08-10 17:43:16 +00:00
|
|
|
dependencies = [
|
|
|
|
"rust-embed-impl",
|
|
|
|
"rust-embed-utils",
|
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rust-embed-impl"
|
2024-04-06 13:59:01 +00:00
|
|
|
version = "8.3.0"
|
2021-12-10 01:16:35 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-06 13:59:01 +00:00
|
|
|
checksum = "b91ac2a3c6c0520a3fb3dd89321177c3c692937c4eb21893378219da10c44fc8"
|
2020-08-10 17:43:16 +00:00
|
|
|
dependencies = [
|
2021-01-07 01:33:39 +00:00
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2020-08-10 17:43:16 +00:00
|
|
|
"rust-embed-utils",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2020-08-10 17:43:16 +00:00
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rust-embed-utils"
|
2024-04-06 13:59:01 +00:00
|
|
|
version = "8.3.0"
|
2021-12-10 01:16:35 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-06 13:59:01 +00:00
|
|
|
checksum = "86f69089032567ffff4eada41c573fc43ff466c7db7c5688b2e7969584345581"
|
2021-12-10 01:16:35 +00:00
|
|
|
dependencies = [
|
2022-10-03 16:40:16 +00:00
|
|
|
"sha2",
|
2020-08-10 17:43:16 +00:00
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
2023-02-09 11:47:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rust-ini"
|
2024-04-24 11:55:20 +00:00
|
|
|
version = "0.21.0"
|
2023-02-09 11:47:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-24 11:55:20 +00:00
|
|
|
checksum = "0d625ed57d8f49af6cfa514c42e1a71fadcff60eb0b1c517ff82fe41aa025b41"
|
2023-02-09 11:47:45 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2023-02-09 11:47:45 +00:00
|
|
|
"ordered-multimap",
|
2024-04-24 11:55:20 +00:00
|
|
|
"trim-in-place",
|
2023-02-09 11:47:45 +00:00
|
|
|
]
|
|
|
|
|
2020-08-05 21:34:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rust_decimal"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.35.0"
|
2020-08-05 21:34:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "1790d1c4c0ca81211399e0e0af16333276f375209e71a37b67698a373db5b47a"
|
2020-08-05 21:34:28 +00:00
|
|
|
dependencies = [
|
2023-07-06 15:31:31 +00:00
|
|
|
"arrayvec 0.7.4",
|
2024-01-21 20:17:28 +00:00
|
|
|
"borsh",
|
|
|
|
"bytes",
|
2022-07-26 02:09:32 +00:00
|
|
|
"num-traits",
|
2024-01-21 20:17:28 +00:00
|
|
|
"rand",
|
|
|
|
"rkyv",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
2020-08-05 21:34:28 +00:00
|
|
|
]
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rustc-demangle"
|
|
|
|
version = "0.1.23"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
|
|
|
|
|
2022-07-11 16:18:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rustc-hash"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
|
|
|
|
2020-08-12 17:20:22 +00:00
|
|
|
[[package]]
|
2021-12-02 18:05:38 +00:00
|
|
|
name = "rustc_version"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
|
|
|
|
dependencies = [
|
2023-03-11 23:35:56 +00:00
|
|
|
"semver",
|
2022-02-06 00:16:21 +00:00
|
|
|
]
|
|
|
|
|
2023-07-06 15:31:31 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rustix"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.38.32"
|
2023-07-06 15:31:31 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
|
2023-07-06 15:31:31 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2023-07-10 05:10:36 +00:00
|
|
|
"errno",
|
2023-07-06 15:31:31 +00:00
|
|
|
"libc",
|
2024-01-05 16:19:46 +00:00
|
|
|
"linux-raw-sys",
|
2023-12-06 00:09:34 +00:00
|
|
|
"windows-sys 0.52.0",
|
2023-07-06 15:31:31 +00:00
|
|
|
]
|
|
|
|
|
2022-02-03 01:24:24 +00:00
|
|
|
[[package]]
|
|
|
|
name = "rustversion"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.15"
|
2022-02-03 01:24:24 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
|
2022-02-03 01:24:24 +00:00
|
|
|
|
2021-10-01 05:11:49 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ryu"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.17"
|
2021-10-01 05:11:49 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
|
2019-05-18 01:24:13 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "same-file"
|
2020-02-01 06:11:42 +00:00
|
|
|
version = "1.0.6"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-02-01 06:11:42 +00:00
|
|
|
checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
2019-05-18 01:24:13 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"winapi-util",
|
2019-05-18 01:24:13 +00:00
|
|
|
]
|
|
|
|
|
2024-04-24 12:01:20 +00:00
|
|
|
[[package]]
|
|
|
|
name = "scc"
|
|
|
|
version = "2.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ec96560eea317a9cc4e0bb1f6a2c93c09a19b8c4fc5cb3fcc0ec1c094cd783e2"
|
|
|
|
dependencies = [
|
|
|
|
"sdd",
|
|
|
|
]
|
|
|
|
|
2019-06-08 18:09:17 +00:00
|
|
|
[[package]]
|
|
|
|
name = "schannel"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.1.23"
|
2019-06-08 18:09:17 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
|
2019-06-08 18:09:17 +00:00
|
|
|
dependencies = [
|
2024-01-21 03:53:24 +00:00
|
|
|
"windows-sys 0.52.0",
|
2019-06-08 18:09:17 +00:00
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "scoped-tls"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
|
|
|
|
|
2019-10-08 13:47:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "scopeguard"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "1.2.0"
|
2019-10-08 13:47:30 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
2019-10-08 13:47:30 +00:00
|
|
|
|
2021-09-16 14:02:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "scraper"
|
2024-03-07 00:23:28 +00:00
|
|
|
version = "0.19.0"
|
2021-09-16 14:02:30 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-07 00:23:28 +00:00
|
|
|
checksum = "5b80b33679ff7a0ea53d37f3b39de77ea0c75b12c5805ac43ec0c33b3051af1b"
|
2021-09-16 14:02:30 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"ahash 0.8.11",
|
2021-09-16 14:02:30 +00:00
|
|
|
"cssparser",
|
|
|
|
"ego-tree",
|
|
|
|
"html5ever",
|
2023-05-26 15:32:48 +00:00
|
|
|
"once_cell",
|
2021-09-16 14:02:30 +00:00
|
|
|
"selectors",
|
|
|
|
"tendril",
|
|
|
|
]
|
|
|
|
|
2024-04-24 12:01:20 +00:00
|
|
|
[[package]]
|
|
|
|
name = "sdd"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "b84345e4c9bd703274a082fb80caaa99b7612be48dfaa1dd9266577ec412309d"
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "seahash"
|
|
|
|
version = "4.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
|
|
|
|
|
2020-01-17 20:35:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "security-framework"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.10.0"
|
2020-01-17 20:35:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6"
|
2020-01-17 20:35:48 +00:00
|
|
|
dependencies = [
|
2023-05-26 15:32:48 +00:00
|
|
|
"bitflags 1.3.2",
|
2021-01-20 07:18:38 +00:00
|
|
|
"core-foundation",
|
|
|
|
"core-foundation-sys",
|
2020-04-18 03:31:57 +00:00
|
|
|
"libc",
|
2020-01-17 20:35:48 +00:00
|
|
|
"security-framework-sys",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "security-framework-sys"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.10.0"
|
2020-01-17 20:35:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef"
|
2020-01-17 20:35:48 +00:00
|
|
|
dependencies = [
|
2021-01-20 07:18:38 +00:00
|
|
|
"core-foundation-sys",
|
2020-03-20 07:53:49 +00:00
|
|
|
"libc",
|
2020-01-17 20:35:48 +00:00
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "selectors"
|
2023-07-10 05:28:36 +00:00
|
|
|
version = "0.25.0"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-10 05:28:36 +00:00
|
|
|
checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2020-11-03 21:46:42 +00:00
|
|
|
"cssparser",
|
|
|
|
"derive_more",
|
|
|
|
"fxhash",
|
2021-07-09 19:28:07 +00:00
|
|
|
"log",
|
2023-07-10 05:28:36 +00:00
|
|
|
"new_debug_unreachable",
|
|
|
|
"phf 0.10.1",
|
|
|
|
"phf_codegen 0.10.0",
|
2020-11-03 21:46:42 +00:00
|
|
|
"precomputed-hash",
|
|
|
|
"servo_arc",
|
2021-07-09 19:28:07 +00:00
|
|
|
"smallvec",
|
2020-11-03 21:46:42 +00:00
|
|
|
]
|
|
|
|
|
2021-01-07 00:38:22 +00:00
|
|
|
[[package]]
|
|
|
|
name = "semver"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.22"
|
2021-01-07 00:38:22 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
|
2022-05-25 17:13:14 +00:00
|
|
|
|
2022-11-09 22:07:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "seq-macro"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.3.5"
|
2022-11-09 22:07:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "a3f0bf26fd526d2a95683cd0f87bf103b8539e2ca1ef48ce002d67aad59aa0b4"
|
2022-11-09 22:07:38 +00:00
|
|
|
|
2019-06-03 07:41:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "serde"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.197"
|
2019-06-03 07:41:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
|
2019-07-15 18:34:44 +00:00
|
|
|
dependencies = [
|
2022-02-07 19:54:06 +00:00
|
|
|
"serde_derive",
|
2019-07-15 18:34:44 +00:00
|
|
|
]
|
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "serde_derive"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.197"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
|
2019-05-18 01:24:13 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2019-05-18 01:24:13 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde_json"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.115"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
|
2019-05-18 01:24:13 +00:00
|
|
|
dependencies = [
|
2024-01-30 14:10:19 +00:00
|
|
|
"indexmap",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2019-11-28 02:21:00 +00:00
|
|
|
"ryu",
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2019-06-03 07:41:28 +00:00
|
|
|
]
|
|
|
|
|
2023-11-02 15:18:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "serde_repr"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.19"
|
2023-11-02 15:18:57 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
|
2023-11-02 15:18:57 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2023-11-02 15:18:57 +00:00
|
|
|
]
|
|
|
|
|
2023-02-06 20:15:14 +00:00
|
|
|
[[package]]
|
|
|
|
name = "serde_spanned"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.6.5"
|
2023-02-06 20:15:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
|
2023-02-06 20:15:14 +00:00
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
2020-09-08 22:35:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "serde_urlencoded"
|
2022-02-08 13:28:21 +00:00
|
|
|
version = "0.7.1"
|
2020-09-08 22:35:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-08 13:28:21 +00:00
|
|
|
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
|
2020-09-08 22:35:45 +00:00
|
|
|
dependencies = [
|
|
|
|
"form_urlencoded",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2020-09-08 22:35:45 +00:00
|
|
|
"ryu",
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2020-09-08 22:35:45 +00:00
|
|
|
]
|
|
|
|
|
2019-06-03 07:41:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "serde_yaml"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.9.34+deprecated"
|
2019-06-03 07:41:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47"
|
2019-06-03 07:41:28 +00:00
|
|
|
dependencies = [
|
2023-12-06 00:09:34 +00:00
|
|
|
"indexmap",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2022-02-08 13:28:21 +00:00
|
|
|
"ryu",
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2022-08-10 19:56:15 +00:00
|
|
|
"unsafe-libyaml",
|
2019-06-03 07:41:28 +00:00
|
|
|
]
|
|
|
|
|
2021-02-19 01:24:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "serial_test"
|
2024-04-24 12:01:20 +00:00
|
|
|
version = "3.1.0"
|
2021-02-19 01:24:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-24 12:01:20 +00:00
|
|
|
checksum = "adb86f9315df5df6a70eae0cc22395a44e544a0d8897586820770a35ede74449"
|
2021-02-19 01:24:27 +00:00
|
|
|
dependencies = [
|
2022-07-26 02:09:32 +00:00
|
|
|
"futures",
|
|
|
|
"log",
|
2024-04-24 12:01:20 +00:00
|
|
|
"once_cell",
|
2023-08-29 22:13:34 +00:00
|
|
|
"parking_lot",
|
2024-04-24 12:01:20 +00:00
|
|
|
"scc",
|
2021-02-19 01:24:27 +00:00
|
|
|
"serial_test_derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serial_test_derive"
|
2024-04-24 12:01:20 +00:00
|
|
|
version = "3.1.0"
|
2021-02-19 01:24:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-24 12:01:20 +00:00
|
|
|
checksum = "a9bb72430492e9549b0c4596725c0f82729bff861c45aa8099c0a8e67fc3b721"
|
2021-02-19 01:24:27 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2021-02-19 01:24:27 +00:00
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "servo_arc"
|
2023-07-10 05:28:36 +00:00
|
|
|
version = "0.3.0"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-10 05:28:36 +00:00
|
|
|
checksum = "d036d71a959e00c77a63538b90a6c2390969f9772b096ea837205c6bd0491a44"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
|
|
|
"stable_deref_trait",
|
|
|
|
]
|
|
|
|
|
2020-08-12 17:20:22 +00:00
|
|
|
[[package]]
|
|
|
|
name = "sha2"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.10.8"
|
2021-12-10 23:14:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
|
2021-12-10 23:14:28 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2021-12-10 23:14:28 +00:00
|
|
|
"cpufeatures",
|
2022-10-03 16:40:16 +00:00
|
|
|
"digest",
|
2020-05-16 22:34:10 +00:00
|
|
|
]
|
|
|
|
|
2021-07-05 07:16:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "shadow-rs"
|
2024-04-06 13:58:16 +00:00
|
|
|
version = "0.27.1"
|
2021-07-05 07:16:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-06 13:58:16 +00:00
|
|
|
checksum = "7960cbd6ba74691bb15e7ebf97f7136bd02d1115f5695a58c1f31d5645750128"
|
2021-07-05 07:16:34 +00:00
|
|
|
dependencies = [
|
2022-04-04 14:59:59 +00:00
|
|
|
"const_format",
|
2021-12-01 19:48:03 +00:00
|
|
|
"is_debug",
|
2023-08-25 08:54:01 +00:00
|
|
|
"time",
|
2021-07-05 07:16:34 +00:00
|
|
|
]
|
|
|
|
|
2023-01-16 02:04:47 +00:00
|
|
|
[[package]]
|
|
|
|
name = "shell-words"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
|
|
|
|
|
2022-07-11 16:18:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "shlex"
|
2024-01-22 22:21:02 +00:00
|
|
|
version = "1.3.0"
|
2022-07-11 16:18:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-22 22:21:02 +00:00
|
|
|
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
2022-07-11 16:18:06 +00:00
|
|
|
|
2021-06-03 06:25:28 +00:00
|
|
|
[[package]]
|
2022-02-07 19:11:34 +00:00
|
|
|
name = "signal-hook"
|
2023-09-04 00:22:25 +00:00
|
|
|
version = "0.3.17"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-09-04 00:22:25 +00:00
|
|
|
checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
"signal-hook-registry",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "signal-hook-mio"
|
2022-04-15 11:04:15 +00:00
|
|
|
version = "0.2.3"
|
2021-08-30 18:36:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-04-15 11:04:15 +00:00
|
|
|
checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2023-07-05 12:14:55 +00:00
|
|
|
"mio",
|
2021-08-30 18:36:07 +00:00
|
|
|
"signal-hook",
|
2020-01-27 02:51:46 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "signal-hook-registry"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "1.4.1"
|
2020-01-27 02:51:46 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1"
|
2020-01-27 02:51:46 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2022-11-09 22:07:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "simd-json"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.13.9"
|
2022-11-09 22:07:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "b0b84c23a1066e1d650ebc99aa8fb9f8ed0ab96fd36e2e836173c92fc9fb29bc"
|
2022-11-09 22:07:38 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"ahash 0.8.11",
|
2023-10-07 11:58:26 +00:00
|
|
|
"getrandom",
|
2022-11-09 22:07:38 +00:00
|
|
|
"halfbrown",
|
2023-01-13 15:27:37 +00:00
|
|
|
"lexical-core",
|
2023-06-13 17:05:45 +00:00
|
|
|
"once_cell",
|
2023-12-06 00:09:34 +00:00
|
|
|
"ref-cast",
|
2022-11-09 22:07:38 +00:00
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"simdutf8",
|
|
|
|
"value-trait",
|
|
|
|
]
|
|
|
|
|
2021-11-16 08:53:03 +00:00
|
|
|
[[package]]
|
|
|
|
name = "simdutf8"
|
2022-04-15 11:04:15 +00:00
|
|
|
version = "0.1.4"
|
2021-11-16 08:53:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-04-15 11:04:15 +00:00
|
|
|
checksum = "f27f6278552951f1f2b8cf9da965d10969b2efdea95a6ec47987ab46edfe263a"
|
2021-11-16 08:53:03 +00:00
|
|
|
|
2023-03-02 19:05:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "similar"
|
2024-04-07 21:50:11 +00:00
|
|
|
version = "2.5.0"
|
2023-03-02 19:05:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-07 21:50:11 +00:00
|
|
|
checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640"
|
2023-03-02 19:05:18 +00:00
|
|
|
|
2022-08-09 16:44:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "simplelog"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.12.2"
|
2022-08-09 16:44:37 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0"
|
2022-08-09 16:44:37 +00:00
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
"termcolor",
|
2023-08-25 08:54:01 +00:00
|
|
|
"time",
|
2022-08-09 16:44:37 +00:00
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "siphasher"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.3.11"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
|
2021-11-02 03:08:05 +00:00
|
|
|
|
2019-05-23 04:30:43 +00:00
|
|
|
[[package]]
|
|
|
|
name = "slab"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.4.9"
|
2021-07-30 21:04:01 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
|
2022-07-26 02:09:32 +00:00
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
|
|
|
]
|
2021-07-30 21:04:01 +00:00
|
|
|
|
2020-08-12 17:20:22 +00:00
|
|
|
[[package]]
|
|
|
|
name = "smallvec"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.13.2"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
2019-05-18 01:24:13 +00:00
|
|
|
|
2022-08-12 12:10:36 +00:00
|
|
|
[[package]]
|
|
|
|
name = "smartstring"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
|
|
|
|
dependencies = [
|
|
|
|
"autocfg",
|
2023-05-08 15:42:53 +00:00
|
|
|
"serde",
|
2022-08-12 12:10:36 +00:00
|
|
|
"static_assertions",
|
|
|
|
"version_check",
|
|
|
|
]
|
|
|
|
|
2021-09-20 21:37:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "smawk"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.3.2"
|
2021-09-20 21:37:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
|
2021-02-04 07:20:21 +00:00
|
|
|
|
2021-05-18 19:33:10 +00:00
|
|
|
[[package]]
|
|
|
|
name = "snap"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "1.1.1"
|
2021-05-18 19:33:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
|
2021-05-18 19:33:10 +00:00
|
|
|
|
2023-10-07 11:58:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "socket2"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.5.6"
|
2023-10-07 11:58:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
|
2023-10-07 11:58:26 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-04-10 00:31:43 +00:00
|
|
|
"windows-sys 0.52.0",
|
2023-10-07 11:58:26 +00:00
|
|
|
]
|
|
|
|
|
2022-04-24 09:29:21 +00:00
|
|
|
[[package]]
|
|
|
|
name = "sqlparser"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.39.0"
|
2022-04-24 09:29:21 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "743b4dc2cbde11890ccb254a8fc9d537fa41b36da00de2a1c5e9848c9bc42bd7"
|
2022-04-24 09:29:21 +00:00
|
|
|
dependencies = [
|
|
|
|
"log",
|
2024-01-24 15:29:27 +00:00
|
|
|
]
|
|
|
|
|
2024-04-10 00:31:43 +00:00
|
|
|
[[package]]
|
|
|
|
name = "sqlparser"
|
2024-04-13 18:00:04 +00:00
|
|
|
version = "0.45.0"
|
2024-04-10 00:31:43 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-13 18:00:04 +00:00
|
|
|
checksum = "f7bbffee862a796d67959a89859d6b1046bb5016d63e23835ad0da182777bbe0"
|
2024-04-10 00:31:43 +00:00
|
|
|
dependencies = [
|
|
|
|
"log",
|
|
|
|
]
|
|
|
|
|
2024-02-08 00:15:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "stability"
|
2024-04-22 12:48:33 +00:00
|
|
|
version = "0.2.0"
|
2024-02-08 00:15:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-22 12:48:33 +00:00
|
|
|
checksum = "2ff9eaf853dec4c8802325d8b6d3dffa86cc707fd7a1a4cdbf416e13b061787a"
|
2024-02-08 00:15:45 +00:00
|
|
|
dependencies = [
|
|
|
|
"quote",
|
2024-04-22 12:48:33 +00:00
|
|
|
"syn 2.0.58",
|
2024-02-08 00:15:45 +00:00
|
|
|
]
|
|
|
|
|
2024-01-24 15:29:27 +00:00
|
|
|
[[package]]
|
2020-11-03 21:46:42 +00:00
|
|
|
name = "stable_deref_trait"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "stacker"
|
|
|
|
version = "0.1.15"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce"
|
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"cfg-if",
|
|
|
|
"libc",
|
|
|
|
"psm",
|
|
|
|
"winapi",
|
|
|
|
]
|
|
|
|
|
2020-09-08 22:35:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "static_assertions"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
|
|
|
|
2023-11-02 15:18:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "str_indices"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.4.3"
|
2023-11-02 15:18:57 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "e9557cb6521e8d009c51a8666f09356f4b817ba9ba0981a305bd86aee47bd35c"
|
2023-11-02 15:18:57 +00:00
|
|
|
|
2020-06-16 21:17:32 +00:00
|
|
|
[[package]]
|
2021-11-16 08:53:03 +00:00
|
|
|
name = "streaming-decompression"
|
2022-10-03 16:40:16 +00:00
|
|
|
version = "0.1.2"
|
2021-11-16 08:53:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 16:40:16 +00:00
|
|
|
checksum = "bf6cc3b19bfb128a8ad11026086e31d3ce9ad23f8ea37354b31383a187c44cf3"
|
2021-11-16 08:53:03 +00:00
|
|
|
dependencies = [
|
|
|
|
"fallible-streaming-iterator",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
2021-09-15 19:10:12 +00:00
|
|
|
name = "streaming-iterator"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.1.9"
|
2021-09-15 19:10:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520"
|
2021-09-15 19:10:12 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "strength_reduce"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.2.4"
|
2021-09-15 19:10:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82"
|
2021-09-15 19:10:12 +00:00
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "string_cache"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.8.7"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
|
|
|
"new_debug_unreachable",
|
2022-04-15 11:04:15 +00:00
|
|
|
"once_cell",
|
2023-08-29 22:13:34 +00:00
|
|
|
"parking_lot",
|
2022-02-08 13:28:21 +00:00
|
|
|
"phf_shared 0.10.0",
|
2020-11-03 21:46:42 +00:00
|
|
|
"precomputed-hash",
|
2021-08-28 03:34:11 +00:00
|
|
|
"serde",
|
2020-11-03 21:46:42 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "string_cache_codegen"
|
2022-04-15 11:04:15 +00:00
|
|
|
version = "0.5.2"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-04-15 11:04:15 +00:00
|
|
|
checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
2022-04-15 11:04:15 +00:00
|
|
|
"phf_generator 0.10.0",
|
|
|
|
"phf_shared 0.10.0",
|
2020-11-03 21:46:42 +00:00
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2020-11-03 21:46:42 +00:00
|
|
|
]
|
|
|
|
|
2019-11-16 20:02:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "strip-ansi-escapes"
|
2023-08-09 17:33:07 +00:00
|
|
|
version = "0.2.0"
|
2019-11-16 20:02:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-09 17:33:07 +00:00
|
|
|
checksum = "55ff8ef943b384c414f54aefa961dd2bd853add74ec75e7ac74cf91dba62bcfa"
|
2019-11-16 20:02:26 +00:00
|
|
|
dependencies = [
|
2023-08-08 20:20:37 +00:00
|
|
|
"vte 0.11.1",
|
2019-11-16 20:02:26 +00:00
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "strsim"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.11.1"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
|
2023-07-10 11:04:49 +00:00
|
|
|
[[package]]
|
2024-02-08 00:15:45 +00:00
|
|
|
name = "strum"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.26.2"
|
2024-02-08 00:15:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
|
2023-09-04 00:22:25 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"strum_macros 0.26.2",
|
2023-09-04 00:22:25 +00:00
|
|
|
]
|
2023-07-10 11:04:49 +00:00
|
|
|
|
2022-02-03 01:24:24 +00:00
|
|
|
[[package]]
|
|
|
|
name = "strum_macros"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.25.3"
|
2022-02-03 01:24:24 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0"
|
2022-02-03 01:24:24 +00:00
|
|
|
dependencies = [
|
2024-03-21 19:17:30 +00:00
|
|
|
"heck 0.4.1",
|
2022-02-03 01:24:24 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"rustversion",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2023-07-10 11:04:49 +00:00
|
|
|
]
|
|
|
|
|
2024-02-08 00:15:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "strum_macros"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.26.2"
|
2024-02-08 00:15:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
|
2024-02-08 00:15:45 +00:00
|
|
|
dependencies = [
|
2024-03-21 19:17:30 +00:00
|
|
|
"heck 0.4.1",
|
2024-02-08 00:15:45 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"rustversion",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2024-02-08 00:15:45 +00:00
|
|
|
]
|
|
|
|
|
2021-03-03 18:18:11 +00:00
|
|
|
[[package]]
|
2021-09-20 21:37:26 +00:00
|
|
|
name = "supports-color"
|
2024-02-08 01:26:18 +00:00
|
|
|
version = "3.0.0"
|
2021-09-20 21:37:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 01:26:18 +00:00
|
|
|
checksum = "9829b314621dfc575df4e409e79f9d6a66a3bd707ab73f23cb4aa3a854ac854f"
|
2021-09-20 21:37:26 +00:00
|
|
|
dependencies = [
|
2021-09-22 23:49:39 +00:00
|
|
|
"is_ci",
|
2021-09-20 21:37:26 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "supports-hyperlinks"
|
2024-02-08 01:26:18 +00:00
|
|
|
version = "3.0.0"
|
2021-09-20 21:37:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 01:26:18 +00:00
|
|
|
checksum = "2c0a1e5168041f5f3ff68ff7d95dcb9c8749df29f6e7e89ada40dd4c9de404ee"
|
2021-09-20 21:37:26 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "supports-unicode"
|
2024-02-08 01:26:18 +00:00
|
|
|
version = "3.0.0"
|
2021-09-20 21:37:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-08 01:26:18 +00:00
|
|
|
checksum = "b7401a30af6cb5818bb64852270bb722533397edcfc7344954a38f420819ece2"
|
2021-03-03 18:18:11 +00:00
|
|
|
|
2020-10-12 13:03:00 +00:00
|
|
|
[[package]]
|
|
|
|
name = "sxd-document"
|
|
|
|
version = "0.3.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "94d82f37be9faf1b10a82c4bd492b74f698e40082f0f40de38ab275f31d42078"
|
|
|
|
dependencies = [
|
|
|
|
"peresil",
|
|
|
|
"typed-arena",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "sxd-xpath"
|
|
|
|
version = "0.4.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "36e39da5d30887b5690e29de4c5ebb8ddff64ebd9933f98a01daaa4fd11b36ea"
|
|
|
|
dependencies = [
|
|
|
|
"peresil",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
"quick-error 1.2.3",
|
2020-10-12 13:03:00 +00:00
|
|
|
"sxd-document",
|
|
|
|
]
|
|
|
|
|
2021-01-11 17:53:58 +00:00
|
|
|
[[package]]
|
|
|
|
name = "syn"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "1.0.109"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
2019-05-10 16:59:12 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2022-05-25 17:13:14 +00:00
|
|
|
"unicode-ident",
|
2019-05-10 16:59:12 +00:00
|
|
|
]
|
|
|
|
|
2023-04-06 20:39:54 +00:00
|
|
|
[[package]]
|
|
|
|
name = "syn"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.0.58"
|
2023-04-06 20:39:54 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
|
2023-04-06 20:39:54 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"unicode-ident",
|
|
|
|
]
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "syn_derive"
|
|
|
|
version = "0.1.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b"
|
|
|
|
dependencies = [
|
|
|
|
"proc-macro-error",
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2024-01-21 20:17:28 +00:00
|
|
|
]
|
|
|
|
|
2020-03-20 19:35:09 +00:00
|
|
|
[[package]]
|
2021-05-26 23:02:24 +00:00
|
|
|
name = "sys-locale"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.3.1"
|
2021-05-26 23:02:24 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "e801cf239ecd6ccd71f03d270d67dd53d13e90aab208bf4b8fe4ad957ea949b0"
|
2021-05-26 23:02:24 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2024-01-05 11:31:29 +00:00
|
|
|
[[package]]
|
|
|
|
name = "sysinfo"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.30.9"
|
2024-01-05 11:31:29 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "e9a84fe4cfc513b41cb2596b624e561ec9e7e1c4b46328e496ed56a53514ef2a"
|
2024-01-05 11:31:29 +00:00
|
|
|
dependencies = [
|
|
|
|
"cfg-if",
|
|
|
|
"core-foundation-sys",
|
|
|
|
"libc",
|
|
|
|
"ntapi",
|
|
|
|
"once_cell",
|
|
|
|
"rayon",
|
|
|
|
"windows 0.52.0",
|
|
|
|
]
|
|
|
|
|
2022-07-06 19:57:40 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tabled"
|
2023-08-04 18:50:47 +00:00
|
|
|
version = "0.14.0"
|
2022-07-22 15:33:29 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-08-04 18:50:47 +00:00
|
|
|
checksum = "dfe9c3632da101aba5131ed63f9eed38665f8b3c68703a6bb18124835c1a5d22"
|
2022-07-06 19:57:40 +00:00
|
|
|
dependencies = [
|
2023-07-10 07:24:08 +00:00
|
|
|
"ansi-str",
|
2023-04-26 18:56:10 +00:00
|
|
|
"ansitok",
|
2022-07-06 19:57:40 +00:00
|
|
|
"papergrid",
|
|
|
|
"unicode-width",
|
|
|
|
]
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tap"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
|
|
|
|
|
2023-05-08 15:42:53 +00:00
|
|
|
[[package]]
|
|
|
|
name = "target-features"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.6"
|
2023-05-08 15:42:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c1bbb9f3c5c463a01705937a24fdabc5047929ac764b2d5b9cf681c1f5041ed5"
|
2023-05-08 15:42:53 +00:00
|
|
|
|
2019-06-08 18:09:17 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tempfile"
|
2024-03-25 21:51:50 +00:00
|
|
|
version = "3.10.1"
|
2019-06-08 18:09:17 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 21:51:50 +00:00
|
|
|
checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
|
2021-08-30 18:36:07 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2022-02-08 13:28:21 +00:00
|
|
|
"fastrand",
|
2024-01-05 16:19:46 +00:00
|
|
|
"rustix",
|
2024-01-21 03:53:24 +00:00
|
|
|
"windows-sys 0.52.0",
|
2019-06-08 18:09:17 +00:00
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tendril"
|
2022-04-15 11:04:15 +00:00
|
|
|
version = "0.4.3"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-04-15 11:04:15 +00:00
|
|
|
checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
|
2020-11-03 21:46:42 +00:00
|
|
|
dependencies = [
|
|
|
|
"futf",
|
|
|
|
"mac",
|
|
|
|
"utf-8",
|
|
|
|
]
|
|
|
|
|
2019-05-26 06:54:41 +00:00
|
|
|
[[package]]
|
|
|
|
name = "termcolor"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.4.1"
|
2019-05-26 06:54:41 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
|
2019-05-26 06:54:41 +00:00
|
|
|
dependencies = [
|
2020-01-17 20:35:48 +00:00
|
|
|
"winapi-util",
|
2019-05-26 06:54:41 +00:00
|
|
|
]
|
|
|
|
|
2023-09-18 05:50:17 +00:00
|
|
|
[[package]]
|
|
|
|
name = "terminal_size"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
|
|
|
|
dependencies = [
|
2024-01-05 16:19:46 +00:00
|
|
|
"rustix",
|
2023-09-18 05:50:17 +00:00
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
2021-10-10 04:13:15 +00:00
|
|
|
[[package]]
|
|
|
|
name = "termtree"
|
2023-04-14 20:14:57 +00:00
|
|
|
version = "0.4.1"
|
2021-10-10 04:13:15 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 20:14:57 +00:00
|
|
|
checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
|
2021-10-10 04:13:15 +00:00
|
|
|
|
2021-09-20 21:37:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "textwrap"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.16.1"
|
2021-09-20 21:37:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
|
2021-09-20 21:37:26 +00:00
|
|
|
dependencies = [
|
|
|
|
"smawk",
|
|
|
|
"unicode-linebreak",
|
|
|
|
"unicode-width",
|
2020-06-16 21:17:32 +00:00
|
|
|
]
|
|
|
|
|
2020-01-01 06:45:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "thiserror"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.58"
|
2020-01-01 06:45:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
|
2020-01-01 06:45:27 +00:00
|
|
|
dependencies = [
|
|
|
|
"thiserror-impl",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "thiserror-impl"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.58"
|
2020-01-01 06:45:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
|
2020-01-01 06:45:27 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2020-01-01 06:45:27 +00:00
|
|
|
]
|
|
|
|
|
2022-04-24 21:43:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "thread_local"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.1.8"
|
2022-04-24 21:43:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
|
2022-04-24 21:43:18 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2022-04-24 21:43:18 +00:00
|
|
|
"once_cell",
|
|
|
|
]
|
|
|
|
|
2022-07-26 02:09:32 +00:00
|
|
|
[[package]]
|
|
|
|
name = "time"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.3.34"
|
2022-07-26 02:09:32 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
|
2022-07-26 02:09:32 +00:00
|
|
|
dependencies = [
|
2023-10-07 11:58:26 +00:00
|
|
|
"deranged",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2022-07-26 02:09:32 +00:00
|
|
|
"libc",
|
2024-04-10 00:31:43 +00:00
|
|
|
"num-conv",
|
2022-07-26 02:09:32 +00:00
|
|
|
"num_threads",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"powerfmt",
|
2023-03-11 23:35:56 +00:00
|
|
|
"serde",
|
|
|
|
"time-core",
|
2022-08-09 16:44:37 +00:00
|
|
|
"time-macros",
|
2022-07-26 02:09:32 +00:00
|
|
|
]
|
|
|
|
|
2023-03-11 23:35:56 +00:00
|
|
|
[[package]]
|
|
|
|
name = "time-core"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.1.2"
|
2023-03-11 23:35:56 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
2023-03-11 23:35:56 +00:00
|
|
|
|
2022-08-09 16:44:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "time-macros"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.17"
|
2022-08-09 16:44:37 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
|
2023-03-11 23:35:56 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"num-conv",
|
2023-03-11 23:35:56 +00:00
|
|
|
"time-core",
|
|
|
|
]
|
2022-08-09 16:44:37 +00:00
|
|
|
|
2023-06-13 18:33:00 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tiny-keccak"
|
|
|
|
version = "2.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
|
|
|
|
dependencies = [
|
|
|
|
"crunchy",
|
|
|
|
]
|
|
|
|
|
2020-06-24 17:57:27 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tinyvec"
|
2022-05-25 17:13:14 +00:00
|
|
|
version = "1.6.0"
|
2020-11-22 00:37:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-05-25 17:13:14 +00:00
|
|
|
checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
|
2020-11-22 00:37:16 +00:00
|
|
|
dependencies = [
|
|
|
|
"tinyvec_macros",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tinyvec_macros"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.1.1"
|
2020-06-24 17:57:27 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
2020-06-24 17:57:27 +00:00
|
|
|
|
2020-12-12 18:18:03 +00:00
|
|
|
[[package]]
|
|
|
|
name = "titlecase"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "2.2.1"
|
2020-12-12 18:18:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "38397a8cdb017cfeb48bf6c154d6de975ac69ffeed35980fde199d2ee0842042"
|
2020-12-12 18:18:03 +00:00
|
|
|
dependencies = [
|
2022-10-03 16:40:16 +00:00
|
|
|
"joinery",
|
2021-08-28 03:34:11 +00:00
|
|
|
"lazy_static",
|
2021-07-09 19:28:07 +00:00
|
|
|
"regex",
|
2020-08-12 17:20:22 +00:00
|
|
|
]
|
|
|
|
|
2021-07-30 21:04:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tokio"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.37.0"
|
2020-08-12 17:20:22 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
|
2020-08-12 17:20:22 +00:00
|
|
|
dependencies = [
|
2023-07-06 15:31:31 +00:00
|
|
|
"backtrace",
|
2022-01-04 02:01:18 +00:00
|
|
|
"bytes",
|
2021-07-09 19:28:07 +00:00
|
|
|
"libc",
|
2023-07-05 12:14:55 +00:00
|
|
|
"mio",
|
2021-07-09 19:28:07 +00:00
|
|
|
"num_cpus",
|
2024-03-06 22:43:08 +00:00
|
|
|
"parking_lot",
|
2021-08-28 03:34:11 +00:00
|
|
|
"pin-project-lite",
|
2024-01-21 03:53:24 +00:00
|
|
|
"socket2",
|
2023-05-17 23:32:28 +00:00
|
|
|
"windows-sys 0.48.0",
|
2020-08-12 17:20:22 +00:00
|
|
|
]
|
|
|
|
|
2021-07-09 19:28:07 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-util"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.7.10"
|
2021-07-09 19:28:07 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
|
2021-07-09 19:28:07 +00:00
|
|
|
dependencies = [
|
2022-01-04 02:01:18 +00:00
|
|
|
"bytes",
|
2021-07-09 19:28:07 +00:00
|
|
|
"futures-core",
|
|
|
|
"futures-sink",
|
2021-08-28 03:34:11 +00:00
|
|
|
"pin-project-lite",
|
|
|
|
"tokio",
|
2022-04-15 11:04:15 +00:00
|
|
|
"tracing",
|
2021-07-09 19:28:07 +00:00
|
|
|
]
|
|
|
|
|
2023-02-06 20:15:14 +00:00
|
|
|
[[package]]
|
|
|
|
name = "toml"
|
2023-09-18 05:50:30 +00:00
|
|
|
version = "0.7.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257"
|
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
|
|
|
"toml_edit 0.19.15",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.8.12"
|
2023-02-06 20:15:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
|
2023-02-06 20:15:14 +00:00
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
2024-04-10 00:31:43 +00:00
|
|
|
"toml_edit 0.22.9",
|
2023-02-06 20:15:14 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_datetime"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.6.5"
|
2023-02-06 20:15:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
|
2023-02-06 20:15:14 +00:00
|
|
|
dependencies = [
|
|
|
|
"serde",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_edit"
|
2023-09-18 05:50:30 +00:00
|
|
|
version = "0.19.15"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
|
|
|
|
dependencies = [
|
2023-12-06 00:09:34 +00:00
|
|
|
"indexmap",
|
2023-09-18 05:50:30 +00:00
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
2024-04-10 00:31:43 +00:00
|
|
|
"winnow 0.5.40",
|
2023-09-18 05:50:30 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_edit"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.21.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
|
|
|
|
dependencies = [
|
|
|
|
"indexmap",
|
|
|
|
"toml_datetime",
|
|
|
|
"winnow 0.5.40",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "toml_edit"
|
|
|
|
version = "0.22.9"
|
2023-02-06 20:15:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
|
2023-02-06 20:15:14 +00:00
|
|
|
dependencies = [
|
2023-12-06 00:09:34 +00:00
|
|
|
"indexmap",
|
2023-02-06 20:15:14 +00:00
|
|
|
"serde",
|
|
|
|
"serde_spanned",
|
|
|
|
"toml_datetime",
|
2024-04-10 00:31:43 +00:00
|
|
|
"winnow 0.6.5",
|
2023-02-06 20:15:14 +00:00
|
|
|
]
|
|
|
|
|
2020-11-22 00:37:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tower-service"
|
2022-07-26 02:09:32 +00:00
|
|
|
version = "0.3.2"
|
2020-11-22 00:37:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-07-26 02:09:32 +00:00
|
|
|
checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
|
2020-11-22 00:37:16 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tracing"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.1.40"
|
2020-11-22 00:37:16 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
|
2020-11-22 00:37:16 +00:00
|
|
|
dependencies = [
|
2021-08-28 03:34:11 +00:00
|
|
|
"pin-project-lite",
|
2020-11-22 00:37:16 +00:00
|
|
|
"tracing-core",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tracing-core"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
version = "0.1.32"
|
2021-07-30 21:04:01 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
|
2021-07-30 21:04:01 +00:00
|
|
|
dependencies = [
|
2022-07-26 02:09:32 +00:00
|
|
|
"once_cell",
|
2021-07-30 21:04:01 +00:00
|
|
|
]
|
|
|
|
|
2019-10-18 22:41:24 +00:00
|
|
|
[[package]]
|
|
|
|
name = "trash"
|
2024-02-19 02:21:46 +00:00
|
|
|
version = "3.3.1"
|
2019-05-22 07:12:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-19 02:21:46 +00:00
|
|
|
checksum = "c658458d46d9d5a153a3b5cdd88d8579ad50d4fb85d53961e4526c8fc7c55a57"
|
2019-05-22 07:12:03 +00:00
|
|
|
dependencies = [
|
2021-12-01 19:48:03 +00:00
|
|
|
"chrono",
|
|
|
|
"libc",
|
|
|
|
"log",
|
|
|
|
"objc",
|
2022-02-08 13:28:21 +00:00
|
|
|
"once_cell",
|
2021-12-01 19:48:03 +00:00
|
|
|
"scopeguard",
|
|
|
|
"url",
|
2023-03-22 13:02:03 +00:00
|
|
|
"windows 0.44.0",
|
2019-05-22 07:12:03 +00:00
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "tree_magic_mini"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "3.1.4"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "77ee137597cdb361b55a4746983e4ac1b35ab6024396a419944ad473bb915265"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"fnv",
|
2024-04-10 00:31:43 +00:00
|
|
|
"home",
|
|
|
|
"memchr",
|
2024-01-20 14:04:06 +00:00
|
|
|
"nom",
|
|
|
|
"once_cell",
|
|
|
|
"petgraph",
|
|
|
|
]
|
|
|
|
|
2024-04-24 11:55:20 +00:00
|
|
|
[[package]]
|
|
|
|
name = "trim-in-place"
|
|
|
|
version = "0.1.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "343e926fc669bc8cde4fa3129ab681c63671bae288b1f1081ceee6d9d37904fc"
|
|
|
|
|
2020-08-12 17:20:22 +00:00
|
|
|
[[package]]
|
|
|
|
name = "try-lock"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.2.5"
|
2020-08-12 17:20:22 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
2020-08-12 17:20:22 +00:00
|
|
|
|
2020-09-30 18:27:52 +00:00
|
|
|
[[package]]
|
2019-11-04 15:47:03 +00:00
|
|
|
name = "typed-arena"
|
|
|
|
version = "1.7.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 02:21:00 +00:00
|
|
|
checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d"
|
2019-11-04 15:47:03 +00:00
|
|
|
|
2019-08-11 03:01:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "typenum"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "1.17.0"
|
2019-08-11 03:01:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
2021-10-25 04:01:02 +00:00
|
|
|
|
2021-11-23 08:14:40 +00:00
|
|
|
[[package]]
|
|
|
|
name = "typetag"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.16"
|
2021-11-23 08:14:40 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "661d18414ec032a49ece2d56eee03636e43c4e8d577047ab334c0ba892e29aaf"
|
2021-11-23 08:14:40 +00:00
|
|
|
dependencies = [
|
|
|
|
"erased-serde",
|
|
|
|
"inventory",
|
|
|
|
"once_cell",
|
|
|
|
"serde",
|
|
|
|
"typetag-impl",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "typetag-impl"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.16"
|
2021-11-23 08:14:40 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "ac73887f47b9312552aa90ef477927ff014d63d1920ca8037c6c1951eab64bb1"
|
2021-11-23 08:14:40 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2021-11-23 08:14:40 +00:00
|
|
|
]
|
2019-08-11 03:01:09 +00:00
|
|
|
|
2023-11-15 23:43:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ucd-trie"
|
|
|
|
version = "0.1.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
|
|
|
|
|
2019-11-19 05:46:47 +00:00
|
|
|
[[package]]
|
|
|
|
name = "umask"
|
2023-04-14 12:15:22 +00:00
|
|
|
version = "2.1.0"
|
2019-11-19 05:46:47 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-04-14 12:15:22 +00:00
|
|
|
checksum = "ec9a46c2549e35c054e0ffe281a3a6ec0007793db4df106604d37ed3f4d73d1c"
|
|
|
|
dependencies = [
|
|
|
|
"thiserror",
|
|
|
|
]
|
2019-11-19 05:46:47 +00:00
|
|
|
|
2022-12-27 18:46:23 +00:00
|
|
|
[[package]]
|
|
|
|
name = "unicase"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "2.7.0"
|
2022-12-27 18:46:23 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
|
2022-12-27 18:46:23 +00:00
|
|
|
dependencies = [
|
|
|
|
"version_check",
|
2019-06-08 18:09:17 +00:00
|
|
|
]
|
|
|
|
|
2019-06-01 21:11:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-bidi"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "0.3.15"
|
2022-05-25 17:13:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
|
2022-05-25 17:13:14 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-ident"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "1.0.12"
|
2019-06-01 21:11:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
2019-06-01 21:11:28 +00:00
|
|
|
|
|
|
|
[[package]]
|
2021-09-20 21:37:26 +00:00
|
|
|
name = "unicode-linebreak"
|
2023-07-30 20:17:36 +00:00
|
|
|
version = "0.1.5"
|
2021-09-20 21:37:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-30 20:17:36 +00:00
|
|
|
checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
|
2021-09-20 21:37:26 +00:00
|
|
|
|
2021-12-06 17:28:11 +00:00
|
|
|
[[package]]
|
2019-06-01 21:11:28 +00:00
|
|
|
name = "unicode-normalization"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.1.23"
|
2019-06-01 21:11:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
|
2019-06-01 21:11:28 +00:00
|
|
|
dependencies = [
|
2020-06-24 17:57:27 +00:00
|
|
|
"tinyvec",
|
2019-06-01 21:11:28 +00:00
|
|
|
]
|
|
|
|
|
2024-02-13 12:27:30 +00:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-reverse"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "1.0.9"
|
2024-02-13 12:27:30 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "4b6f4888ebc23094adfb574fdca9fdc891826287a6397d2cd28802ffd6f20c76"
|
2024-02-13 12:27:30 +00:00
|
|
|
dependencies = [
|
|
|
|
"unicode-segmentation",
|
|
|
|
]
|
|
|
|
|
2019-05-10 16:59:12 +00:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-segmentation"
|
2024-02-19 01:36:31 +00:00
|
|
|
version = "1.11.0"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-02-19 01:36:31 +00:00
|
|
|
checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202"
|
2019-05-10 16:59:12 +00:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-width"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.1.11"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
|
2019-05-10 16:59:12 +00:00
|
|
|
|
2019-07-29 07:46:24 +00:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-xid"
|
2022-10-03 16:40:16 +00:00
|
|
|
version = "0.2.4"
|
2019-07-29 07:46:24 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-10-03 16:40:16 +00:00
|
|
|
checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
|
2019-07-29 07:46:24 +00:00
|
|
|
|
2022-08-10 19:56:15 +00:00
|
|
|
[[package]]
|
|
|
|
name = "unsafe-libyaml"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.11"
|
2022-08-10 19:56:15 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
|
2022-08-10 19:56:15 +00:00
|
|
|
|
2023-03-05 22:48:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "ureq"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.9.6"
|
2023-03-05 22:48:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35"
|
2023-03-05 22:48:13 +00:00
|
|
|
dependencies = [
|
2024-01-21 03:53:24 +00:00
|
|
|
"base64 0.21.7",
|
2023-03-05 22:48:13 +00:00
|
|
|
"encoding_rs",
|
|
|
|
"flate2",
|
|
|
|
"log",
|
|
|
|
"native-tls",
|
|
|
|
"once_cell",
|
|
|
|
"serde",
|
|
|
|
"serde_json",
|
|
|
|
"url",
|
|
|
|
]
|
|
|
|
|
2020-08-12 17:20:22 +00:00
|
|
|
[[package]]
|
|
|
|
name = "url"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "2.5.0"
|
2019-07-29 07:46:24 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
|
2019-07-29 07:46:24 +00:00
|
|
|
dependencies = [
|
2020-11-22 00:37:16 +00:00
|
|
|
"form_urlencoded",
|
|
|
|
"idna",
|
2021-07-09 19:28:07 +00:00
|
|
|
"percent-encoding",
|
2023-11-02 15:18:57 +00:00
|
|
|
"serde",
|
2019-07-29 07:46:24 +00:00
|
|
|
]
|
|
|
|
|
2020-11-03 21:46:42 +00:00
|
|
|
[[package]]
|
|
|
|
name = "utf-8"
|
2021-05-12 01:01:31 +00:00
|
|
|
version = "0.7.6"
|
2020-11-03 21:46:42 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-05-12 01:01:31 +00:00
|
|
|
checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9"
|
2020-11-03 21:46:42 +00:00
|
|
|
|
2020-09-08 22:35:45 +00:00
|
|
|
[[package]]
|
|
|
|
name = "utf8-width"
|
2023-12-06 00:09:34 +00:00
|
|
|
version = "0.1.7"
|
2020-09-08 22:35:45 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-06 00:09:34 +00:00
|
|
|
checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3"
|
2020-09-08 22:35:45 +00:00
|
|
|
|
2020-04-07 07:51:17 +00:00
|
|
|
[[package]]
|
|
|
|
name = "utf8parse"
|
2023-03-11 23:35:56 +00:00
|
|
|
version = "0.2.1"
|
2020-04-07 07:51:17 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-11 23:35:56 +00:00
|
|
|
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
|
2020-04-07 07:51:17 +00:00
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "uu_cp"
|
2024-03-25 21:51:50 +00:00
|
|
|
version = "0.0.25"
|
2023-10-15 19:19:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 21:51:50 +00:00
|
|
|
checksum = "fcbe045dc92209114afdfd366bd18f7b95dbf999f3eaa85ad6dca910b0be3d56"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"filetime",
|
|
|
|
"indicatif",
|
|
|
|
"libc",
|
|
|
|
"quick-error 2.0.1",
|
|
|
|
"uucore",
|
|
|
|
"walkdir",
|
|
|
|
"xattr",
|
|
|
|
]
|
|
|
|
|
2023-10-30 12:59:48 +00:00
|
|
|
[[package]]
|
|
|
|
name = "uu_mkdir"
|
2024-03-25 21:51:50 +00:00
|
|
|
version = "0.0.25"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 21:51:50 +00:00
|
|
|
checksum = "040aa4584036b2f65e05387b0ea9ac468afce1db325743ce5f350689fd9ce4ae"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"uucore",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "uu_mktemp"
|
2024-03-25 21:51:50 +00:00
|
|
|
version = "0.0.25"
|
2023-10-30 12:59:48 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 21:51:50 +00:00
|
|
|
checksum = "f240a99c36d768153874d198c43605a45c86996b576262689a0f18248cc3bc57"
|
2023-10-30 12:59:48 +00:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
"rand",
|
|
|
|
"tempfile",
|
2023-10-30 12:59:48 +00:00
|
|
|
"uucore",
|
|
|
|
]
|
|
|
|
|
Initial implementation of umv from uutils (#10822)
<!--
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
Hi,
This closes #10446 , wherein we start implementing `mv` from `uutils`.
There are some stuff to iron out, particularly
* Decide on behavior from ignored tests
* Wait for release/PRs to be approved on `uutils` side, but still can be
tested for now. See [PR
approved](https://github.com/uutils/coreutils/pull/5428), and
[pending](https://github.com/uutils/coreutils/pull/5429).
* `--progress` does not seem to work on `uutils mv` either and have not
checked whether certain `X` size has to be achieved in order for it to
appear, thus something to investigate as well, but thought it wasnt
important enough to not make the PR.
See [issue
comment](https://github.com/nushell/nushell/issues/10446#issuecomment-1764497988),
on the possible strategy to follow, mainly copy what we did with `ucp`.
I still left some comments on purpose particularly on tests, which of
course would be removed before something is decided here. :) @fdncred
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `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))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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-01-18 16:20:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "uu_mv"
|
2024-03-25 21:51:50 +00:00
|
|
|
version = "0.0.25"
|
Initial implementation of umv from uutils (#10822)
<!--
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
Hi,
This closes #10446 , wherein we start implementing `mv` from `uutils`.
There are some stuff to iron out, particularly
* Decide on behavior from ignored tests
* Wait for release/PRs to be approved on `uutils` side, but still can be
tested for now. See [PR
approved](https://github.com/uutils/coreutils/pull/5428), and
[pending](https://github.com/uutils/coreutils/pull/5429).
* `--progress` does not seem to work on `uutils mv` either and have not
checked whether certain `X` size has to be achieved in order for it to
appear, thus something to investigate as well, but thought it wasnt
important enough to not make the PR.
See [issue
comment](https://github.com/nushell/nushell/issues/10446#issuecomment-1764497988),
on the possible strategy to follow, mainly copy what we did with `ucp`.
I still left some comments on purpose particularly on tests, which of
course would be removed before something is decided here. :) @fdncred
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `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))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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-01-18 16:20:57 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 21:51:50 +00:00
|
|
|
checksum = "0c99fd7c75e6e85553c92537314be3d9a64b4927051aa1608513feea2f933022"
|
Initial implementation of umv from uutils (#10822)
<!--
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
Hi,
This closes #10446 , wherein we start implementing `mv` from `uutils`.
There are some stuff to iron out, particularly
* Decide on behavior from ignored tests
* Wait for release/PRs to be approved on `uutils` side, but still can be
tested for now. See [PR
approved](https://github.com/uutils/coreutils/pull/5428), and
[pending](https://github.com/uutils/coreutils/pull/5429).
* `--progress` does not seem to work on `uutils mv` either and have not
checked whether certain `X` size has to be achieved in order for it to
appear, thus something to investigate as well, but thought it wasnt
important enough to not make the PR.
See [issue
comment](https://github.com/nushell/nushell/issues/10446#issuecomment-1764497988),
on the possible strategy to follow, mainly copy what we did with `ucp`.
I still left some comments on purpose particularly on tests, which of
course would be removed before something is decided here. :) @fdncred
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- [X] `cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used`
to check that you're using the standard code style
- [X] `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))
- [X] `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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-01-18 16:20:57 +00:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"fs_extra",
|
|
|
|
"indicatif",
|
|
|
|
"uucore",
|
|
|
|
]
|
|
|
|
|
2024-03-25 21:51:50 +00:00
|
|
|
[[package]]
|
|
|
|
name = "uu_uname"
|
|
|
|
version = "0.0.25"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "5951832d73199636bde6c0d61cf960932b3c4450142c290375bc10c7abed6db5"
|
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"platform-info",
|
|
|
|
"uucore",
|
|
|
|
]
|
|
|
|
|
implement whoami using uutils (#10488)
<!--
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.
-->
Implements `whoami` using the `whoami` command from uutils as backend.
This is a draft because it depends on
https://github.com/uutils/coreutils/pull/5310 and a new release of
uutils needs to be made (and the paths in `Cargo.toml` should be
updated). At this point, this is more of a proof of concept 😄
Additionally, this implements a (simple and naive) conversion from the
uutils `UResult` to the nushell `ShellError`, which should help with the
integration of other utils, too. I can split that off into a separate PR
if desired.
I put this command in the "platform" category. If it should go somewhere
else, let me know!
The tests will currently fail, because I've used a local path to uutils.
Once the PR on the uutils side is merged, I'll update it to a git path
so that it can be tested and runs on more machines than just mine.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New `whoami` command. This might break some users who expect the system
`whoami` command. However, the result of this new command should be very
close, just with a nicer help message, at least for Linux users. The
default `whoami` on Windows is quite different from this implementation:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/whoami
# 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 std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-10-25 14:53:52 +00:00
|
|
|
[[package]]
|
|
|
|
name = "uu_whoami"
|
2024-03-25 21:51:50 +00:00
|
|
|
version = "0.0.25"
|
implement whoami using uutils (#10488)
<!--
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.
-->
Implements `whoami` using the `whoami` command from uutils as backend.
This is a draft because it depends on
https://github.com/uutils/coreutils/pull/5310 and a new release of
uutils needs to be made (and the paths in `Cargo.toml` should be
updated). At this point, this is more of a proof of concept 😄
Additionally, this implements a (simple and naive) conversion from the
uutils `UResult` to the nushell `ShellError`, which should help with the
integration of other utils, too. I can split that off into a separate PR
if desired.
I put this command in the "platform" category. If it should go somewhere
else, let me know!
The tests will currently fail, because I've used a local path to uutils.
Once the PR on the uutils side is merged, I'll update it to a git path
so that it can be tested and runs on more machines than just mine.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New `whoami` command. This might break some users who expect the system
`whoami` command. However, the result of this new command should be very
close, just with a nicer help message, at least for Linux users. The
default `whoami` on Windows is quite different from this implementation:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/whoami
# 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 std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-10-25 14:53:52 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 21:51:50 +00:00
|
|
|
checksum = "e3b44166eb6335aeac42744ea368cc4c32d3f2287a4ff765a5ce44d927ab8bb4"
|
implement whoami using uutils (#10488)
<!--
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.
-->
Implements `whoami` using the `whoami` command from uutils as backend.
This is a draft because it depends on
https://github.com/uutils/coreutils/pull/5310 and a new release of
uutils needs to be made (and the paths in `Cargo.toml` should be
updated). At this point, this is more of a proof of concept 😄
Additionally, this implements a (simple and naive) conversion from the
uutils `UResult` to the nushell `ShellError`, which should help with the
integration of other utils, too. I can split that off into a separate PR
if desired.
I put this command in the "platform" category. If it should go somewhere
else, let me know!
The tests will currently fail, because I've used a local path to uutils.
Once the PR on the uutils side is merged, I'll update it to a git path
so that it can be tested and runs on more machines than just mine.
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
New `whoami` command. This might break some users who expect the system
`whoami` command. However, the result of this new command should be very
close, just with a nicer help message, at least for Linux users. The
default `whoami` on Windows is quite different from this implementation:
https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/whoami
# 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 std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-10-25 14:53:52 +00:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"libc",
|
|
|
|
"uucore",
|
|
|
|
"windows-sys 0.48.0",
|
|
|
|
]
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "uucore"
|
2024-03-25 21:51:50 +00:00
|
|
|
version = "0.0.25"
|
2023-10-15 19:19:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 21:51:50 +00:00
|
|
|
checksum = "23994a722acb43dbc56877e271c9723f167ae42c4c089f909b2d7dd106c3a9b4"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"clap",
|
|
|
|
"dunce",
|
|
|
|
"glob",
|
|
|
|
"libc",
|
2024-03-27 15:43:37 +00:00
|
|
|
"nix",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
"once_cell",
|
|
|
|
"os_display",
|
|
|
|
"uucore_procs",
|
|
|
|
"walkdir",
|
|
|
|
"wild",
|
|
|
|
"winapi-util",
|
|
|
|
"windows-sys 0.48.0",
|
2024-03-23 23:46:02 +00:00
|
|
|
"xattr",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "uucore_procs"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.0.25"
|
2023-10-15 19:19:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "f7f51594832e53b11811446b1cd3567722e2906a589a5b19622c5c4720977309"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
|
|
|
"uuhelp_parser",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "uuhelp_parser"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.0.25"
|
2023-10-15 19:19:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "ac7a6832a5add86204d5a8d0ef41c5a11e3ddf61c0f1a508f69e7e3e1bf04e3f"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
|
2020-06-25 05:51:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "uuid"
|
2024-03-20 01:45:18 +00:00
|
|
|
version = "1.8.0"
|
2020-06-25 05:51:09 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-20 01:45:18 +00:00
|
|
|
checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
|
2020-06-25 05:51:09 +00:00
|
|
|
dependencies = [
|
2023-07-10 05:28:36 +00:00
|
|
|
"getrandom",
|
2024-04-10 00:31:43 +00:00
|
|
|
"serde",
|
2020-06-25 05:51:09 +00:00
|
|
|
]
|
|
|
|
|
2024-01-18 18:58:35 +00:00
|
|
|
[[package]]
|
|
|
|
name = "v_htmlescape"
|
|
|
|
version = "0.15.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c"
|
|
|
|
|
2022-11-09 22:07:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "value-trait"
|
2024-01-25 04:57:15 +00:00
|
|
|
version = "0.8.1"
|
2022-11-09 22:07:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-25 04:57:15 +00:00
|
|
|
checksum = "dad8db98c1e677797df21ba03fca7d3bf9bec3ca38db930954e4fe6e1ea27eb4"
|
2022-11-09 22:07:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"float-cmp",
|
|
|
|
"halfbrown",
|
2023-03-06 03:37:22 +00:00
|
|
|
"itoa",
|
2022-11-09 22:07:38 +00:00
|
|
|
"ryu",
|
|
|
|
]
|
|
|
|
|
2019-06-01 21:11:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "vcpkg"
|
2021-08-28 03:34:11 +00:00
|
|
|
version = "0.2.15"
|
2020-08-22 05:06:19 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-08-28 03:34:11 +00:00
|
|
|
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
|
2020-08-22 05:06:19 +00:00
|
|
|
|
2021-10-25 04:01:02 +00:00
|
|
|
[[package]]
|
|
|
|
name = "version_check"
|
2022-02-08 13:28:21 +00:00
|
|
|
version = "0.9.4"
|
2021-10-25 04:01:02 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2022-02-08 13:28:21 +00:00
|
|
|
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
2019-11-16 17:17:05 +00:00
|
|
|
|
2019-11-16 20:02:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "vte"
|
2021-08-28 12:59:09 +00:00
|
|
|
version = "0.10.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983"
|
|
|
|
dependencies = [
|
|
|
|
"arrayvec 0.5.2",
|
|
|
|
"utf8parse",
|
|
|
|
"vte_generate_state_changes",
|
|
|
|
]
|
|
|
|
|
2023-08-08 20:20:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "vte"
|
|
|
|
version = "0.11.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
|
|
|
|
dependencies = [
|
|
|
|
"utf8parse",
|
|
|
|
"vte_generate_state_changes",
|
|
|
|
]
|
|
|
|
|
2021-08-28 12:59:09 +00:00
|
|
|
[[package]]
|
|
|
|
name = "vte_generate_state_changes"
|
|
|
|
version = "0.1.1"
|
2019-11-16 20:02:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2021-08-28 12:59:09 +00:00
|
|
|
checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
|
2019-11-16 20:02:26 +00:00
|
|
|
dependencies = [
|
2021-08-28 12:59:09 +00:00
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2019-11-16 20:02:26 +00:00
|
|
|
]
|
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
2021-08-30 18:36:07 +00:00
|
|
|
name = "wait-timeout"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
|
|
|
|
dependencies = [
|
|
|
|
"libc",
|
|
|
|
]
|
|
|
|
|
2021-12-10 01:16:35 +00:00
|
|
|
[[package]]
|
2019-05-18 01:24:13 +00:00
|
|
|
name = "walkdir"
|
2024-03-25 21:51:50 +00:00
|
|
|
version = "2.5.0"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-25 21:51:50 +00:00
|
|
|
checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
|
2019-05-18 01:24:13 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"same-file",
|
|
|
|
"winapi-util",
|
2019-05-18 01:24:13 +00:00
|
|
|
]
|
|
|
|
|
2020-08-12 17:20:22 +00:00
|
|
|
[[package]]
|
|
|
|
name = "want"
|
2023-07-06 15:31:31 +00:00
|
|
|
version = "0.3.1"
|
2020-08-12 17:20:22 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-07-06 15:31:31 +00:00
|
|
|
checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
|
2020-08-12 17:20:22 +00:00
|
|
|
dependencies = [
|
2021-07-09 19:28:07 +00:00
|
|
|
"try-lock",
|
2020-08-12 17:20:22 +00:00
|
|
|
]
|
|
|
|
|
2022-03-27 13:01:04 +00:00
|
|
|
[[package]]
|
|
|
|
name = "wasi"
|
|
|
|
version = "0.11.0+wasi-snapshot-preview1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
|
|
|
|
2019-06-08 18:09:17 +00:00
|
|
|
[[package]]
|
2019-08-24 19:36:19 +00:00
|
|
|
name = "wasm-bindgen"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.92"
|
2019-06-08 18:09:17 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
|
2021-12-09 19:19:36 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2019-11-28 02:21:00 +00:00
|
|
|
"wasm-bindgen-macro",
|
2019-06-08 18:09:17 +00:00
|
|
|
]
|
|
|
|
|
2019-07-04 22:17:18 +00:00
|
|
|
[[package]]
|
2019-08-24 19:36:19 +00:00
|
|
|
name = "wasm-bindgen-backend"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.92"
|
2019-07-04 22:17:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
|
2019-07-04 22:17:18 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"bumpalo",
|
2021-07-09 19:28:07 +00:00
|
|
|
"log",
|
2022-07-26 02:09:32 +00:00
|
|
|
"once_cell",
|
2019-11-28 02:21:00 +00:00
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2019-11-28 02:21:00 +00:00
|
|
|
"wasm-bindgen-shared",
|
2019-07-04 22:17:18 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-macro"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.92"
|
2019-07-04 22:17:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
|
2019-07-04 22:17:18 +00:00
|
|
|
dependencies = [
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2019-11-28 02:21:00 +00:00
|
|
|
"wasm-bindgen-macro-support",
|
2019-07-04 22:17:18 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-macro-support"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.92"
|
2019-07-04 22:17:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
|
2019-07-04 22:17:18 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"proc-macro2",
|
2021-08-28 03:34:11 +00:00
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
2019-11-28 02:21:00 +00:00
|
|
|
"wasm-bindgen-backend",
|
|
|
|
"wasm-bindgen-shared",
|
2019-07-04 22:17:18 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wasm-bindgen-shared"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.2.92"
|
2019-08-24 19:36:19 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
|
2019-08-24 19:36:19 +00:00
|
|
|
|
2022-04-04 20:45:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "wax"
|
2023-10-09 12:31:50 +00:00
|
|
|
version = "0.6.0"
|
2022-04-04 20:45:01 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-09 12:31:50 +00:00
|
|
|
checksum = "8d12a78aa0bab22d2f26ed1a96df7ab58e8a93506a3e20adb47c51a93b4e1357"
|
2022-04-04 20:45:01 +00:00
|
|
|
dependencies = [
|
|
|
|
"const_format",
|
2023-10-09 12:31:50 +00:00
|
|
|
"itertools 0.11.0",
|
2023-01-04 22:50:18 +00:00
|
|
|
"nom",
|
2022-04-04 20:45:01 +00:00
|
|
|
"pori",
|
|
|
|
"regex",
|
|
|
|
"thiserror",
|
|
|
|
"walkdir",
|
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "wayland-backend"
|
2024-01-31 14:06:59 +00:00
|
|
|
version = "0.3.3"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-31 14:06:59 +00:00
|
|
|
checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
|
|
|
"downcast-rs",
|
2024-01-31 14:06:59 +00:00
|
|
|
"rustix",
|
2024-01-20 14:04:06 +00:00
|
|
|
"scoped-tls",
|
|
|
|
"smallvec",
|
|
|
|
"wayland-sys",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-client"
|
2024-01-31 14:06:59 +00:00
|
|
|
version = "0.31.2"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-31 14:06:59 +00:00
|
|
|
checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2024-01-31 14:06:59 +00:00
|
|
|
"rustix",
|
2024-01-20 14:04:06 +00:00
|
|
|
"wayland-backend",
|
|
|
|
"wayland-scanner",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-protocols"
|
2024-01-31 14:06:59 +00:00
|
|
|
version = "0.31.2"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-31 14:06:59 +00:00
|
|
|
checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2024-01-20 14:04:06 +00:00
|
|
|
"wayland-backend",
|
|
|
|
"wayland-client",
|
|
|
|
"wayland-scanner",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-protocols-wlr"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
|
|
|
|
dependencies = [
|
2024-04-10 00:31:43 +00:00
|
|
|
"bitflags 2.5.0",
|
2024-01-20 14:04:06 +00:00
|
|
|
"wayland-backend",
|
|
|
|
"wayland-client",
|
|
|
|
"wayland-protocols",
|
|
|
|
"wayland-scanner",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-scanner"
|
2024-01-31 14:06:59 +00:00
|
|
|
version = "0.31.1"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-31 14:06:59 +00:00
|
|
|
checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
2024-01-31 14:06:59 +00:00
|
|
|
"quick-xml",
|
2024-01-20 14:04:06 +00:00
|
|
|
"quote",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "wayland-sys"
|
|
|
|
version = "0.31.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af"
|
|
|
|
dependencies = [
|
|
|
|
"dlib",
|
|
|
|
"log",
|
|
|
|
"pkg-config",
|
|
|
|
]
|
|
|
|
|
2023-10-23 06:14:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "which"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "6.0.1"
|
2023-10-23 06:14:28 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7"
|
2023-10-23 06:14:28 +00:00
|
|
|
dependencies = [
|
|
|
|
"either",
|
|
|
|
"home",
|
2024-01-05 16:19:46 +00:00
|
|
|
"rustix",
|
2024-04-10 00:31:43 +00:00
|
|
|
"winsafe",
|
2023-10-23 06:14:28 +00:00
|
|
|
]
|
|
|
|
|
2024-05-03 05:31:33 +00:00
|
|
|
[[package]]
|
|
|
|
name = "widestring"
|
|
|
|
version = "1.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311"
|
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "wild"
|
2024-01-28 16:26:03 +00:00
|
|
|
version = "2.2.1"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-28 16:26:03 +00:00
|
|
|
checksum = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"glob",
|
|
|
|
]
|
|
|
|
|
2021-04-24 14:33:17 +00:00
|
|
|
[[package]]
|
2019-05-10 16:59:12 +00:00
|
|
|
name = "winapi"
|
2020-06-27 07:54:31 +00:00
|
|
|
version = "0.3.9"
|
2019-05-10 16:59:12 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2020-06-27 07:54:31 +00:00
|
|
|
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
2019-05-10 16:59:12 +00:00
|
|
|
dependencies = [
|
2019-11-28 02:21:00 +00:00
|
|
|
"winapi-i686-pc-windows-gnu",
|
|
|
|
"winapi-x86_64-pc-windows-gnu",
|
2019-05-10 16:59:12 +00:00
|
|
|
]
|
|
|
|
|
2019-05-22 07:12:03 +00:00
|
|
|
[[package]]
|
2019-05-10 16:59:12 +00:00
|
|
|
name = "winapi-i686-pc-windows-gnu"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-11-28 02:21:00 +00:00
|
|
|
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
2019-05-10 16:59:12 +00:00
|
|
|
|
2019-05-18 01:24:13 +00:00
|
|
|
[[package]]
|
|
|
|
name = "winapi-util"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.1.6"
|
2019-05-18 01:24:13 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
|
2019-05-18 01:24:13 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"winapi",
|
2019-05-18 01:24:13 +00:00
|
|
|
]
|
|
|
|
|
2021-05-12 01:01:31 +00:00
|
|
|
[[package]]
|
2021-12-01 19:48:03 +00:00
|
|
|
name = "winapi-x86_64-pc-windows-gnu"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
|
|
|
|
2023-01-30 02:17:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows"
|
|
|
|
version = "0.44.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9e745dab35a0c4c77aa3ce42d595e13d2003d6902d6b08c9ef5fc326d08da12b"
|
|
|
|
dependencies = [
|
2023-04-05 21:54:26 +00:00
|
|
|
"windows-targets 0.42.2",
|
2022-10-23 00:59:44 +00:00
|
|
|
]
|
|
|
|
|
2023-03-22 13:02:03 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows"
|
2023-12-21 17:49:15 +00:00
|
|
|
version = "0.52.0"
|
2023-03-22 13:02:03 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-12-21 17:49:15 +00:00
|
|
|
checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
|
2023-03-22 13:02:03 +00:00
|
|
|
dependencies = [
|
2024-03-08 00:36:28 +00:00
|
|
|
"windows-core 0.52.0",
|
|
|
|
"windows-targets 0.52.4",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows"
|
|
|
|
version = "0.54.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
|
|
|
|
dependencies = [
|
|
|
|
"windows-core 0.54.0",
|
|
|
|
"windows-targets 0.52.4",
|
2023-01-30 02:17:18 +00:00
|
|
|
]
|
|
|
|
|
2023-12-21 17:49:15 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows-core"
|
|
|
|
version = "0.52.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
|
|
|
|
dependencies = [
|
2024-03-08 00:36:28 +00:00
|
|
|
"windows-targets 0.52.4",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-core"
|
|
|
|
version = "0.54.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
|
|
|
|
dependencies = [
|
|
|
|
"windows-result",
|
|
|
|
"windows-targets 0.52.4",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-result"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "cd19df78e5168dfb0aedc343d1d1b8d422ab2db6756d2dc3fef75035402a3f64"
|
|
|
|
dependencies = [
|
|
|
|
"windows-targets 0.52.4",
|
2023-12-21 17:49:15 +00:00
|
|
|
]
|
|
|
|
|
2023-04-14 12:15:01 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows-sys"
|
|
|
|
version = "0.48.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
|
|
|
|
dependencies = [
|
2023-10-07 11:58:26 +00:00
|
|
|
"windows-targets 0.48.5",
|
2023-04-14 12:15:01 +00:00
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows-sys"
|
|
|
|
version = "0.52.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
|
|
|
dependencies = [
|
2024-03-08 00:36:28 +00:00
|
|
|
"windows-targets 0.52.4",
|
2023-12-06 00:09:34 +00:00
|
|
|
]
|
|
|
|
|
2023-01-30 02:17:18 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows-targets"
|
2023-03-22 13:02:03 +00:00
|
|
|
version = "0.42.2"
|
2023-01-30 02:17:18 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-22 13:02:03 +00:00
|
|
|
checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
|
2023-01-30 02:17:18 +00:00
|
|
|
dependencies = [
|
2023-04-05 21:54:26 +00:00
|
|
|
"windows_aarch64_gnullvm 0.42.2",
|
|
|
|
"windows_aarch64_msvc 0.42.2",
|
|
|
|
"windows_i686_gnu 0.42.2",
|
|
|
|
"windows_i686_msvc 0.42.2",
|
|
|
|
"windows_x86_64_gnu 0.42.2",
|
|
|
|
"windows_x86_64_gnullvm 0.42.2",
|
|
|
|
"windows_x86_64_msvc 0.42.2",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "windows-targets"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.48.5"
|
2023-04-05 21:54:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
|
2023-04-05 21:54:26 +00:00
|
|
|
dependencies = [
|
2023-10-07 11:58:26 +00:00
|
|
|
"windows_aarch64_gnullvm 0.48.5",
|
|
|
|
"windows_aarch64_msvc 0.48.5",
|
|
|
|
"windows_i686_gnu 0.48.5",
|
|
|
|
"windows_i686_msvc 0.48.5",
|
|
|
|
"windows_x86_64_gnu 0.48.5",
|
|
|
|
"windows_x86_64_gnullvm 0.48.5",
|
|
|
|
"windows_x86_64_msvc 0.48.5",
|
2023-01-03 18:47:37 +00:00
|
|
|
]
|
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows-targets"
|
2024-03-08 00:36:28 +00:00
|
|
|
version = "0.52.4"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-08 00:36:28 +00:00
|
|
|
checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
|
2023-12-06 00:09:34 +00:00
|
|
|
dependencies = [
|
2024-03-08 00:36:28 +00:00
|
|
|
"windows_aarch64_gnullvm 0.52.4",
|
|
|
|
"windows_aarch64_msvc 0.52.4",
|
|
|
|
"windows_i686_gnu 0.52.4",
|
|
|
|
"windows_i686_msvc 0.52.4",
|
|
|
|
"windows_x86_64_gnu 0.52.4",
|
|
|
|
"windows_x86_64_gnullvm 0.52.4",
|
|
|
|
"windows_x86_64_msvc 0.52.4",
|
2023-12-06 00:09:34 +00:00
|
|
|
]
|
|
|
|
|
2022-10-23 00:59:44 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_gnullvm"
|
2023-03-22 13:02:03 +00:00
|
|
|
version = "0.42.2"
|
2022-10-23 00:59:44 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-22 13:02:03 +00:00
|
|
|
checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
|
2022-10-23 00:59:44 +00:00
|
|
|
|
2023-04-05 21:54:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_gnullvm"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.48.5"
|
2023-04-05 21:54:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
2023-04-05 21:54:26 +00:00
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_gnullvm"
|
2024-03-08 00:36:28 +00:00
|
|
|
version = "0.52.4"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-08 00:36:28 +00:00
|
|
|
checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
|
2023-12-06 00:09:34 +00:00
|
|
|
|
2022-10-23 00:59:44 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_msvc"
|
2023-03-22 13:02:03 +00:00
|
|
|
version = "0.42.2"
|
2022-10-23 00:59:44 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-22 13:02:03 +00:00
|
|
|
checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
|
2022-10-23 00:59:44 +00:00
|
|
|
|
2023-04-05 21:54:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_msvc"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.48.5"
|
2023-04-05 21:54:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
2023-04-05 21:54:26 +00:00
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_aarch64_msvc"
|
2024-03-08 00:36:28 +00:00
|
|
|
version = "0.52.4"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-08 00:36:28 +00:00
|
|
|
checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
|
2023-12-06 00:09:34 +00:00
|
|
|
|
2022-10-23 00:59:44 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_gnu"
|
2023-03-22 13:02:03 +00:00
|
|
|
version = "0.42.2"
|
2022-10-23 00:59:44 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-22 13:02:03 +00:00
|
|
|
checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
|
2022-10-23 00:59:44 +00:00
|
|
|
|
2023-04-05 21:54:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_gnu"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.48.5"
|
2023-04-05 21:54:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
2023-04-05 21:54:26 +00:00
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_gnu"
|
2024-03-08 00:36:28 +00:00
|
|
|
version = "0.52.4"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-08 00:36:28 +00:00
|
|
|
checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
|
2023-12-06 00:09:34 +00:00
|
|
|
|
2022-10-23 00:59:44 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_msvc"
|
2023-03-22 13:02:03 +00:00
|
|
|
version = "0.42.2"
|
2022-10-23 00:59:44 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-22 13:02:03 +00:00
|
|
|
checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
|
2022-10-23 00:59:44 +00:00
|
|
|
|
2023-04-05 21:54:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_msvc"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.48.5"
|
2023-04-05 21:54:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
2023-04-05 21:54:26 +00:00
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_i686_msvc"
|
2024-03-08 00:36:28 +00:00
|
|
|
version = "0.52.4"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-08 00:36:28 +00:00
|
|
|
checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
|
2023-12-06 00:09:34 +00:00
|
|
|
|
2022-10-23 00:59:44 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnu"
|
2023-03-22 13:02:03 +00:00
|
|
|
version = "0.42.2"
|
2022-10-23 00:59:44 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-22 13:02:03 +00:00
|
|
|
checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36"
|
2022-10-23 00:59:44 +00:00
|
|
|
|
2023-04-05 21:54:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnu"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.48.5"
|
2023-04-05 21:54:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
2023-04-05 21:54:26 +00:00
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnu"
|
2024-03-08 00:36:28 +00:00
|
|
|
version = "0.52.4"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-08 00:36:28 +00:00
|
|
|
checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
|
2023-12-06 00:09:34 +00:00
|
|
|
|
2022-10-23 00:59:44 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnullvm"
|
2023-03-22 13:02:03 +00:00
|
|
|
version = "0.42.2"
|
2022-10-23 00:59:44 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-22 13:02:03 +00:00
|
|
|
checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
|
2022-10-23 00:59:44 +00:00
|
|
|
|
2023-04-05 21:54:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnullvm"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.48.5"
|
2023-04-05 21:54:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
2023-04-05 21:54:26 +00:00
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_gnullvm"
|
2024-03-08 00:36:28 +00:00
|
|
|
version = "0.52.4"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-08 00:36:28 +00:00
|
|
|
checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
|
2023-12-06 00:09:34 +00:00
|
|
|
|
2022-03-01 12:05:46 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_msvc"
|
2023-03-22 13:02:03 +00:00
|
|
|
version = "0.42.2"
|
2022-05-25 17:13:14 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-03-22 13:02:03 +00:00
|
|
|
checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
|
2022-05-25 17:13:14 +00:00
|
|
|
|
2023-04-05 21:54:26 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_msvc"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.48.5"
|
2023-04-05 21:54:26 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
2023-04-05 21:54:26 +00:00
|
|
|
|
2023-12-06 00:09:34 +00:00
|
|
|
[[package]]
|
|
|
|
name = "windows_x86_64_msvc"
|
2024-03-08 00:36:28 +00:00
|
|
|
version = "0.52.4"
|
2023-12-06 00:09:34 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-08 00:36:28 +00:00
|
|
|
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
|
2023-12-06 00:09:34 +00:00
|
|
|
|
2022-10-23 00:59:44 +00:00
|
|
|
[[package]]
|
2023-03-11 23:35:56 +00:00
|
|
|
name = "winnow"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.5.40"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
|
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "winnow"
|
|
|
|
version = "0.6.5"
|
2022-10-23 00:59:44 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
|
2023-03-11 23:35:56 +00:00
|
|
|
dependencies = [
|
|
|
|
"memchr",
|
|
|
|
]
|
2022-10-23 00:59:44 +00:00
|
|
|
|
2023-02-20 02:57:46 +00:00
|
|
|
[[package]]
|
|
|
|
name = "winreg"
|
2023-11-20 19:35:21 +00:00
|
|
|
version = "0.52.0"
|
2023-02-20 02:57:46 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-11-20 19:35:21 +00:00
|
|
|
checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
|
2023-02-20 02:57:46 +00:00
|
|
|
dependencies = [
|
2023-07-05 12:14:55 +00:00
|
|
|
"cfg-if",
|
2023-04-14 12:15:01 +00:00
|
|
|
"windows-sys 0.48.0",
|
2022-04-28 14:26:34 +00:00
|
|
|
]
|
|
|
|
|
2022-05-25 03:28:10 +00:00
|
|
|
[[package]]
|
2023-04-26 12:14:55 +00:00
|
|
|
name = "winresource"
|
2023-10-07 11:58:26 +00:00
|
|
|
version = "0.1.17"
|
2022-05-25 03:28:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-10-07 11:58:26 +00:00
|
|
|
checksum = "77e2aaaf8cfa92078c0c0375423d631f82f2f57979c2884fdd5f604a11e45329"
|
2022-05-25 03:28:10 +00:00
|
|
|
dependencies = [
|
2023-09-18 05:50:30 +00:00
|
|
|
"toml 0.7.8",
|
2023-04-26 12:14:55 +00:00
|
|
|
"version_check",
|
2022-05-25 03:28:10 +00:00
|
|
|
]
|
|
|
|
|
2024-04-10 00:31:43 +00:00
|
|
|
[[package]]
|
|
|
|
name = "winsafe"
|
|
|
|
version = "0.0.19"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "wl-clipboard-rs"
|
2024-03-27 15:43:37 +00:00
|
|
|
version = "0.8.1"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-27 15:43:37 +00:00
|
|
|
checksum = "12b41773911497b18ca8553c3daaf8ec9fe9819caf93d451d3055f69de028adb"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"derive-new",
|
|
|
|
"libc",
|
|
|
|
"log",
|
2024-03-27 15:43:37 +00:00
|
|
|
"nix",
|
2024-01-20 14:04:06 +00:00
|
|
|
"os_pipe",
|
|
|
|
"tempfile",
|
|
|
|
"thiserror",
|
|
|
|
"tree_magic_mini",
|
|
|
|
"wayland-backend",
|
|
|
|
"wayland-client",
|
|
|
|
"wayland-protocols",
|
|
|
|
"wayland-protocols-wlr",
|
|
|
|
]
|
|
|
|
|
2024-01-21 20:17:28 +00:00
|
|
|
[[package]]
|
|
|
|
name = "wyz"
|
|
|
|
version = "0.5.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
|
|
|
|
dependencies = [
|
|
|
|
"tap",
|
|
|
|
]
|
|
|
|
|
2024-01-20 14:04:06 +00:00
|
|
|
[[package]]
|
|
|
|
name = "x11rb"
|
2024-03-12 22:10:11 +00:00
|
|
|
version = "0.13.0"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-12 22:10:11 +00:00
|
|
|
checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
|
2024-01-20 14:04:06 +00:00
|
|
|
dependencies = [
|
|
|
|
"gethostname",
|
2024-03-12 22:10:11 +00:00
|
|
|
"rustix",
|
2024-01-20 14:04:06 +00:00
|
|
|
"x11rb-protocol",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "x11rb-protocol"
|
2024-03-12 22:10:11 +00:00
|
|
|
version = "0.13.0"
|
2024-01-20 14:04:06 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-03-12 22:10:11 +00:00
|
|
|
checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
|
2024-01-20 14:04:06 +00:00
|
|
|
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
[[package]]
|
|
|
|
name = "xattr"
|
2024-01-21 03:53:24 +00:00
|
|
|
version = "1.3.1"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-21 03:53:24 +00:00
|
|
|
checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
dependencies = [
|
|
|
|
"libc",
|
2024-01-21 03:53:24 +00:00
|
|
|
"linux-raw-sys",
|
|
|
|
"rustix",
|
use uutils/coreutils cp command in place of nushell's cp command (#10097)
<!--
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
Hi. Basically, this is a continuation of the work that @fdncred started.
Given some nice discussions on #9463 , and [merged uutils
PR](https://github.com/uutils/coreutils/pull/5152) from @tertsdiepraam
we have decided to give the `cp` command the `crawl` stage as it was
named.
> [!NOTE]
Given that the `uutils` crate has not made the release for the merged
PR, just make sure you checkout latest and put it in the required place
to make this PR work.
The aim of this PR is for is to see how to move forward using `uutils`
crate. In order to getting this started, I have made the current
`nushell cp tests` pass along with some extra ones I copied over from
the `uutils` repo.
With all of that being said, things that would be nice to decide, and
keep working on:
Crawl:
- Handling of certain `named` flags, with their long and short
forms(e.g. --update, --reflink, --preserve, etc), and using default
values. Maybe `-u` can already have a `default_missing_value`.
- Should we maybe just support one single option `switch` flags (see
`--backup` in code) as a contrast to the other named args.
- Complete test coverage from `uutils`. They had > 100 tests, and I
could only port like 12 as they are a bit time consuming given they
cannot be straight up copy pasted. Maybe we do not need all >100, but
maybe the more relevant to what we want.
- Refactor this code
Walk:
- Non fatal errors on `copy` from `utils`. Currently it just sends it to
stdout but errors have no span
- Better integration
An added possibility is the addition of `SyntaxShape::OneOf()` for
`Named` arguments which was briefly mentioned in the discord server, but
that is still to be decided. This could greatly improve some of the
integration. This would enable something like `cp --preserve [all
timestamp]` or `cp --preserve all` to both work.
I did not want to keep holding on this, and wait till I was happy with
the code because I think its nice if everyone can start up and suggest
refactors, but the main important part now was getting it out the door,
as if I take my sweet time this will take way longer :stuck_out_tongue:
<!--
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.
-->
# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->
# Tests + Formatting
Make sure you've run and fixed any issues with these commands:
- [X] cargo fmt --all -- --check` to check standard code formatting
(`cargo fmt --all` applies these changes)
- [X] cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- [X] cargo test --workspace` to check that all tests pass
- [X] cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` 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
> ```
-->
# 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.
-->
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-09-08 18:57:38 +00:00
|
|
|
]
|
|
|
|
|
2023-01-13 15:27:37 +00:00
|
|
|
[[package]]
|
|
|
|
name = "xxhash-rust"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.8.10"
|
2023-01-13 15:27:37 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "927da81e25be1e1a2901d59b81b37dd2efd1fc9c9345a55007f09bf5a2d3ee03"
|
2023-01-13 15:27:37 +00:00
|
|
|
|
2022-10-03 16:40:16 +00:00
|
|
|
[[package]]
|
|
|
|
name = "yansi"
|
|
|
|
version = "0.5.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
|
|
|
|
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
[[package]]
|
|
|
|
name = "zerocopy"
|
2024-01-16 06:30:22 +00:00
|
|
|
version = "0.7.32"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-16 06:30:22 +00:00
|
|
|
checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
dependencies = [
|
|
|
|
"zerocopy-derive",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "zerocopy-derive"
|
2024-01-16 06:30:22 +00:00
|
|
|
version = "0.7.32"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-01-16 06:30:22 +00:00
|
|
|
checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
dependencies = [
|
|
|
|
"proc-macro2",
|
|
|
|
"quote",
|
2024-04-10 00:31:43 +00:00
|
|
|
"syn 2.0.58",
|
Add `mktemp` command (#11005)
closes #10845
I've opened this a little prematurely to get some questions answered
before I cleanup the code.
As I started trying to better understand GNUs `mktemp` I've realized its
kind of peculiar and we might want to change its behavior to introduce
it to nushell.
#### quiet and dry run
Does it make sense to keep the `quiet` and `dry_run` flags? I don't
think so. The GNU documentation says this about the dry run flag "Using
the output of this command to create a new file is inherently unsafe, as
there is a window of time between generating the name and using it where
another process can create an object by the same name." So yeah why keep
it? As far as quiet goes, does it make sense to silence the errors in
nushell?
#### other confusing flags
According to the [gnu
docs](https://www.gnu.org/software/coreutils/manual/html_node/mktemp-invocation.html),
the `-t` flag is deprecated and the `-p`/ `--tempdir` are the same flag
with the only difference being `--tempdir` takes an optional path, Given
that, I've broken the `-p` away from `--tempdir`. Now there is one
switch `--tmpdir`/`-t` and one named param `--tmpdir-path`/`-p`.
GNU mktemp
```
-p DIR, --tmpdir[=DIR] interpret TEMPLATE relative to DIR; if DIR is not
specified, use $TMPDIR if set, else /tmp. With
this option, TEMPLATE must not be an absolute name;
unlike with -t, TEMPLATE may contain slashes, but
mktemp creates only the final component
-t interpret TEMPLATE as a single file name component,
relative to a directory: $TMPDIR, if set; else the
directory specified via -p; else /tmp [deprecated]
```
to
nushell mktemp
```
-p, --tmpdir-path <Filepath> # named param, must provide a path
-t, --tmpdir # a switch
```
Is this a terrible idea?
What should I do?
---------
Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
2023-11-18 01:30:53 +00:00
|
|
|
]
|
|
|
|
|
2021-11-19 19:23:35 +00:00
|
|
|
[[package]]
|
2019-11-17 03:18:41 +00:00
|
|
|
name = "zip"
|
2023-05-17 23:32:28 +00:00
|
|
|
version = "0.6.6"
|
2019-11-17 03:18:41 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2023-05-17 23:32:28 +00:00
|
|
|
checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261"
|
2019-11-17 03:18:41 +00:00
|
|
|
dependencies = [
|
2020-09-08 22:35:45 +00:00
|
|
|
"byteorder",
|
2019-11-28 02:21:00 +00:00
|
|
|
"crc32fast",
|
2022-12-01 19:25:13 +00:00
|
|
|
"crossbeam-utils",
|
2019-11-28 02:21:00 +00:00
|
|
|
"flate2",
|
|
|
|
]
|
2021-05-18 19:33:10 +00:00
|
|
|
|
2023-04-14 20:14:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "zstd"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "0.13.1"
|
2023-04-14 20:14:57 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a"
|
2023-04-14 20:14:57 +00:00
|
|
|
dependencies = [
|
2023-05-08 15:42:53 +00:00
|
|
|
"zstd-safe",
|
2021-05-18 19:33:10 +00:00
|
|
|
]
|
|
|
|
|
2023-04-14 20:14:57 +00:00
|
|
|
[[package]]
|
|
|
|
name = "zstd-safe"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "7.1.0"
|
2023-04-14 20:14:57 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a"
|
2023-04-14 20:14:57 +00:00
|
|
|
dependencies = [
|
|
|
|
"zstd-sys",
|
|
|
|
]
|
|
|
|
|
2021-05-18 19:33:10 +00:00
|
|
|
[[package]]
|
|
|
|
name = "zstd-sys"
|
2024-04-10 00:31:43 +00:00
|
|
|
version = "2.0.10+zstd.1.5.6"
|
2021-05-18 19:33:10 +00:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2024-04-10 00:31:43 +00:00
|
|
|
checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa"
|
2021-05-18 19:33:10 +00:00
|
|
|
dependencies = [
|
|
|
|
"cc",
|
2023-03-11 23:35:56 +00:00
|
|
|
"pkg-config",
|
2021-05-18 19:33:10 +00:00
|
|
|
]
|