nushell/crates
nibon7 84742275a1
Add ulimit command (#11324)
# Description
Add `ulimit` command to Nushell.

Closes #9563
Closes #3976

Related pr #11246

Reference:
https://github.com/fish-shell/fish-shell/blob/master/fish-rust/src/builtins/ulimit.rs
https://github.com/mirror/busybox/blob/master/shell/shell_common.c#L529

# User-Facing Changes
```
nushell on  ulimit is 📦 v0.88.2 via 🦀 v1.72.1                                                                                                [3/246]
❯ ulimit -a
╭────┬──────────────────────────────────────────────────────────────────────────┬───────────┬───────────╮
│  # │                               description                                │   soft    │   hard    │
├────┼──────────────────────────────────────────────────────────────────────────┼───────────┼───────────┤
│  0 │ Maximum size of core files created                              (kB, -c) │ unlimited │ unlimited │
│  1 │ Maximum size of a process's data segment                        (kB, -d) │ unlimited │ unlimited │
│  2 │ Controls of maximum nice priority                                   (-e) │         0 │         0 │
│  3 │ Maximum size of files created by the shell                      (kB, -f) │ unlimited │ unlimited │
│  4 │ Maximum number of pending signals                                   (-i) │     55273 │     55273 │
│  5 │ Maximum size that may be locked into memory                     (kB, -l) │      8192 │      8192 │
│  6 │ Maximum resident set size                                       (kB, -m) │ unlimited │ unlimited │
│  7 │ Maximum number of open file descriptors                             (-n) │      1024 │    524288 │
│  8 │ Maximum bytes in POSIX message queues                           (kB, -q) │       800 │       800 │
│  9 │ Maximum realtime scheduling priority                                (-r) │         0 │         0 │
│ 10 │ Maximum stack size                                              (kB, -s) │      8192 │ unlimited │
│ 11 │ Maximum amount of CPU time in seconds                      (seconds, -t) │ unlimited │ unlimited │
│ 12 │ Maximum number of processes available to the current user           (-u) │     55273 │     55273 │
│ 13 │ Maximum amount of virtual memory available to each process      (kB, -v) │ unlimited │ unlimited │
│ 14 │ Maximum number of file locks                                        (-x) │ unlimited │ unlimited │
│ 15 │ Maximum contiguous realtime CPU time                                (-y) │ unlimited │ unlimited │
╰────┴──────────────────────────────────────────────────────────────────────────┴───────────┴───────────╯
nushell on  ulimit is 📦 v0.88.2 via 🦀 v1.72.1
❯ ulimit -s
╭───┬─────────────────────────────┬──────┬───────────╮
│ # │         description         │ soft │   hard    │
├───┼─────────────────────────────┼──────┼───────────┤
│ 0 │ Maximum stack size (kB, -s) │ 8192 │ unlimited │
╰───┴─────────────────────────────┴──────┴───────────╯
nushell on  ulimit is 📦 v0.88.2 via 🦀 v1.72.1
❯ ulimit -s 100
nushell on  ulimit is 📦 v0.88.2 via 🦀 v1.72.1
❯ ulimit -s
╭───┬─────────────────────────────┬──────┬──────╮
│ # │         description         │ soft │ hard │
├───┼─────────────────────────────┼──────┼──────┤
│ 0 │ Maximum stack size (kB, -s) │  100 │  100 │
╰───┴─────────────────────────────┴──────┴──────╯
nushell on  ulimit is 📦 v0.88.2 via 🦀 v1.72.1
```

# Tests + Formatting
- [x] add commands::ulimit::limit_set_soft1
- [x] add commands::ulimit::limit_set_soft2
- [x] add commands::ulimit::limit_set_hard1
- [x] add commands::ulimit::limit_set_hard2
- [x] add commands::ulimit::limit_set_invalid1
- [x] add commands::ulimit::limit_set_invalid2
- [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
2023-12-15 07:11:17 -06:00
..
nu_plugin_custom_values Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu_plugin_example Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu_plugin_formats Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu_plugin_gstat Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu_plugin_inc Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu_plugin_python remove vectorize_over_list from python plugin (#9905) 2023-08-03 16:46:48 +02:00
nu_plugin_query Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-cli Move history into their own module (#11308) 2023-12-15 13:17:12 +01:00
nu-cmd-base Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-cmd-dataframe Polars Struct support without unsafe blocks (#11229) 2023-12-15 11:21:30 +01:00
nu-cmd-extra Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-cmd-lang Enforce required, optional, and rest positional arguments start with an uppercase and end with a period. (#11285) 2023-12-15 14:32:37 +08:00
nu-color-config Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-command Add ulimit command (#11324) 2023-12-15 07:11:17 -06:00
nu-engine Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-explore Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-glob Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-json Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-lsp Enforce required, optional, and rest positional arguments start with an uppercase and end with a period. (#11285) 2023-12-15 14:32:37 +08:00
nu-parser disable directory submodule auto export (#11157) 2023-12-15 12:37:55 +01:00
nu-path Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-plugin Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-pretty-hex Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-protocol Move history into their own module (#11308) 2023-12-15 13:17:12 +01:00
nu-std disable directory submodule auto export (#11157) 2023-12-15 12:37:55 +01:00
nu-system Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-table Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-term-grid Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-test-support Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
nu-utils Bump version to 0.88.2 (#11333) 2023-12-14 13:55:48 -06:00
README.md Remove old nushell/merge engine-q 2022-02-07 14:54:06 -05:00

Nushell core libraries and plugins

These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.

Foundational libraries are split into two kinds of crates:

  • Core crates - those crates that work together to build the Nushell language engine
  • Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.

Plugins are likewise also split into two types:

  • Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
  • Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.