nushell/crates/nu-command/Cargo.toml

137 lines
4 KiB
TOML
Raw Normal View History

[package]
authors = ["The Nushell Project Developers"]
description = "Nushell's built-in commands"
edition = "2021"
license = "MIT"
name = "nu-command"
add a new inspect command for more debugging (#8028) # Description The purpose of this command is to help to debug pipelines. It works by allowing you to inject the `inspect` command into a pipeline at any point. Then it shows you what the input description is and what the input values are that are passed into `inspect`. With each step it prints this information out while also passing the value information on to the next step in the pipeline. ![image](https://user-images.githubusercontent.com/343840/218154064-e107859b-d0da-41c6-8e34-2d717639b81c.png) This command is kind of a "hack job" because it clones maybe too much and I had to get creative in order to output two different tables. I'm sure there are many ways this can be improved or combined into other commands but I wanted to start here. Note that the `inspect` output is written to stderr and the normal nushell output is written to stdout. If we were to output both to stdout, nushell would get confused. # User-Facing 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: - `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-11 18:59:11 +00:00
repository = "https://github.com/nushell/nushell/tree/main/crates/nu-command"
version = "0.86.1"
2021-09-02 01:29:43 +00:00
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
bench = false
2021-09-02 01:29:43 +00:00
[dependencies]
nu-ansi-term = "0.49.0"
nu-cmd-base = { path = "../nu-cmd-base", version = "0.86.1" }
nu-color-config = { path = "../nu-color-config", version = "0.86.1" }
nu-engine = { path = "../nu-engine", version = "0.86.1" }
nu-glob = { path = "../nu-glob", version = "0.86.1" }
nu-json = { path = "../nu-json", version = "0.86.1" }
nu-parser = { path = "../nu-parser", version = "0.86.1" }
nu-path = { path = "../nu-path", version = "0.86.1" }
nu-pretty-hex = { path = "../nu-pretty-hex", version = "0.86.1" }
nu-protocol = { path = "../nu-protocol", version = "0.86.1" }
nu-system = { path = "../nu-system", version = "0.86.1" }
nu-table = { path = "../nu-table", version = "0.86.1" }
nu-term-grid = { path = "../nu-term-grid", version = "0.86.1" }
nu-utils = { path = "../nu-utils", version = "0.86.1" }
2023-03-14 18:46:42 +00:00
alphanumeric-sort = "1.5"
base64 = "0.21"
byteorder = "1.5"
bytesize = "1.3"
calamine = "0.22"
chrono = { version = "0.4", features = ["std", "unstable-locales"], default-features = false }
Don't use `oldtime` feature of chrono (#9577) <!-- 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 `chrono` crate enables `oldtime` feature by default, which has a vulnerability (https://rustsec.org/advisories/RUSTSEC-2020-0071). This PR tries to remove `time` v0.1.45 completely from nu and add an audit CI to check for security vulnerabilities. :hand: Wait for the following PRs: - [x] https://github.com/nushell/reedline/pull/599 - [x] https://github.com/bspeice/dtparse/pull/44 - [x] https://github.com/Byron/trash-rs/pull/75 - [x] https://gitlab.com/imp/chrono-humanize-rs/-/merge_requests/15 # 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: - `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 -A clippy::result_large_err` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass - `cargo run -- crates/nu-std/tests/run.nu` 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: sholderbach <sholderbach@users.noreply.github.com>
2023-08-25 08:54:01 +00:00
chrono-humanize = "0.2.3"
chrono-tz = "0.8"
crossterm = "0.27"
2023-10-18 21:01:14 +00:00
csv = "1.3"
dialoguer = { default-features = false, features = ["fuzzy-select"], version = "0.11" }
digest = { default-features = false, version = "0.10" }
Don't use `oldtime` feature of chrono (#9577) <!-- 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 `chrono` crate enables `oldtime` feature by default, which has a vulnerability (https://rustsec.org/advisories/RUSTSEC-2020-0071). This PR tries to remove `time` v0.1.45 completely from nu and add an audit CI to check for security vulnerabilities. :hand: Wait for the following PRs: - [x] https://github.com/nushell/reedline/pull/599 - [x] https://github.com/bspeice/dtparse/pull/44 - [x] https://github.com/Byron/trash-rs/pull/75 - [x] https://gitlab.com/imp/chrono-humanize-rs/-/merge_requests/15 # 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: - `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 -A clippy::result_large_err` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass - `cargo run -- crates/nu-std/tests/run.nu` 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: sholderbach <sholderbach@users.noreply.github.com>
2023-08-25 08:54:01 +00:00
dtparse = "2.0"
encoding_rs = "0.8"
fancy-regex = "0.11"
filesize = "0.2"
filetime = "0.2"
fs_extra = "1.3"
htmlescape = "0.3"
indexmap = "2.0"
indicatif = "0.17"
itertools = "0.11"
log = "0.4"
lscolors = { version = "0.15", default-features = false, features = ["nu-ansi-term"] }
md5 = { package = "md-5", version = "0.10" }
miette = { version = "5.10", features = ["fancy-no-backtrace"] }
mime = "0.3"
mime_guess = "2.0"
native-tls = "0.2"
notify-debouncer-full = { version = "0.3", default-features = false }
num = { version = "0.4", optional = true }
num-format = { version = "0.4" }
num-traits = "0.2"
once_cell = "1.18"
2023-06-29 13:30:07 +00:00
open = "5.0"
os_pipe = "1.1"
pathdiff = "0.2"
percent-encoding = "2.3"
print-positions = "0.6"
quick-xml = "0.30"
rand = "0.8"
rayon = "1.8"
regex = "1.9.5"
roxmltree = "0.18"
rusqlite = { version = "0.29", features = ["bundled"], optional = true }
same-file = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_urlencoded = "0.7"
serde_yaml = "0.9"
sha2 = "0.10"
sysinfo = "0.29"
tabled = { version = "0.14.0", features = ["color"], default-features = false }
Bump terminal_size from 0.2.6 to 0.3.0 (#10409) Bumps [terminal_size](https://github.com/eminence/terminal-size) from 0.2.6 to 0.3.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/eminence/terminal-size/releases">terminal_size's releases</a>.</em></p> <blockquote> <h2>v0.3.0</h2> <h2>What's Changed</h2> <ul> <li>Check all streams (out/err/in) to find one that has a tty and size by <a href="https://github.com/eminence"><code>@​eminence</code></a> in <a href="https://redirect.github.com/eminence/terminal-size/pull/58">eminence/terminal-size#58</a> <ul> <li>Note that this is a subtle change in behavior, since the <code>terminal_size()</code> function will now return success in cases more cases than before</li> </ul> </li> <li>Update to rustix 0.38 by <a href="https://github.com/chenx97"><code>@​chenx97</code></a> in <a href="https://redirect.github.com/eminence/terminal-size/pull/57">eminence/terminal-size#57</a> <ul> <li>This change bumps the MSRV from 1.48.0 to 1.63.0</li> </ul> </li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/eminence/terminal-size/compare/v0.2.6...v0.3.0">https://github.com/eminence/terminal-size/compare/v0.2.6...v0.3.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eminence/terminal-size/commit/2983b7bf18531bbd2face938d2889f4590f9cb56"><code>2983b7b</code></a> Release v0.3.0</li> <li><a href="https://github.com/eminence/terminal-size/commit/27a4459b22594e804a608d0d29d194d2c6e454e3"><code>27a4459</code></a> Merge pull request <a href="https://redirect.github.com/eminence/terminal-size/issues/57">#57</a> from chenx97/rustix-0.38</li> <li><a href="https://github.com/eminence/terminal-size/commit/c24c1c34e51408c70136c9e6cff79d6d60f8aeed"><code>c24c1c3</code></a> Bump MSRV to 1.63.0</li> <li><a href="https://github.com/eminence/terminal-size/commit/78e13c77d7de86cf6d95dfaaf3ff71fec95d0cb4"><code>78e13c7</code></a> Update to rustix 0.38</li> <li><a href="https://github.com/eminence/terminal-size/commit/18c58b1ed5e4306826226d95e835ffd32f8c5926"><code>18c58b1</code></a> Merge pull request <a href="https://redirect.github.com/eminence/terminal-size/issues/58">#58</a> from eminence/check_all_streams</li> <li><a href="https://github.com/eminence/terminal-size/commit/08f0e73926c11adc3105dbf4eb84dd8c9e6c873a"><code>08f0e73</code></a> Check all streams (out/err/in) to find one that has a tty and size</li> <li>See full diff in <a href="https://github.com/eminence/terminal-size/compare/v0.2.6...v0.3.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=terminal_size&package-manager=cargo&previous-version=0.2.6&new-version=0.3.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-09-18 05:50:17 +00:00
terminal_size = "0.3"
titlecase = "2.0"
Bump toml from 0.7.6 to 0.8.0 (#10408) Bumps [toml](https://github.com/toml-rs/toml) from 0.7.6 to 0.8.0. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/toml-rs/toml/commit/310f6ee9c5e80dd6da545d400b358b1bd5895dd4"><code>310f6ee</code></a> chore: Release</li> <li><a href="https://github.com/toml-rs/toml/commit/90da8bc4254152c4a783a098e09c8ac341dc60c7"><code>90da8bc</code></a> docs: Update changelog</li> <li><a href="https://github.com/toml-rs/toml/commit/f3e120f1a052af5ec31a4577138a914e76a52f33"><code>f3e120f</code></a> Merge pull request <a href="https://redirect.github.com/toml-rs/toml/issues/608">#608</a> from epage/enum</li> <li><a href="https://github.com/toml-rs/toml/commit/58a7101f68ecacc7de1f711f1c25c7ea458c9fdd"><code>58a7101</code></a> fix(serde): Support struct variants as table of a table</li> <li><a href="https://github.com/toml-rs/toml/commit/88a4dba3123600016b2388439750198b6c57db13"><code>88a4dba</code></a> fix(serde): Support tuple variants as table of an array</li> <li><a href="https://github.com/toml-rs/toml/commit/cf06b83424921c7ca902bba9fa18d66088af764d"><code>cf06b83</code></a> test(serde): Verify both Table and Value serializers</li> <li><a href="https://github.com/toml-rs/toml/commit/4ffa44ec16155fa73120538eb993dd489552f3ea"><code>4ffa44e</code></a> test(serde): Make parameter order more consistent</li> <li><a href="https://github.com/toml-rs/toml/commit/2b7c34c900aa2622660af495e126a75b71916cba"><code>2b7c34c</code></a> test(serde): Focus on string serialization first</li> <li><a href="https://github.com/toml-rs/toml/commit/e2a6a1ceceb87e222ab1ed13309948157a4492d1"><code>e2a6a1c</code></a> test(serde): Verify existing variant behavior</li> <li><a href="https://github.com/toml-rs/toml/commit/3f3e8329bb205f889dfbf02c2ccabc4d784271a3"><code>3f3e832</code></a> chore: Release</li> <li>Additional commits viewable in <a href="https://github.com/toml-rs/toml/compare/toml-v0.7.6...toml-v0.8.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=toml&package-manager=cargo&previous-version=0.7.6&new-version=0.8.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-09-18 05:50:30 +00:00
toml = "0.8"
unicode-segmentation = "1.10"
2023-10-02 09:55:58 +00:00
ureq = { version = "2.8", default-features = false, features = ["charset", "gzip", "json", "native-tls"] }
url = "2.2"
uu_cp = "0.0.22"
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 = "0.0.22"
uu_mkdir = "0.0.22"
2023-10-23 06:14:08 +00:00
uuid = { version = "1.5", features = ["v4"] }
2023-10-09 12:31:50 +00:00
wax = { version = "0.6" }
which = { version = "5.0", optional = true }
bracoxide = "0.1.2"
chardetng = "0.1.17"
[target.'cfg(windows)'.dependencies]
winreg = "0.51"
[target.'cfg(unix)'.dependencies]
add a new inspect command for more debugging (#8028) # Description The purpose of this command is to help to debug pipelines. It works by allowing you to inject the `inspect` command into a pipeline at any point. Then it shows you what the input description is and what the input values are that are passed into `inspect`. With each step it prints this information out while also passing the value information on to the next step in the pipeline. ![image](https://user-images.githubusercontent.com/343840/218154064-e107859b-d0da-41c6-8e34-2d717639b81c.png) This command is kind of a "hack job" because it clones maybe too much and I had to get creative in order to output two different tables. I'm sure there are many ways this can be improved or combined into other commands but I wanted to start here. Note that the `inspect` output is written to stderr and the normal nushell output is written to stdout. If we were to output both to stdout, nushell would get confused. # User-Facing 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: - `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-11 18:59:11 +00:00
libc = "0.2"
umask = "2.1"
nix = { version = "0.27", default-features = false, features = ["user"] }
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies.trash]
optional = true
version = "3.1"
[target.'cfg(windows)'.dependencies.windows]
features = [
"Win32_Foundation",
"Win32_Storage_FileSystem",
Improve `registry value` return types (#10806) r? @fdncred Last one, I hope. At least short of completely redesigning `registry query`'s interface. (Which I wouldn't implement without asking around first.) # Description User-Facing Changes has the general overview. Inline comments provide a lot of justification on specific choices. Most of the type conversions should be reasonably noncontroversial, but expanding `REG_EXPAND_SZ` needs some justification. First, an example of the behavior there: ```shell > # release nushell: > version | select version commit_hash | to md --pretty | version | commit_hash | | ------- | ---------------------------------------- | | 0.85.0 | a6f62e05ae5b4e9ba4027fbfffd21025a898783e | > registry query --hkcu Environment TEMP | get value %USERPROFILE%\AppData\Local\Temp > # with this patch: > version | select version commit_hash | to md --pretty | version | commit_hash | | ------- | ---------------------------------------- | | 0.86.1 | 0c5a4c991f1a77bcbe5a86bc8f4469ecf1218fe9 | > registry query --hkcu Environment TEMP | get value C:\Users\CAD\AppData\Local\Temp > # Microsoft CLI tooling behavior: > ^pwsh -c `(Get-ItemProperty HKCU:\Environment).TEMP` C:\Users\CAD\AppData\Local\Temp > ^reg query HKCU\Environment /v TEMP HKEY_CURRENT_USER\Environment TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp ``` As noted in the inline comments, I'm arguing that it makes more sense to eagerly expand the %EnvironmentString% placeholders, as none of Nushell's path functionality will interpret these placeholders. This makes the behavior of `registry query` match the behavior of pwsh's `Get-ItemProperty` registry access, and means that paths (the most common use of `REG_EXPAND_SZ`) are actually usable. This does *not* break nu_script's [`update-path`](https://github.com/nushell/nu_scripts/blob/main/sourced/update-path.nu); it will just be slightly inefficient as it will not find any `%Placeholder%`s to manually expand anymore. But also, note that `update-path` is currently *wrong*, as a path including `%LocalAppData%Low` is perfectly valid and sometimes used (to go to `Appdata\LocalLow`); expansion isn't done solely on a path segment basis, as is implemented by `update-path`. I believe that the type conversions implemented by this patch are essentially always desired. But if we want to keep `registry query` "pure", we could easily introduce a `registry get`[^get] which does the more complete interpretation of registry types, and leave `registry query` alone as doing the bare minimum. Or we could teach `path expand` to do `ExpandEnvironmentStringsW`. But REG_EXPAND_SZ being the odd one out of not getting its registry type semantics decoded by `registry query` seems wrong. [^get]: This is the potential redesign I alluded to at the top. One potential change could be to make `registry get Environment` produce `record<Path: string, TEMP: string, TMP: string>` instead of `registry query`'s `table<name: string, value: string, type: string>`, the idea being to make it feel as native as possible. We could even translate between Nu's cell-path and registry paths -- cell paths with spaces do actually work, if a bit awkwardly -- or even introduce lazy records so the registry can be traversed with normal data manipulation ... but that all seems a bit much. # User-Facing Changes - `registry query`'s produced `value` has changed. Specifically: - ❗ Rows `where type == REG_EXPAND_SZ` now expand `%EnvironmentVarable%` placeholders for you. For example, `registry query --hkcu Environment TEMP | get value` returns `C:\Users\CAD\AppData\Local\Temp` instead of `%USERPROFILE%\AppData\Local\Temp`. - You can restore the old behavior and preserve the placeholders by passing a new `--no-expand` switch. - Rows `where type == REG_MULTI_SZ` now provide a `list<string>` value. They previously had that same list, but `| str join "\n"`. - Rows `where type == REG_DWORD_BIG_ENDIAN` now provide the correct numeric value instead of a byte-swapped value. - Rows `where type == REG_QWORD` now provide the correct numeric value[^sign] instead of the value modulo 2<sup>32</sup>. - Rows `where type == REG_LINK` now provide a string value of the link target registry path instead of an internal debug string representation. (This should never be visible, as links should be transparently followed.) - Rows `where type =~ RESOURCE` now provide a binary value instead of an internal debug string representation. [^sign]: Nu's `int` is a signed 64-bit integer. As such, values >= 2<sup>63</sup> will be reported as their negative two's compliment value. This might sometimes be the correct interpretation -- the registry does not distinguish between signed and unsigned integer values -- but regedit and pwsh display all values as unsigned.
2023-10-23 12:21:27 +00:00
"Win32_System_Environment",
"Win32_System_SystemServices",
"Win32_Security",
"Win32_System_Threading",
]
version = "0.48"
[features]
2021-11-02 20:56:00 +00:00
plugin = ["nu-parser/plugin"]
2023-06-14 21:12:55 +00:00
sqlite = ["rusqlite"]
add a new inspect command for more debugging (#8028) # Description The purpose of this command is to help to debug pipelines. It works by allowing you to inject the `inspect` command into a pipeline at any point. Then it shows you what the input description is and what the input values are that are passed into `inspect`. With each step it prints this information out while also passing the value information on to the next step in the pipeline. ![image](https://user-images.githubusercontent.com/343840/218154064-e107859b-d0da-41c6-8e34-2d717639b81c.png) This command is kind of a "hack job" because it clones maybe too much and I had to get creative in order to output two different tables. I'm sure there are many ways this can be improved or combined into other commands but I wanted to start here. Note that the `inspect` output is written to stderr and the normal nushell output is written to stdout. If we were to output both to stdout, nushell would get confused. # User-Facing 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: - `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-11 18:59:11 +00:00
trash-support = ["trash"]
which-support = ["which"]
[dev-dependencies]
nu-cmd-lang = { path = "../nu-cmd-lang", version = "0.86.1" }
nu-test-support = { path = "../nu-test-support", version = "0.86.1" }
2023-06-14 21:12:55 +00:00
dirs-next = "2.0"
Bump mockito from 1.1.0 to 1.2.0 (#10407) Bumps [mockito](https://github.com/lipanski/mockito) from 1.1.0 to 1.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lipanski/mockito/releases">mockito's releases</a>.</em></p> <blockquote> <h2>1.2.0</h2> <ul> <li><strong>[Breaking]</strong> The minimum supported Rust version was bumped to 1.68.0</li> <li>The server pool was limited to 20 servers for <code>mac_os</code> targets to prevent hitting the file descriptor limit</li> </ul> <p>Thanks to <a href="https://github.com/kornelski"><code>@​kornelski</code></a></p> <h2>1.1.1</h2> <ul> <li><a href="https://redirect.github.com/lipanski/mockito/pull/176">Ensure</a> <code>with_chunked_body</code> supports streaming responses (as opposed to writing the entire buffer in one go)</li> </ul> <p>Thanks to <a href="https://github.com/kornelski"><code>@​kornelski</code></a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lipanski/mockito/commit/7514e385249b5a71b08b4cdb2fd68638f9e8600a"><code>7514e38</code></a> Bump to 1.2.0</li> <li><a href="https://github.com/lipanski/mockito/commit/be00de417e82f1331632b29acf815fc204cf8302"><code>be00de4</code></a> Merge pull request <a href="https://redirect.github.com/lipanski/mockito/issues/177">#177</a> from kornelski/pool</li> <li><a href="https://github.com/lipanski/mockito/commit/6b4073e911f74a0ec658ad60bb1f92685f34b544"><code>6b4073e</code></a> MSRV</li> <li><a href="https://github.com/lipanski/mockito/commit/9faa8251106b7cadbb5bd5dbc3cc0c5d754cebf6"><code>9faa825</code></a> Test exhausting server pool</li> <li><a href="https://github.com/lipanski/mockito/commit/3099e94471a158c5a8bdf32731db8acc8129d04a"><code>3099e94</code></a> Simplify server pool</li> <li><a href="https://github.com/lipanski/mockito/commit/99735e7c41e279e97cde75f4ccb0a983b015a61c"><code>99735e7</code></a> Bump to 1.1.1</li> <li><a href="https://github.com/lipanski/mockito/commit/3b63970619cc7638e524c3b2e61016f9c931d268"><code>3b63970</code></a> Merge pull request <a href="https://redirect.github.com/lipanski/mockito/issues/176">#176</a> from kornelski/stream</li> <li><a href="https://github.com/lipanski/mockito/commit/339bffc983260162ce371b2d14f9c23c6b21e19d"><code>339bffc</code></a> Support streaming body</li> <li><a href="https://github.com/lipanski/mockito/commit/8b7575cd3842e2dc1b227453ecd99370866dc2c4"><code>8b7575c</code></a> Simplify server pool test</li> <li>See full diff in <a href="https://github.com/lipanski/mockito/compare/1.1.0...1.2.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=mockito&package-manager=cargo&previous-version=1.1.0&new-version=1.2.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-09-18 05:50:08 +00:00
mockito = { version = "1.2", default-features = false }
quickcheck = "1.0"
quickcheck_macros = "1.0"
rstest = { version = "0.18", default-features = false }