mirror of
https://github.com/nushell/nushell.git
synced 2025-07-01 07:00:37 +02:00
Compare commits
26 Commits
Author | SHA1 | Date | |
---|---|---|---|
a660720b68 | |||
265ee1281d | |||
cdc8e67d61 | |||
4e8e03867c | |||
49e8af8ea5 | |||
d5d61d14b3 | |||
f562a4526c | |||
e6c09f2dfc | |||
73a68954c4 | |||
476d543dee | |||
398502b0d6 | |||
62011b6bcc | |||
1214cd57e8 | |||
6cd124ddb2 | |||
d32aec5906 | |||
e919f9a73b | |||
a3c349746f | |||
b5f8f64d79 | |||
1576b959f9 | |||
4096f52003 | |||
7ceb668419 | |||
420aee18ca | |||
15e9c11849 | |||
9fd680ae2b | |||
ad94ed5e13 | |||
1bdcdcca70 |
@ -16,7 +16,7 @@ strategy:
|
||||
image: ubuntu-18.04
|
||||
style: 'wasm'
|
||||
macos-stable:
|
||||
image: macos-10.14
|
||||
image: macOS-10.15
|
||||
style: 'unflagged'
|
||||
windows-stable:
|
||||
image: windows-2019
|
||||
|
@ -1,165 +0,0 @@
|
||||
# CircleCI 2.0 configuration file
|
||||
#
|
||||
# Check https://circleci.com/docs/2.0/configuration-reference/ for more details
|
||||
# See https://circleci.com/docs/2.0/config-intro/#section=configuration for spec
|
||||
#
|
||||
version: 2.1
|
||||
|
||||
# Commands
|
||||
|
||||
commands:
|
||||
|
||||
pull_cache:
|
||||
description: Pulls Quay.io docker images (latest) for our cache
|
||||
parameters:
|
||||
tag:
|
||||
type: string
|
||||
default: "devel"
|
||||
steps:
|
||||
- run: echo "Tag is << parameters.tag >>"
|
||||
- run: docker pull quay.io/nushell/nu:<< parameters.tag >>
|
||||
- run: docker pull quay.io/nushell/nu-base:<< parameters.tag >>
|
||||
|
||||
orbs:
|
||||
# https://circleci.com/orbs/registry/orb/circleci/docker
|
||||
docker: circleci/docker@0.5.13
|
||||
|
||||
workflows:
|
||||
version: 2.0
|
||||
|
||||
# This builds on all pull requests to test, and ignores main
|
||||
build_without_deploy:
|
||||
jobs:
|
||||
- docker/publish:
|
||||
deploy: false
|
||||
image: nushell/nu-base
|
||||
tag: latest
|
||||
dockerfile: docker/Dockerfile.nu-base
|
||||
extra_build_args: --cache-from=quay.io/nushell/nu-base:devel
|
||||
filters:
|
||||
branches:
|
||||
ignore:
|
||||
- main
|
||||
before_build:
|
||||
- pull_cache
|
||||
after_build:
|
||||
- run:
|
||||
name: Build Multistage (smaller) container
|
||||
command: |
|
||||
docker build -f docker/Dockerfile -t quay.io/nushell/nu .
|
||||
- run:
|
||||
name: Preview Docker Tag for Nushell Build
|
||||
command: |
|
||||
DOCKER_TAG=$(docker run quay.io/nushell/nu --version | cut -d' ' -f2)
|
||||
echo "Version that would be used for Docker tag is v${DOCKER_TAG}"
|
||||
- run:
|
||||
name: Test Executable
|
||||
command: |
|
||||
docker run --rm quay.io/nushell/nu-base --help
|
||||
docker run --rm quay.io/nushell/nu --help
|
||||
|
||||
# workflow publishes to Docker Hub, with each job having different triggers
|
||||
build_with_deploy:
|
||||
jobs:
|
||||
|
||||
# Deploy versioned and latest images on tags (releases) only - builds --release.
|
||||
- docker/publish:
|
||||
image: nushell/nu-base
|
||||
registry: quay.io
|
||||
tag: latest
|
||||
dockerfile: docker/Dockerfile.nu-base
|
||||
extra_build_args: --cache-from=quay.io/nushell/nu-base:latest,quay.io/nushell/nu:latest --build-arg RELEASE=true
|
||||
filters:
|
||||
branches:
|
||||
ignore: /.*/
|
||||
tags:
|
||||
only: /^\d+\.\d+\.\d+$/
|
||||
before_build:
|
||||
- run: docker pull quay.io/nushell/nu:latest
|
||||
- run: docker pull quay.io/nushell/nu-base:latest
|
||||
after_build:
|
||||
- run:
|
||||
name: Build Multistage (smaller) container
|
||||
command: |
|
||||
docker build -f docker/Dockerfile -t quay.io/nushell/nu .
|
||||
- run:
|
||||
name: Test Executable
|
||||
command: |
|
||||
docker run --rm quay.io/nushell/nu --help
|
||||
docker run --rm quay.io/nushell/nu-base --help
|
||||
- run:
|
||||
name: Publish Docker Tag with Nushell Version
|
||||
command: |
|
||||
DOCKER_TAG=$(docker run quay.io/nushell/nu --version | cut -d' ' -f2)
|
||||
echo "Version for Docker tag is ${DOCKER_TAG}"
|
||||
docker tag quay.io/nushell/nu-base:latest quay.io/nushell/nu-base:${DOCKER_TAG}
|
||||
docker tag quay.io/nushell/nu:latest quay.io/nushell/nu:${DOCKER_TAG}
|
||||
docker push quay.io/nushell/nu-base
|
||||
docker push quay.io/nushell/nu
|
||||
|
||||
|
||||
# publish devel to Docker Hub on merge to main (doesn't build --release)
|
||||
build_with_deploy_devel:
|
||||
jobs:
|
||||
|
||||
# Deploy devel tag on merge to main
|
||||
- docker/publish:
|
||||
image: nushell/nu-base
|
||||
registry: quay.io
|
||||
tag: devel
|
||||
dockerfile: docker/Dockerfile.nu-base
|
||||
extra_build_args: --cache-from=quay.io/nushell/nu-base:devel
|
||||
before_build:
|
||||
- pull_cache
|
||||
filters:
|
||||
branches:
|
||||
only: main
|
||||
after_build:
|
||||
- run:
|
||||
name: Build Multistage (smaller) container
|
||||
command: |
|
||||
docker build --build-arg FROMTAG=devel -f docker/Dockerfile -t quay.io/nushell/nu:devel .
|
||||
- run:
|
||||
name: Test Executable
|
||||
command: |
|
||||
docker run --rm quay.io/nushell/nu:devel --help
|
||||
docker run --rm quay.io/nushell/nu-base:devel --help
|
||||
- run:
|
||||
name: Publish Development Docker Tags
|
||||
command: |
|
||||
docker push quay.io/nushell/nu-base:devel
|
||||
docker push quay.io/nushell/nu:devel
|
||||
|
||||
nightly:
|
||||
triggers:
|
||||
- schedule:
|
||||
cron: "0 0 * * *"
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- main
|
||||
jobs:
|
||||
- docker/publish:
|
||||
image: nushell/nu-base
|
||||
registry: quay.io
|
||||
tag: nightly
|
||||
dockerfile: docker/Dockerfile.nu-base
|
||||
extra_build_args: --cache-from=quay.io/nushell/nu-base:nightly --build-arg RELEASE=true
|
||||
before_build:
|
||||
- run: docker pull quay.io/nushell/nu:nightly
|
||||
- run: docker pull quay.io/nushell/nu-base:nightly
|
||||
after_build:
|
||||
- run:
|
||||
name: Build Multistage (smaller) container
|
||||
command: |
|
||||
docker build -f docker/Dockerfile -t quay.io/nushell/nu:nightly .
|
||||
- run:
|
||||
name: Test Executable
|
||||
command: |
|
||||
docker run --rm quay.io/nushell/nu:nightly --help
|
||||
docker run --rm quay.io/nushell/nu-base:nightly --help
|
||||
- run:
|
||||
name: Publish Nightly Nushell Containers
|
||||
command: |
|
||||
docker push quay.io/nushell/nu-base:nightly
|
||||
docker push quay.io/nushell/nu:nightly
|
@ -1 +0,0 @@
|
||||
target
|
32
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
32
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -1,11 +1,11 @@
|
||||
name: Bug Report
|
||||
description: Create a report to help us improve
|
||||
body:
|
||||
body:
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe the bug
|
||||
description: A clear and concise description of what the bug is.
|
||||
description: Thank you for your bug report. We are working diligently with our community to integrate our latest code base that we call [engine-q](https://github.com/nushell/engine-q). We would like your help with this by checking to see if this bug report is still needed in engine-q. Thank you for your patience while we ready the next version of nushell.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
@ -38,22 +38,20 @@ body:
|
||||
id: config
|
||||
attributes:
|
||||
label: Configuration
|
||||
description: "Please run `> version | pivot key value | to md` and paste the output to show OS, features, etc"
|
||||
description: "Please run `version | pivot key value | to md --pretty` and paste the output to show OS, features, etc."
|
||||
placeholder: |
|
||||
> version | pivot key value | to md
|
||||
╭───┬────────────────────┬───────────────────────────────────────────────────────────────────────╮
|
||||
│ # │ key │ value │
|
||||
├───┼────────────────────┼───────────────────────────────────────────────────────────────────────┤
|
||||
│ 0 │ version │ 0.24.1 │
|
||||
│ 1 │ build_os │ macos-x86_64 │
|
||||
│ 2 │ rust_version │ rustc 1.48.0 │
|
||||
│ 3 │ cargo_version │ cargo 1.48.0 │
|
||||
│ 4 │ pkg_version │ 0.24.1 │
|
||||
│ 5 │ build_time │ 2020-12-18 09:54:09 │
|
||||
│ 6 │ build_rust_channel │ release │
|
||||
│ 7 │ features │ ctrlc, default, directories, dirs, git, ichwh, rich-benchmark, │
|
||||
│ │ │ rustyline, term, uuid, which, zip │
|
||||
╰───┴────────────────────┴───────────────────────────────────────────────────────────────────────╯
|
||||
> version | pivot key value | to md --pretty
|
||||
| key | value |
|
||||
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| version | 0.40.0 |
|
||||
| build_os | linux-x86_64 |
|
||||
| rust_version | rustc 1.56.1 |
|
||||
| cargo_version | cargo 1.56.0 |
|
||||
| pkg_version | 0.40.0 |
|
||||
| build_time | 1980-01-01 00:00:00 +00:00 |
|
||||
| build_rust_channel | release |
|
||||
| features | clipboard-cli, ctrlc, dataframe, default, rustyline, term, trash, uuid, which, zip |
|
||||
| installed_plugins | binaryview, chart bar, chart line, fetch, from bson, from sqlite, inc, match, post, ps, query json, s3, selector, start, sys, textview, to bson, to sqlite, tree, xpath |
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
|
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -5,7 +5,7 @@ body:
|
||||
id: problem
|
||||
attributes:
|
||||
label: Related problem
|
||||
description: Is your feature request related to a problem? Please describe.
|
||||
description: Thank you for your feature request. We are working diligently with our community to integrate our latest code base that we call [engine-q](https://github.com/nushell/engine-q). We would like your help with this by checking to see if this feature request is still needed in engine-q. Thank you for your patience while we ready the next version of nushell.
|
||||
placeholder: |
|
||||
A clear and concise description of what the problem is.
|
||||
Example: I am trying to do [...] but [...]
|
||||
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -215,7 +215,7 @@ jobs:
|
||||
uses: actions-rs/cargo@v1
|
||||
with:
|
||||
command: install
|
||||
args: cargo-wix
|
||||
args: cargo-wix --version 0.3.1
|
||||
|
||||
- name: Build
|
||||
uses: actions-rs/cargo@v1
|
||||
|
18
.gitpod.Dockerfile
vendored
18
.gitpod.Dockerfile
vendored
@ -1,18 +0,0 @@
|
||||
FROM gitpod/workspace-full
|
||||
|
||||
# Gitpod will not rebuild Nushell's dev image unless *some* change is made to this Dockerfile.
|
||||
# To force a rebuild, simply increase this counter:
|
||||
ENV TRIGGER_REBUILD 2
|
||||
|
||||
USER gitpod
|
||||
|
||||
RUN sudo apt-get update && \
|
||||
sudo apt-get install -y \
|
||||
libssl-dev \
|
||||
libxcb-composite0-dev \
|
||||
pkg-config \
|
||||
libpython3.6 \
|
||||
rust-lldb \
|
||||
&& sudo rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV RUST_LLDB=/usr/bin/lldb-11
|
25
.gitpod.yml
25
.gitpod.yml
@ -1,25 +0,0 @@
|
||||
image:
|
||||
file: .gitpod.Dockerfile
|
||||
tasks:
|
||||
- name: Clippy
|
||||
init: cargo clippy --all --features=stable -- -D clippy::result_unwrap_used -D clippy::option_unwrap_used
|
||||
- name: Testing
|
||||
init: cargo test --all --features=stable
|
||||
- name: Build
|
||||
init: cargo build --features=stable
|
||||
- name: Nu
|
||||
init: cargo install --path . --features=stable
|
||||
command: nu
|
||||
github:
|
||||
prebuilds:
|
||||
branches: true
|
||||
pullRequestsFromForks: true
|
||||
addLabel: prebuilt-in-gitpod
|
||||
vscode:
|
||||
extensions:
|
||||
- hbenl.vscode-test-explorer@2.15.0:koqDUMWDPJzELp/hdS/lWw==
|
||||
- Swellaby.vscode-rust-test-adapter@0.11.0:Xg+YeZZQiVpVUsIkH+uiiw==
|
||||
- serayuzgur.crates@0.4.7:HMkoguLcXp9M3ud7ac3eIw==
|
||||
- belfz.search-crates-io@1.2.1:kSLnyrOhXtYPjQpKnMr4eQ==
|
||||
- bungcip.better-toml@0.3.2:3QfgGxxYtGHfJKQU7H0nEw==
|
||||
- webfreak.debug@0.24.0:1zVcRsAhewYEX3/A9xjMNw==
|
@ -1,14 +0,0 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "gdb",
|
||||
"request": "launch",
|
||||
"name": "Debug Rust Code",
|
||||
"preLaunchTask": "cargo",
|
||||
"target": "${workspaceFolder}/target/debug/nu",
|
||||
"cwd": "${workspaceFolder}",
|
||||
"valuesFormatting": "parseText"
|
||||
}
|
||||
]
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
{
|
||||
"tasks": [
|
||||
{
|
||||
"command": "cargo",
|
||||
"args": [
|
||||
"build"
|
||||
],
|
||||
"type": "process",
|
||||
"label": "cargo",
|
||||
}
|
||||
],
|
||||
}
|
149
Cargo.lock
generated
149
Cargo.lock
generated
@ -2,16 +2,6 @@
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "Inflector"
|
||||
version = "0.11.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"regex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "addr2line"
|
||||
version = "0.17.0"
|
||||
@ -258,21 +248,6 @@ dependencies = [
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bit-set"
|
||||
version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
|
||||
dependencies = [
|
||||
"bit-vec",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bit-vec"
|
||||
version = "0.6.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
|
||||
|
||||
[[package]]
|
||||
name = "bitflags"
|
||||
version = "1.2.1"
|
||||
@ -1123,16 +1098,6 @@ version = "0.1.9"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
|
||||
|
||||
[[package]]
|
||||
name = "fancy-regex"
|
||||
version = "0.7.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9d6b8560a05112eb52f04b00e5d3790c0dd75d9d980eb8a122fb23b92a623ccf"
|
||||
dependencies = [
|
||||
"bit-set",
|
||||
"regex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fd-lock"
|
||||
version = "3.0.1"
|
||||
@ -1548,6 +1513,12 @@ dependencies = [
|
||||
"unicode-segmentation",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "heck"
|
||||
version = "0.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
|
||||
|
||||
[[package]]
|
||||
name = "hermit-abi"
|
||||
version = "0.1.19"
|
||||
@ -1919,9 +1890,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "libc"
|
||||
version = "0.2.108"
|
||||
version = "0.2.112"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8521a1b57e76b1ec69af7599e75e38e7b7fad6610f037db8c79b127201b5d119"
|
||||
checksum = "1b03d17f364a3a042d5e5d46b053bbbf82c92c9430c592dd4c064dc6ee997125"
|
||||
|
||||
[[package]]
|
||||
name = "libgit2-sys"
|
||||
@ -2281,7 +2252,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"ctrlc",
|
||||
"futures 0.3.18",
|
||||
@ -2321,7 +2292,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-ansi-term"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"doc-comment",
|
||||
"overload",
|
||||
@ -2333,7 +2304,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-cli"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"ctrlc",
|
||||
"indexmap",
|
||||
@ -2360,9 +2331,8 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-command"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"Inflector",
|
||||
"base64",
|
||||
"bigdecimal",
|
||||
"calamine",
|
||||
@ -2381,6 +2351,7 @@ dependencies = [
|
||||
"futures 0.3.18",
|
||||
"glob",
|
||||
"hamcrest2",
|
||||
"heck 0.4.0",
|
||||
"htmlescape",
|
||||
"ical",
|
||||
"indexmap",
|
||||
@ -2447,7 +2418,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-completion"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"indexmap",
|
||||
"is_executable",
|
||||
@ -2463,7 +2434,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-data"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"byte-unit",
|
||||
@ -2493,7 +2464,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-engine"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"bytes 1.1.0",
|
||||
@ -2538,7 +2509,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-errors"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"codespan-reporting",
|
||||
@ -2557,7 +2528,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-json"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"linked-hash-map",
|
||||
@ -2571,7 +2542,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-parser"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"derive-new",
|
||||
@ -2590,7 +2561,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-path"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"dirs-next",
|
||||
"dunce",
|
||||
@ -2598,7 +2569,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-plugin"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"indexmap",
|
||||
"nu-errors",
|
||||
@ -2612,7 +2583,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-pretty-hex"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"heapless",
|
||||
"nu-ansi-term",
|
||||
@ -2621,7 +2592,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-protocol"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"byte-unit",
|
||||
@ -2643,7 +2614,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-serde"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"insta",
|
||||
@ -2655,7 +2626,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-source"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"derive-new",
|
||||
"getset",
|
||||
@ -2666,7 +2637,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-stream"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"nu-errors",
|
||||
"nu-protocol",
|
||||
@ -2675,7 +2646,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-table"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"atty",
|
||||
"nu-ansi-term",
|
||||
@ -2686,7 +2657,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-test-support"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"chrono",
|
||||
@ -2704,7 +2675,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu-value-ext"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"indexmap",
|
||||
"itertools",
|
||||
@ -2716,7 +2687,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_binaryview"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"crossterm",
|
||||
"image",
|
||||
@ -2732,7 +2703,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_chart"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"crossterm",
|
||||
"nu-data",
|
||||
@ -2746,7 +2717,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_from_bson"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"bson",
|
||||
@ -2758,7 +2729,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_from_mp4"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"mp4",
|
||||
"nu-errors",
|
||||
@ -2770,7 +2741,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_from_sqlite"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"nu-errors",
|
||||
@ -2783,7 +2754,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_inc"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"nu-errors",
|
||||
"nu-plugin",
|
||||
@ -2796,7 +2767,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_match"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"nu-errors",
|
||||
"nu-plugin",
|
||||
@ -2806,7 +2777,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_query_json"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"gjson",
|
||||
"nu-errors",
|
||||
@ -2817,7 +2788,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_s3"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"futures 0.3.18",
|
||||
"nu-errors",
|
||||
@ -2829,7 +2800,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_selector"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"indexmap",
|
||||
"nu-errors",
|
||||
@ -2841,7 +2812,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_start"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"glob",
|
||||
"nu-errors",
|
||||
@ -2855,7 +2826,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_textview"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bat",
|
||||
"nu-data",
|
||||
@ -2869,7 +2840,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_to_bson"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bson",
|
||||
"nu-errors",
|
||||
@ -2881,7 +2852,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_to_sqlite"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"hex",
|
||||
"nu-errors",
|
||||
@ -2894,7 +2865,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_tree"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"derive-new",
|
||||
"nu-errors",
|
||||
@ -2905,7 +2876,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "nu_plugin_xpath"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
dependencies = [
|
||||
"bigdecimal",
|
||||
"indexmap",
|
||||
@ -3112,6 +3083,28 @@ version = "1.8.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "692fcb63b64b1758029e0a96ee63e049ce8c5948587f2f7208df04625e5f6b56"
|
||||
|
||||
[[package]]
|
||||
name = "onig"
|
||||
version = "6.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "67ddfe2c93bb389eea6e6d713306880c7f6dcc99a75b659ce145d962c861b225"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"lazy_static",
|
||||
"libc",
|
||||
"onig_sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "onig_sys"
|
||||
version = "69.7.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5dd3eee045c84695b53b20255bb7317063df090b68e18bfac0abb6c39cf7f33e"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "opaque-debug"
|
||||
version = "0.3.0"
|
||||
@ -4474,7 +4467,7 @@ version = "0.20.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"heck 0.3.3",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
@ -4538,11 +4531,11 @@ checksum = "8b20815bbe80ee0be06e6957450a841185fcf690fe0178f14d77a05ce2caa031"
|
||||
dependencies = [
|
||||
"bincode",
|
||||
"bitflags",
|
||||
"fancy-regex",
|
||||
"flate2",
|
||||
"fnv",
|
||||
"lazy_static",
|
||||
"lazycell",
|
||||
"onig",
|
||||
"plist",
|
||||
"regex-syntax",
|
||||
"serde",
|
||||
@ -4577,9 +4570,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "sysinfo"
|
||||
version = "0.21.1"
|
||||
version = "0.23.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fb6c2c4a6ca462f07ca89841a2618dca6e405304d19ae238997e64915d89f513"
|
||||
checksum = "9e757000a4bed2b1be9be65a3f418b9696adf30bb419214c73997422de73a591"
|
||||
dependencies = [
|
||||
"cfg-if 1.0.0",
|
||||
"core-foundation-sys",
|
||||
|
58
Cargo.toml
58
Cargo.toml
@ -10,7 +10,7 @@ license = "MIT"
|
||||
name = "nu"
|
||||
readme = "README.md"
|
||||
repository = "https://github.com/nushell/nushell"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[workspace]
|
||||
members = ["crates/*/"]
|
||||
@ -18,34 +18,34 @@ members = ["crates/*/"]
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
nu-cli = { version = "0.41.0", path="./crates/nu-cli", default-features=false }
|
||||
nu-command = { version = "0.41.0", path="./crates/nu-command" }
|
||||
nu-completion = { version = "0.41.0", path="./crates/nu-completion" }
|
||||
nu-data = { version = "0.41.0", path="./crates/nu-data" }
|
||||
nu-engine = { version = "0.41.0", path="./crates/nu-engine" }
|
||||
nu-errors = { version = "0.41.0", path="./crates/nu-errors" }
|
||||
nu-parser = { version = "0.41.0", path="./crates/nu-parser" }
|
||||
nu-path = { version = "0.41.0", path="./crates/nu-path" }
|
||||
nu-plugin = { version = "0.41.0", path="./crates/nu-plugin" }
|
||||
nu-protocol = { version = "0.41.0", path="./crates/nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="./crates/nu-source" }
|
||||
nu-value-ext = { version = "0.41.0", path="./crates/nu-value-ext" }
|
||||
nu-cli = { version = "0.44.0", path="./crates/nu-cli", default-features=false }
|
||||
nu-command = { version = "0.44.0", path="./crates/nu-command" }
|
||||
nu-completion = { version = "0.44.0", path="./crates/nu-completion" }
|
||||
nu-data = { version = "0.44.0", path="./crates/nu-data" }
|
||||
nu-engine = { version = "0.44.0", path="./crates/nu-engine" }
|
||||
nu-errors = { version = "0.44.0", path="./crates/nu-errors" }
|
||||
nu-parser = { version = "0.44.0", path="./crates/nu-parser" }
|
||||
nu-path = { version = "0.44.0", path="./crates/nu-path" }
|
||||
nu-plugin = { version = "0.44.0", path="./crates/nu-plugin" }
|
||||
nu-protocol = { version = "0.44.0", path="./crates/nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="./crates/nu-source" }
|
||||
nu-value-ext = { version = "0.44.0", path="./crates/nu-value-ext" }
|
||||
|
||||
nu_plugin_binaryview = { version = "0.41.0", path="./crates/nu_plugin_binaryview", optional=true }
|
||||
nu_plugin_chart = { version = "0.41.0", path="./crates/nu_plugin_chart", optional=true }
|
||||
nu_plugin_from_bson = { version = "0.41.0", path="./crates/nu_plugin_from_bson", optional=true }
|
||||
nu_plugin_from_sqlite = { version = "0.41.0", path="./crates/nu_plugin_from_sqlite", optional=true }
|
||||
nu_plugin_inc = { version = "0.41.0", path="./crates/nu_plugin_inc", optional=true }
|
||||
nu_plugin_match = { version = "0.41.0", path="./crates/nu_plugin_match", optional=true }
|
||||
nu_plugin_query_json = { version = "0.41.0", path="./crates/nu_plugin_query_json", optional=true }
|
||||
nu_plugin_s3 = { version = "0.41.0", path="./crates/nu_plugin_s3", optional=true }
|
||||
nu_plugin_selector = { version = "0.41.0", path="./crates/nu_plugin_selector", optional=true }
|
||||
nu_plugin_start = { version = "0.41.0", path="./crates/nu_plugin_start", optional=true }
|
||||
nu_plugin_textview = { version = "0.41.0", path="./crates/nu_plugin_textview", optional=true }
|
||||
nu_plugin_to_bson = { version = "0.41.0", path="./crates/nu_plugin_to_bson", optional=true }
|
||||
nu_plugin_to_sqlite = { version = "0.41.0", path="./crates/nu_plugin_to_sqlite", optional=true }
|
||||
nu_plugin_tree = { version = "0.41.0", path="./crates/nu_plugin_tree", optional=true }
|
||||
nu_plugin_xpath = { version = "0.41.0", path="./crates/nu_plugin_xpath", optional=true }
|
||||
nu_plugin_binaryview = { version = "0.44.0", path="./crates/nu_plugin_binaryview", optional=true }
|
||||
nu_plugin_chart = { version = "0.44.0", path="./crates/nu_plugin_chart", optional=true }
|
||||
nu_plugin_from_bson = { version = "0.44.0", path="./crates/nu_plugin_from_bson", optional=true }
|
||||
nu_plugin_from_sqlite = { version = "0.44.0", path="./crates/nu_plugin_from_sqlite", optional=true }
|
||||
nu_plugin_inc = { version = "0.44.0", path="./crates/nu_plugin_inc", optional=true }
|
||||
nu_plugin_match = { version = "0.44.0", path="./crates/nu_plugin_match", optional=true }
|
||||
nu_plugin_query_json = { version = "0.44.0", path="./crates/nu_plugin_query_json", optional=true }
|
||||
nu_plugin_s3 = { version = "0.44.0", path="./crates/nu_plugin_s3", optional=true }
|
||||
nu_plugin_selector = { version = "0.44.0", path="./crates/nu_plugin_selector", optional=true }
|
||||
nu_plugin_start = { version = "0.44.0", path="./crates/nu_plugin_start", optional=true }
|
||||
nu_plugin_textview = { version = "0.44.0", path="./crates/nu_plugin_textview", optional=true }
|
||||
nu_plugin_to_bson = { version = "0.44.0", path="./crates/nu_plugin_to_bson", optional=true }
|
||||
nu_plugin_to_sqlite = { version = "0.44.0", path="./crates/nu_plugin_to_sqlite", optional=true }
|
||||
nu_plugin_tree = { version = "0.44.0", path="./crates/nu_plugin_tree", optional=true }
|
||||
nu_plugin_xpath = { version = "0.44.0", path="./crates/nu_plugin_xpath", optional=true }
|
||||
|
||||
# Required to bootstrap the main binary
|
||||
ctrlc = { version="3.1.7", optional=true }
|
||||
@ -53,7 +53,7 @@ futures = { version="0.3.12", features=["compat", "io-compat"] }
|
||||
itertools = "0.10.0"
|
||||
|
||||
[dev-dependencies]
|
||||
nu-test-support = { version = "0.41.0", path="./crates/nu-test-support" }
|
||||
nu-test-support = { version = "0.44.0", path="./crates/nu-test-support" }
|
||||
serial_test = "0.5.1"
|
||||
hamcrest2 = "0.3.0"
|
||||
rstest = "0.10.0"
|
||||
|
15
README.md
15
README.md
@ -37,10 +37,6 @@ We also have an active [Discord](https://discord.gg/NtAbbGn) and [Twitter](https
|
||||
|
||||
You can also find information on more specific topics in our [cookbook](https://www.nushell.sh/cookbook/).
|
||||
|
||||
Try it in Gitpod.
|
||||
|
||||
[](https://gitpod.io/#https://github.com/nushell/nushell)
|
||||
|
||||
## Installation
|
||||
|
||||
### Local
|
||||
@ -113,12 +109,11 @@ Commands are separated by the pipe symbol (`|`) to denote a pipeline flowing lef
|
||||
0 │ assets │ Dir │ 128 B │ 5 months ago
|
||||
1 │ crates │ Dir │ 704 B │ 50 mins ago
|
||||
2 │ debian │ Dir │ 352 B │ 5 months ago
|
||||
3 │ docker │ Dir │ 288 B │ 3 months ago
|
||||
4 │ docs │ Dir │ 192 B │ 50 mins ago
|
||||
5 │ images │ Dir │ 160 B │ 5 months ago
|
||||
6 │ src │ Dir │ 128 B │ 1 day ago
|
||||
7 │ target │ Dir │ 160 B │ 5 days ago
|
||||
8 │ tests │ Dir │ 192 B │ 3 months ago
|
||||
3 │ docs │ Dir │ 192 B │ 50 mins ago
|
||||
4 │ images │ Dir │ 160 B │ 5 months ago
|
||||
5 │ src │ Dir │ 128 B │ 1 day ago
|
||||
6 │ target │ Dir │ 160 B │ 5 days ago
|
||||
7 │ tests │ Dir │ 192 B │ 3 months ago
|
||||
───┴────────┴──────┴───────┴──────────────
|
||||
```
|
||||
|
||||
|
@ -9,7 +9,7 @@ description = "Library for ANSI terminal colors and styles (bold, underline)"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-ansi-term"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
@ -231,7 +231,6 @@
|
||||
|
||||
#![crate_name = "nu_ansi_term"]
|
||||
#![crate_type = "rlib"]
|
||||
#![crate_type = "dylib"]
|
||||
#![warn(missing_copy_implementations)]
|
||||
// #![warn(missing_docs)]
|
||||
#![warn(trivial_casts, trivial_numeric_casts)]
|
||||
|
@ -4,24 +4,24 @@ description = "CLI for nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-cli"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
build = "build.rs"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-completion = { version = "0.41.0", path="../nu-completion" }
|
||||
nu-command = { version = "0.41.0", path="../nu-command" }
|
||||
nu-data = { version = "0.41.0", path="../nu-data" }
|
||||
nu-engine = { version = "0.41.0", path="../nu-engine" }
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-parser = { version = "0.41.0", path="../nu-parser" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-stream = { version = "0.41.0", path="../nu-stream" }
|
||||
nu-ansi-term = { version = "0.41.0", path="../nu-ansi-term" }
|
||||
nu-path = { version = "0.41.0", path="../nu-path" }
|
||||
nu-completion = { version = "0.44.0", path="../nu-completion" }
|
||||
nu-command = { version = "0.44.0", path="../nu-command" }
|
||||
nu-data = { version = "0.44.0", path="../nu-data" }
|
||||
nu-engine = { version = "0.44.0", path="../nu-engine" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-parser = { version = "0.44.0", path="../nu-parser" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
nu-stream = { version = "0.44.0", path="../nu-stream" }
|
||||
nu-ansi-term = { version = "0.44.0", path="../nu-ansi-term" }
|
||||
nu-path = { version = "0.44.0", path="../nu-path" }
|
||||
|
||||
indexmap ="1.6.1"
|
||||
log = "0.4.14"
|
||||
|
@ -91,10 +91,10 @@ pub fn run_script_file(
|
||||
fn default_prompt_string(cwd: &str) -> String {
|
||||
format!(
|
||||
"{}{}{}{}{}{}> ",
|
||||
Color::Green.bold().prefix().to_string(),
|
||||
Color::Green.bold().prefix(),
|
||||
cwd,
|
||||
nu_ansi_term::ansi::RESET,
|
||||
Color::Cyan.bold().prefix().to_string(),
|
||||
Color::Cyan.bold().prefix(),
|
||||
current_branch(),
|
||||
nu_ansi_term::ansi::RESET
|
||||
)
|
||||
|
@ -1,36 +1,36 @@
|
||||
[package]
|
||||
authors = ["The Nu Project Contributors"]
|
||||
build = "build.rs"
|
||||
description = "CLI for nushell"
|
||||
description = "Commands for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-command"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-data = { version = "0.41.0", path="../nu-data" }
|
||||
nu-engine = { version = "0.41.0", path="../nu-engine" }
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-json = { version = "0.41.0", path="../nu-json" }
|
||||
nu-path = { version = "0.41.0", path="../nu-path" }
|
||||
nu-parser = { version = "0.41.0", path="../nu-parser" }
|
||||
nu-plugin = { version = "0.41.0", path="../nu-plugin" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-serde = { version = "0.41.0", path="../nu-serde" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-stream = { version = "0.41.0", path="../nu-stream" }
|
||||
nu-table = { version = "0.41.0", path="../nu-table" }
|
||||
nu-test-support = { version = "0.41.0", path="../nu-test-support" }
|
||||
nu-value-ext = { version = "0.41.0", path="../nu-value-ext" }
|
||||
nu-ansi-term = { version = "0.41.0", path="../nu-ansi-term" }
|
||||
nu-pretty-hex = { version = "0.41.0", path="../nu-pretty-hex" }
|
||||
nu-data = { version = "0.44.0", path="../nu-data" }
|
||||
nu-engine = { version = "0.44.0", path="../nu-engine" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-json = { version = "0.44.0", path="../nu-json" }
|
||||
nu-path = { version = "0.44.0", path="../nu-path" }
|
||||
nu-parser = { version = "0.44.0", path="../nu-parser" }
|
||||
nu-plugin = { version = "0.44.0", path="../nu-plugin" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-serde = { version = "0.44.0", path="../nu-serde" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
nu-stream = { version = "0.44.0", path="../nu-stream" }
|
||||
nu-table = { version = "0.44.0", path="../nu-table" }
|
||||
nu-test-support = { version = "0.44.0", path="../nu-test-support" }
|
||||
nu-value-ext = { version = "0.44.0", path="../nu-value-ext" }
|
||||
nu-ansi-term = { version = "0.44.0", path="../nu-ansi-term" }
|
||||
nu-pretty-hex = { version = "0.44.0", path="../nu-pretty-hex" }
|
||||
|
||||
url = "2.2.1"
|
||||
mime = "0.3.16"
|
||||
Inflector = "0.11"
|
||||
heck = "0.4.0"
|
||||
base64 = "0.13.0"
|
||||
bigdecimal = { version = "0.3.0", features = ["serde"] }
|
||||
calamine = "0.18.0"
|
||||
@ -73,7 +73,7 @@ serde_urlencoded = "0.7.0"
|
||||
serde_yaml = "0.8.16"
|
||||
sha2 = "0.9.3"
|
||||
strip-ansi-escapes = "0.1.0"
|
||||
sysinfo = { version = "0.21.1", optional = true }
|
||||
sysinfo = { version = "0.23.0", optional = true }
|
||||
thiserror = "1.0.26"
|
||||
term = { version="0.7.0", optional=true }
|
||||
term_size = "0.3.2"
|
||||
|
@ -7,14 +7,14 @@ pub struct SubCommand;
|
||||
|
||||
impl WholeStreamCommand for SubCommand {
|
||||
fn name(&self) -> &str {
|
||||
"into column_path"
|
||||
"into column-path"
|
||||
}
|
||||
|
||||
fn signature(&self) -> Signature {
|
||||
Signature::build("into column_path").rest(
|
||||
Signature::build("into column-path").rest(
|
||||
"rest",
|
||||
SyntaxShape::ColumnPath,
|
||||
"values to convert to column_path",
|
||||
"values to convert to column path",
|
||||
)
|
||||
}
|
||||
|
||||
@ -29,8 +29,8 @@ impl WholeStreamCommand for SubCommand {
|
||||
fn examples(&self) -> Vec<Example> {
|
||||
vec![
|
||||
Example {
|
||||
description: "Convert string to column_path in table",
|
||||
example: "echo [[name]; ['/dev/null'] ['C:\\Program Files'] ['../../Cargo.toml']] | into column_path name",
|
||||
description: "Convert string to column path in table",
|
||||
example: "echo [[name]; ['/dev/null'] ['C:\\Program Files'] ['../../Cargo.toml']] | into column-path name",
|
||||
result: Some(vec![
|
||||
UntaggedValue::row(indexmap! {
|
||||
"name".to_string() => UntaggedValue::column_path("/dev/null", Span::unknown()).into(),
|
||||
@ -47,8 +47,8 @@ impl WholeStreamCommand for SubCommand {
|
||||
]),
|
||||
},
|
||||
Example {
|
||||
description: "Convert string to column_path",
|
||||
example: "echo 'Cargo.toml' | into column_path",
|
||||
description: "Convert string to column path",
|
||||
example: "echo 'Cargo.toml' | into column-path",
|
||||
result: Some(vec![UntaggedValue::column_path("Cargo.toml", Span::unknown()).into()]),
|
||||
},
|
||||
]
|
||||
@ -86,7 +86,7 @@ pub fn action(input: &Value, tag: impl Into<Tag>) -> Result<Value, ShellError> {
|
||||
Primitive::String(a_string) => a_string,
|
||||
_ => {
|
||||
return Err(ShellError::unimplemented(
|
||||
"'into column_path' for non-string primitives",
|
||||
"'into column-path' for non-string primitives",
|
||||
))
|
||||
}
|
||||
},
|
||||
@ -94,12 +94,12 @@ pub fn action(input: &Value, tag: impl Into<Tag>) -> Result<Value, ShellError> {
|
||||
)
|
||||
.into_value(&tag)),
|
||||
UntaggedValue::Row(_) => Err(ShellError::labeled_error(
|
||||
"specify column name to use, with 'into column_path COLUMN'",
|
||||
"specify column name to use, with 'into column-path COLUMN'",
|
||||
"found table",
|
||||
tag,
|
||||
)),
|
||||
_ => Err(ShellError::unimplemented(
|
||||
"'into column_path' for unsupported type",
|
||||
"'into column-path' for unsupported type",
|
||||
)),
|
||||
}
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ pub fn source(args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
|
||||
let path = canonicalize(source_file).map_err(|e| {
|
||||
ShellError::labeled_error(
|
||||
format!("Can't load source file. Reason: {}", e.to_string()),
|
||||
format!("Can't load source file. Reason: {}", e),
|
||||
"Can't load this file",
|
||||
filename.span(),
|
||||
)
|
||||
@ -112,7 +112,7 @@ pub fn source(args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
}
|
||||
Err(e) => {
|
||||
ctx.error(ShellError::labeled_error(
|
||||
format!("Can't load source file. Reason: {}", e.to_string()),
|
||||
format!("Can't load source file. Reason: {}", e),
|
||||
"Can't load this file",
|
||||
filename.span(),
|
||||
));
|
||||
|
@ -81,6 +81,7 @@ fn tutor(args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
vec!["var", "vars", "variable", "variables"],
|
||||
variable_tutor(),
|
||||
),
|
||||
(vec!["engine-q", "e-q"], engineq_tutor()),
|
||||
(vec!["block", "blocks"], block_tutor()),
|
||||
(vec!["shorthand", "shorthands"], shorthand_tutor()),
|
||||
];
|
||||
@ -370,6 +371,29 @@ same value using:
|
||||
"#
|
||||
}
|
||||
|
||||
fn engineq_tutor() -> &'static str {
|
||||
r#"
|
||||
Engine-q is the upcoming engine for Nushell. Build for speed and correctness,
|
||||
it also comes with a set of changes from Nushell versions prior to 0.60. To
|
||||
get ready for engine-q look for some of these changes that might impact your
|
||||
current scripts:
|
||||
|
||||
* Engine-q now uses a few new data structures, including a record syntax
|
||||
that allows you to model key-value pairs similar to JSON objects.
|
||||
* Environment variables can now contain more than just strings. Structured
|
||||
values are converted to strings for external commands using converters.
|
||||
* `if` will now use an `else` keyword before the else block.
|
||||
* We're moving from "config.toml" to "config.nu". This means startup will
|
||||
now be a script file.
|
||||
* `config` and its subcommands are being replaced by a record that you can
|
||||
update in the shell which contains all the settings under the variable
|
||||
`$config`.
|
||||
* bigint/bigdecimal values are now machine i64 and f64 values
|
||||
* And more, you can read more about upcoming changes in the up-to-date list
|
||||
at: https://github.com/nushell/engine-q/issues/522
|
||||
"#
|
||||
}
|
||||
|
||||
fn display(tag: Tag, scope: &Scope, help: &str) -> OutputStream {
|
||||
let help = help.split('`');
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
use crate::prelude::*;
|
||||
use nu_engine::WholeStreamCommand;
|
||||
use itertools::Either;
|
||||
use nu_engine::{FromValue, WholeStreamCommand};
|
||||
use nu_errors::ShellError;
|
||||
use nu_protocol::{Signature, SyntaxShape, Value};
|
||||
use nu_protocol::{Range, Signature, SpannedTypeName, SyntaxShape, Value};
|
||||
use nu_source::Tagged;
|
||||
|
||||
pub struct SubCommand;
|
||||
@ -14,11 +15,16 @@ impl WholeStreamCommand for SubCommand {
|
||||
fn signature(&self) -> Signature {
|
||||
Signature::build("drop nth")
|
||||
.required(
|
||||
"row number",
|
||||
SyntaxShape::Int,
|
||||
"the number of the row to drop",
|
||||
"row number or row range",
|
||||
// FIXME: we can make this accept either Int or Range when we can compose SyntaxShapes
|
||||
SyntaxShape::Any,
|
||||
"the number of the row to drop or a range to drop consecutive rows",
|
||||
)
|
||||
.rest(
|
||||
"rest",
|
||||
SyntaxShape::Any,
|
||||
"Optionally drop more rows (Ignored if first argument is a range)",
|
||||
)
|
||||
.rest("rest", SyntaxShape::Any, "Optionally drop more rows")
|
||||
}
|
||||
|
||||
fn usage(&self) -> &str {
|
||||
@ -41,18 +47,46 @@ impl WholeStreamCommand for SubCommand {
|
||||
example: "echo [first second third] | drop nth 0 2",
|
||||
result: Some(vec![Value::from("second")]),
|
||||
},
|
||||
Example {
|
||||
description: "Drop range rows from second to fourth",
|
||||
example: "echo [first second third fourth fifth] | drop nth (1..3)",
|
||||
result: Some(vec![Value::from("first"), Value::from("fifth")]),
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
fn drop(args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
let row_number: Tagged<u64> = args.req(0)?;
|
||||
let and_rows: Vec<Tagged<u64>> = args.rest(1)?;
|
||||
let input = args.input;
|
||||
fn extract_int_or_range(args: &CommandArgs) -> Result<Either<u64, Range>, ShellError> {
|
||||
let value = args.req::<Value>(0)?;
|
||||
|
||||
let mut rows: Vec<_> = and_rows.into_iter().map(|x| x.item as usize).collect();
|
||||
rows.push(row_number.item as usize);
|
||||
rows.sort_unstable();
|
||||
let int_opt = value.as_u64().map(Either::Left).ok();
|
||||
let range_opt = FromValue::from_value(&value).map(Either::Right).ok();
|
||||
|
||||
int_opt
|
||||
.or(range_opt)
|
||||
.ok_or_else(|| ShellError::type_error("int or range", value.spanned_type_name()))
|
||||
}
|
||||
|
||||
fn drop(args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
let number_or_range = extract_int_or_range(&args)?;
|
||||
let rows = match number_or_range {
|
||||
Either::Left(row_number) => {
|
||||
let and_rows: Vec<Tagged<u64>> = args.rest(1)?;
|
||||
|
||||
let mut rows: Vec<_> = and_rows.into_iter().map(|x| x.item as usize).collect();
|
||||
rows.push(row_number as usize);
|
||||
rows.sort_unstable();
|
||||
rows
|
||||
}
|
||||
Either::Right(row_range) => {
|
||||
let from = row_range.min_u64()? as usize;
|
||||
let to = row_range.max_u64()? as usize;
|
||||
|
||||
(from..=to).collect()
|
||||
}
|
||||
};
|
||||
|
||||
let input = args.input;
|
||||
|
||||
Ok(DropNthIterator {
|
||||
input,
|
||||
|
@ -197,7 +197,7 @@ fn process_row(
|
||||
} else {
|
||||
let mut obj = input.clone();
|
||||
|
||||
for column in column_paths.clone() {
|
||||
for column in column_paths {
|
||||
let path = UntaggedValue::Primitive(Primitive::ColumnPath(column.clone()))
|
||||
.into_value(tag);
|
||||
let data = r.get_data(&as_string(&path)?).borrow().clone();
|
||||
|
@ -112,9 +112,7 @@ fn process_row(
|
||||
};
|
||||
|
||||
match input {
|
||||
obj
|
||||
@
|
||||
Value {
|
||||
obj @ Value {
|
||||
value: UntaggedValue::Row(_),
|
||||
..
|
||||
} => match obj.insert_data_at_column_path(&field, result) {
|
||||
|
@ -117,9 +117,7 @@ fn process_row(
|
||||
};
|
||||
|
||||
match input {
|
||||
obj
|
||||
@
|
||||
Value {
|
||||
obj @ Value {
|
||||
value: UntaggedValue::Row(_),
|
||||
..
|
||||
} => match obj.replace_data_at_column_path(&field, result) {
|
||||
|
@ -86,16 +86,11 @@ fn zip<'a>(
|
||||
) -> Result<Box<dyn Iterator<Item = Value> + 'a + Sync + Send>, ShellError> {
|
||||
Ok(Box::new(l.zip(r?).map(move |(s1, s2)| match (s1, s2) {
|
||||
(
|
||||
left_row
|
||||
@
|
||||
Value {
|
||||
left_row @ Value {
|
||||
value: UntaggedValue::Row(_),
|
||||
..
|
||||
},
|
||||
mut
|
||||
right_row
|
||||
@
|
||||
Value {
|
||||
mut right_row @ Value {
|
||||
value: UntaggedValue::Row(_),
|
||||
..
|
||||
},
|
||||
|
@ -36,6 +36,7 @@ impl WholeStreamCommand for Command {
|
||||
Some('p'),
|
||||
)
|
||||
.switch("raw", "fetch contents as text rather than a table", Some('r'))
|
||||
.switch("insecure", "allow insecure server connections when using SSL", Some('k'))
|
||||
.filter()
|
||||
}
|
||||
|
||||
@ -78,6 +79,7 @@ fn run_fetch(args: CommandArgs) -> Result<ActionStream, ShellError> {
|
||||
)
|
||||
})?,
|
||||
fetch_helper.has_raw,
|
||||
fetch_helper.has_insecure,
|
||||
fetch_helper.user.clone(),
|
||||
fetch_helper.password,
|
||||
))]
|
||||
@ -92,6 +94,7 @@ pub struct Fetch {
|
||||
pub path: Option<Value>,
|
||||
pub tag: Tag,
|
||||
pub has_raw: bool,
|
||||
pub has_insecure: bool,
|
||||
pub user: Option<String>,
|
||||
pub password: Option<String>,
|
||||
}
|
||||
@ -102,6 +105,7 @@ impl Fetch {
|
||||
path: None,
|
||||
tag: Tag::unknown(),
|
||||
has_raw: false,
|
||||
has_insecure: false,
|
||||
user: None,
|
||||
password: None,
|
||||
}
|
||||
@ -121,6 +125,8 @@ impl Fetch {
|
||||
|
||||
self.has_raw = args.has_flag("raw");
|
||||
|
||||
self.has_insecure = args.has_flag("insecure");
|
||||
|
||||
self.user = args.get_flag("user")?;
|
||||
|
||||
self.password = args.get_flag("password")?;
|
||||
@ -132,13 +138,14 @@ impl Fetch {
|
||||
pub async fn fetch(
|
||||
path: &Value,
|
||||
has_raw: bool,
|
||||
has_insecure: bool,
|
||||
user: Option<String>,
|
||||
password: Option<String>,
|
||||
) -> ReturnValue {
|
||||
let path_str = path.as_string()?;
|
||||
let path_span = path.tag.span;
|
||||
|
||||
let result = helper(&path_str, path_span, has_raw, user, password).await;
|
||||
let result = helper(&path_str, path_span, has_raw, has_insecure, user, password).await;
|
||||
|
||||
if let Err(e) = result {
|
||||
return Err(e);
|
||||
@ -168,6 +175,7 @@ async fn helper(
|
||||
location: &str,
|
||||
span: Span,
|
||||
has_raw: bool,
|
||||
has_insecure: bool,
|
||||
user: Option<String>,
|
||||
password: Option<String>,
|
||||
) -> std::result::Result<(Option<String>, Value), ShellError> {
|
||||
@ -188,7 +196,7 @@ async fn helper(
|
||||
_ => None,
|
||||
};
|
||||
|
||||
let client = http_client();
|
||||
let client = http_client(has_insecure);
|
||||
let mut request = client.get(url);
|
||||
|
||||
if let Some(login) = login {
|
||||
@ -360,10 +368,10 @@ async fn helper(
|
||||
|
||||
// Only panics if the user agent is invalid but we define it statically so either
|
||||
// it always or never fails
|
||||
#[allow(clippy::unwrap_used)]
|
||||
fn http_client() -> reqwest::Client {
|
||||
fn http_client(allow_insecure: bool) -> reqwest::Client {
|
||||
reqwest::Client::builder()
|
||||
.user_agent("nushell")
|
||||
.danger_accept_invalid_certs(allow_insecure)
|
||||
.build()
|
||||
.unwrap()
|
||||
.expect("Failed to build reqwest client")
|
||||
}
|
||||
|
@ -53,6 +53,11 @@ impl WholeStreamCommand for Command {
|
||||
"return values as a string instead of a table",
|
||||
Some('r'),
|
||||
)
|
||||
.switch(
|
||||
"insecure",
|
||||
"allow insecure server connections when using SSL",
|
||||
Some('k'),
|
||||
)
|
||||
.filter()
|
||||
}
|
||||
|
||||
@ -91,6 +96,7 @@ fn run_post(args: CommandArgs) -> Result<ActionStream, ShellError> {
|
||||
ShellError::labeled_error("expected a 'path'", "expected a 'path'", &helper.tag)
|
||||
})?,
|
||||
helper.has_raw,
|
||||
helper.has_insecure,
|
||||
&helper.body.clone().ok_or_else(|| {
|
||||
ShellError::labeled_error("expected a 'body'", "expected a 'body'", &helper.tag)
|
||||
})?,
|
||||
@ -114,6 +120,7 @@ pub enum HeaderKind {
|
||||
pub struct Post {
|
||||
pub path: Option<Value>,
|
||||
pub has_raw: bool,
|
||||
pub has_insecure: bool,
|
||||
pub body: Option<Value>,
|
||||
pub user: Option<String>,
|
||||
pub password: Option<String>,
|
||||
@ -126,6 +133,7 @@ impl Post {
|
||||
Post {
|
||||
path: None,
|
||||
has_raw: false,
|
||||
has_insecure: false,
|
||||
body: None,
|
||||
user: None,
|
||||
password: None,
|
||||
@ -156,6 +164,8 @@ impl Post {
|
||||
|
||||
self.has_raw = args.has_flag("raw");
|
||||
|
||||
self.has_insecure = args.has_flag("insecure");
|
||||
|
||||
self.user = args.get_flag("user")?;
|
||||
|
||||
self.password = args.get_flag("password")?;
|
||||
@ -169,6 +179,7 @@ impl Post {
|
||||
pub async fn post_helper(
|
||||
path: &Value,
|
||||
has_raw: bool,
|
||||
has_insecure: bool,
|
||||
body: &Value,
|
||||
user: Option<String>,
|
||||
password: Option<String>,
|
||||
@ -177,8 +188,16 @@ pub async fn post_helper(
|
||||
let path_tag = path.tag.clone();
|
||||
let path_str = path.as_string()?;
|
||||
|
||||
let (file_extension, contents, contents_tag) =
|
||||
post(&path_str, body, user, password, headers, path_tag.clone()).await?;
|
||||
let (file_extension, contents, contents_tag) = post(
|
||||
&path_str,
|
||||
has_insecure,
|
||||
body,
|
||||
user,
|
||||
password,
|
||||
headers,
|
||||
path_tag.clone(),
|
||||
)
|
||||
.await?;
|
||||
|
||||
let file_extension = if has_raw {
|
||||
None
|
||||
@ -202,6 +221,7 @@ pub async fn post_helper(
|
||||
|
||||
pub async fn post(
|
||||
location: &str,
|
||||
allow_insecure: bool,
|
||||
body: &Value,
|
||||
user: Option<String>,
|
||||
password: Option<String>,
|
||||
@ -219,7 +239,9 @@ pub async fn post(
|
||||
value: UntaggedValue::Primitive(Primitive::String(body_str)),
|
||||
..
|
||||
} => {
|
||||
let mut s = http_client().post(location).body(body_str.to_string());
|
||||
let mut s = http_client(allow_insecure)
|
||||
.post(location)
|
||||
.body(body_str.to_string());
|
||||
if let Some(login) = login {
|
||||
s = s.header("Authorization", format!("Basic {}", login));
|
||||
}
|
||||
@ -237,7 +259,9 @@ pub async fn post(
|
||||
value: UntaggedValue::Primitive(Primitive::Binary(b)),
|
||||
..
|
||||
} => {
|
||||
let mut s = http_client().post(location).body(Vec::from(&b[..]));
|
||||
let mut s = http_client(allow_insecure)
|
||||
.post(location)
|
||||
.body(Vec::from(&b[..]));
|
||||
if let Some(login) = login {
|
||||
s = s.header("Authorization", format!("Basic {}", login));
|
||||
}
|
||||
@ -247,7 +271,9 @@ pub async fn post(
|
||||
match value_to_json_value(&value.clone().into_untagged_value()) {
|
||||
Ok(json_value) => match serde_json::to_string(&json_value) {
|
||||
Ok(result_string) => {
|
||||
let mut s = http_client().post(location).body(result_string);
|
||||
let mut s = http_client(allow_insecure)
|
||||
.post(location)
|
||||
.body(result_string);
|
||||
|
||||
if let Some(login) = login {
|
||||
s = s.header("Authorization", format!("Basic {}", login));
|
||||
@ -611,10 +637,10 @@ fn extract_header_value(args: &CommandArgs, key: &str) -> Result<Option<String>,
|
||||
|
||||
// Only panics if the user agent is invalid but we define it statically so either
|
||||
// it always or never fails
|
||||
#[allow(clippy::unwrap_used)]
|
||||
fn http_client() -> reqwest::Client {
|
||||
fn http_client(allow_insecure: bool) -> reqwest::Client {
|
||||
reqwest::Client::builder()
|
||||
.user_agent("nushell")
|
||||
.danger_accept_invalid_certs(allow_insecure)
|
||||
.build()
|
||||
.unwrap()
|
||||
.expect("Failed to build reqwest client")
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ fn kill(args: CommandArgs) -> Result<ActionStream, ShellError> {
|
||||
}
|
||||
cmd.arg("-9");
|
||||
} else if let Some(signal_value) = signal {
|
||||
cmd.arg(format!("-{}", signal_value.item().to_string()));
|
||||
cmd.arg(format!("-{}", signal_value.item()));
|
||||
}
|
||||
|
||||
cmd.arg(pid.item().to_string());
|
||||
|
@ -1,6 +1,5 @@
|
||||
use super::operate;
|
||||
use super::{operate, to_lower_camel_case};
|
||||
use crate::prelude::*;
|
||||
use inflector::cases::camelcase::to_camel_case;
|
||||
use nu_engine::WholeStreamCommand;
|
||||
use nu_errors::ShellError;
|
||||
use nu_protocol::{Signature, SyntaxShape, Value};
|
||||
@ -25,7 +24,7 @@ impl WholeStreamCommand for SubCommand {
|
||||
}
|
||||
|
||||
fn run(&self, args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
operate(args, &to_camel_case)
|
||||
operate(args, &to_lower_camel_case)
|
||||
}
|
||||
|
||||
fn examples(&self) -> Vec<Example> {
|
||||
@ -40,7 +39,7 @@ impl WholeStreamCommand for SubCommand {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::ShellError;
|
||||
use super::{to_camel_case, SubCommand};
|
||||
use super::{to_lower_camel_case, SubCommand};
|
||||
use crate::commands::strings::str_::case::action;
|
||||
use nu_source::Tag;
|
||||
use nu_test_support::value::string;
|
||||
@ -57,7 +56,7 @@ mod tests {
|
||||
let word = string("this-is-the-first-case");
|
||||
let expected = string("thisIsTheFirstCase");
|
||||
|
||||
let actual = action(&word, Tag::unknown(), &to_camel_case).unwrap();
|
||||
let actual = action(&word, Tag::unknown(), &to_lower_camel_case).unwrap();
|
||||
assert_eq!(actual, expected);
|
||||
}
|
||||
#[test]
|
||||
@ -65,7 +64,7 @@ mod tests {
|
||||
let word = string("this_is_the_second_case");
|
||||
let expected = string("thisIsTheSecondCase");
|
||||
|
||||
let actual = action(&word, Tag::unknown(), &to_camel_case).unwrap();
|
||||
let actual = action(&word, Tag::unknown(), &to_lower_camel_case).unwrap();
|
||||
assert_eq!(actual, expected);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
use super::operate;
|
||||
use super::{operate, to_kebab_case};
|
||||
use crate::prelude::*;
|
||||
use inflector::cases::kebabcase::to_kebab_case;
|
||||
use nu_engine::WholeStreamCommand;
|
||||
use nu_errors::ShellError;
|
||||
use nu_protocol::{Signature, SyntaxShape, Value};
|
||||
|
@ -16,6 +16,24 @@ pub use pascal_case::SubCommand as PascalCase;
|
||||
pub use screaming_snake_case::SubCommand as ScreamingSnakeCase;
|
||||
pub use snake_case::SubCommand as SnakeCase;
|
||||
|
||||
use heck::ToKebabCase;
|
||||
use heck::ToLowerCamelCase;
|
||||
use heck::ToShoutySnakeCase;
|
||||
use heck::ToSnakeCase;
|
||||
use heck::ToUpperCamelCase;
|
||||
macro_rules! create_heck_function {
|
||||
($func_name:ident) => {
|
||||
pub fn $func_name(a_slice: &str) -> String {
|
||||
a_slice.$func_name()
|
||||
}
|
||||
};
|
||||
}
|
||||
create_heck_function!(to_upper_camel_case);
|
||||
create_heck_function!(to_lower_camel_case);
|
||||
create_heck_function!(to_kebab_case);
|
||||
create_heck_function!(to_shouty_snake_case);
|
||||
create_heck_function!(to_snake_case);
|
||||
|
||||
struct Arguments {
|
||||
column_paths: Vec<ColumnPath>,
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
use super::operate;
|
||||
use super::{operate, to_upper_camel_case};
|
||||
use crate::prelude::*;
|
||||
use inflector::cases::pascalcase::to_pascal_case;
|
||||
use nu_engine::WholeStreamCommand;
|
||||
use nu_errors::ShellError;
|
||||
use nu_protocol::{Signature, SyntaxShape, Value};
|
||||
@ -25,7 +24,7 @@ impl WholeStreamCommand for SubCommand {
|
||||
}
|
||||
|
||||
fn run(&self, args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
operate(args, &to_pascal_case)
|
||||
operate(args, &to_upper_camel_case)
|
||||
}
|
||||
|
||||
fn examples(&self) -> Vec<Example> {
|
||||
@ -40,7 +39,7 @@ impl WholeStreamCommand for SubCommand {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::ShellError;
|
||||
use super::{to_pascal_case, SubCommand};
|
||||
use super::{to_upper_camel_case, SubCommand};
|
||||
use crate::commands::strings::str_::case::action;
|
||||
use nu_source::Tag;
|
||||
use nu_test_support::value::string;
|
||||
@ -57,7 +56,7 @@ mod tests {
|
||||
let word = string("this-is-the-first-case");
|
||||
let expected = string("ThisIsTheFirstCase");
|
||||
|
||||
let actual = action(&word, Tag::unknown(), &to_pascal_case).unwrap();
|
||||
let actual = action(&word, Tag::unknown(), &to_upper_camel_case).unwrap();
|
||||
assert_eq!(actual, expected);
|
||||
}
|
||||
#[test]
|
||||
@ -65,7 +64,7 @@ mod tests {
|
||||
let word = string("this_is_the_second_case");
|
||||
let expected = string("ThisIsTheSecondCase");
|
||||
|
||||
let actual = action(&word, Tag::unknown(), &to_pascal_case).unwrap();
|
||||
let actual = action(&word, Tag::unknown(), &to_upper_camel_case).unwrap();
|
||||
assert_eq!(actual, expected);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
use super::operate;
|
||||
use super::{operate, to_shouty_snake_case};
|
||||
use crate::prelude::*;
|
||||
use inflector::cases::screamingsnakecase::to_screaming_snake_case;
|
||||
use nu_engine::WholeStreamCommand;
|
||||
use nu_errors::ShellError;
|
||||
use nu_protocol::{Signature, SyntaxShape, Value};
|
||||
@ -25,7 +24,7 @@ impl WholeStreamCommand for SubCommand {
|
||||
}
|
||||
|
||||
fn run(&self, args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
operate(args, &to_screaming_snake_case)
|
||||
operate(args, &to_shouty_snake_case)
|
||||
}
|
||||
|
||||
fn examples(&self) -> Vec<Example> {
|
||||
@ -40,7 +39,7 @@ impl WholeStreamCommand for SubCommand {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::ShellError;
|
||||
use super::{to_screaming_snake_case, SubCommand};
|
||||
use super::{to_shouty_snake_case, SubCommand};
|
||||
use crate::commands::strings::str_::case::action;
|
||||
use nu_source::Tag;
|
||||
use nu_test_support::value::string;
|
||||
@ -57,7 +56,7 @@ mod tests {
|
||||
let word = string("this-is-the-first-case");
|
||||
let expected = string("THIS_IS_THE_FIRST_CASE");
|
||||
|
||||
let actual = action(&word, Tag::unknown(), &to_screaming_snake_case).unwrap();
|
||||
let actual = action(&word, Tag::unknown(), &to_shouty_snake_case).unwrap();
|
||||
assert_eq!(actual, expected);
|
||||
}
|
||||
#[test]
|
||||
@ -65,7 +64,7 @@ mod tests {
|
||||
let word = string("this_is_the_second_case");
|
||||
let expected = string("THIS_IS_THE_SECOND_CASE");
|
||||
|
||||
let actual = action(&word, Tag::unknown(), &to_screaming_snake_case).unwrap();
|
||||
let actual = action(&word, Tag::unknown(), &to_shouty_snake_case).unwrap();
|
||||
assert_eq!(actual, expected);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
use super::operate;
|
||||
use super::{operate, to_snake_case};
|
||||
use crate::prelude::*;
|
||||
use inflector::cases::snakecase::to_snake_case;
|
||||
use nu_engine::WholeStreamCommand;
|
||||
use nu_errors::ShellError;
|
||||
use nu_protocol::{Signature, SyntaxShape, Value};
|
||||
|
@ -1,7 +1,7 @@
|
||||
use crate::prelude::*;
|
||||
use nu_errors::ShellError;
|
||||
use nu_protocol::{Signature, TaggedDictBuilder, UntaggedValue};
|
||||
use sysinfo::{ProcessExt, System, SystemExt};
|
||||
use sysinfo::{PidExt, ProcessExt, System, SystemExt};
|
||||
|
||||
pub struct Command;
|
||||
|
||||
@ -50,7 +50,7 @@ fn run_ps(args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
for pid in result {
|
||||
if let Some(result) = sys.process(pid) {
|
||||
let mut dict = TaggedDictBuilder::new(args.name_tag());
|
||||
dict.insert_untagged("pid", UntaggedValue::int(pid as i64));
|
||||
dict.insert_untagged("pid", UntaggedValue::int(pid.as_u32() as i64));
|
||||
dict.insert_untagged("name", UntaggedValue::string(result.name()));
|
||||
dict.insert_untagged(
|
||||
"status",
|
||||
@ -68,7 +68,7 @@ fn run_ps(args: CommandArgs) -> Result<OutputStream, ShellError> {
|
||||
|
||||
if long {
|
||||
if let Some(parent) = result.parent() {
|
||||
dict.insert_untagged("parent", UntaggedValue::int(parent as i64));
|
||||
dict.insert_untagged("parent", UntaggedValue::int(parent.as_u32() as i64));
|
||||
} else {
|
||||
dict.insert_untagged("parent", UntaggedValue::nothing());
|
||||
}
|
||||
|
@ -66,3 +66,25 @@ fn more_rows_than_table_has() {
|
||||
|
||||
assert_eq!(actual.out, "0");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn nth_range_inclusive() {
|
||||
let actual = nu!(cwd: ".", "echo 10..15 | drop nth (2..3) | to json");
|
||||
|
||||
assert_eq!(actual.out, "[10,11,14,15]");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn nth_range_exclusive() {
|
||||
let actual = nu!(cwd: ".", "echo 10..15 | drop nth (1..<3) | to json");
|
||||
|
||||
assert_eq!(actual.out, "[10,13,14,15]");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn nth_missing_first_argument() {
|
||||
let actual = nu!(cwd: ".", "echo 10..15 | drop nth \"\"");
|
||||
|
||||
assert!(actual.err.contains("Expected int or range"));
|
||||
assert!(actual.err.contains("found string"));
|
||||
}
|
||||
|
@ -4,19 +4,19 @@ description = "Completions for nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-completion"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-engine = { version = "0.41.0", path="../nu-engine" }
|
||||
nu-data = { version = "0.41.0", path="../nu-data" }
|
||||
nu-parser = { version = "0.41.0", path="../nu-parser" }
|
||||
nu-path = { version = "0.41.0", path="../nu-path" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-test-support = { version = "0.41.0", path="../nu-test-support" }
|
||||
nu-engine = { version = "0.44.0", path="../nu-engine" }
|
||||
nu-data = { version = "0.44.0", path="../nu-data" }
|
||||
nu-parser = { version = "0.44.0", path="../nu-parser" }
|
||||
nu-path = { version = "0.44.0", path="../nu-path" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
nu-test-support = { version = "0.44.0", path="../nu-test-support" }
|
||||
indexmap = { version="1.6.1", features=["serde-1"] }
|
||||
|
||||
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
||||
|
@ -1,10 +1,10 @@
|
||||
[package]
|
||||
authors = ["The Nu Project Contributors"]
|
||||
description = "CLI for nushell"
|
||||
description = "Data for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-data"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
@ -27,14 +27,14 @@ sha2 = "0.9.3"
|
||||
sys-locale = "0.1.0"
|
||||
toml = "0.5.8"
|
||||
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-path = { version = "0.41.0", path="../nu-path" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-table = { version = "0.41.0", path="../nu-table" }
|
||||
nu-test-support = { version = "0.41.0", path="../nu-test-support" }
|
||||
nu-value-ext = { version = "0.41.0", path="../nu-value-ext" }
|
||||
nu-ansi-term = { version = "0.41.0", path="../nu-ansi-term" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-path = { version = "0.44.0", path="../nu-path" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
nu-table = { version = "0.44.0", path="../nu-table" }
|
||||
nu-test-support = { version = "0.44.0", path="../nu-test-support" }
|
||||
nu-value-ext = { version = "0.44.0", path="../nu-value-ext" }
|
||||
nu-ansi-term = { version = "0.44.0", path="../nu-ansi-term" }
|
||||
|
||||
[features]
|
||||
dataframe = ["nu-protocol/dataframe"]
|
||||
|
@ -164,8 +164,8 @@ pub fn coerce_compare_primitive(
|
||||
(Date(left), Date(right)) => CompareValues::Date(*left, *right),
|
||||
(Date(left), Duration(right)) => CompareValues::DateDuration(*left, right.clone()),
|
||||
(Boolean(left), Boolean(right)) => CompareValues::Booleans(*left, *right),
|
||||
(Boolean(left), Nothing) => CompareValues::Booleans(*left, false),
|
||||
(Nothing, Boolean(right)) => CompareValues::Booleans(false, *right),
|
||||
(Boolean(left), Nothing) => CompareValues::Ints(if *left { 1 } else { 0 }, -1),
|
||||
(Nothing, Boolean(right)) => CompareValues::Ints(-1, if *right { 1 } else { 0 }),
|
||||
(String(left), Nothing) => CompareValues::String(left.clone(), std::string::String::new()),
|
||||
(Nothing, String(right)) => {
|
||||
CompareValues::String(std::string::String::new(), right.clone())
|
||||
|
@ -4,20 +4,20 @@ description = "Core commands for nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-engine"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[dependencies]
|
||||
nu-data = { version = "0.41.0", path="../nu-data" }
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-parser = { version = "0.41.0", path="../nu-parser" }
|
||||
nu-plugin = { version = "0.41.0", path="../nu-plugin" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-stream = { version = "0.41.0", path="../nu-stream" }
|
||||
nu-value-ext = { version = "0.41.0", path="../nu-value-ext" }
|
||||
nu-ansi-term = { version = "0.41.0", path="../nu-ansi-term" }
|
||||
nu-test-support = { version = "0.41.0", path="../nu-test-support" }
|
||||
nu-path = { version = "0.41.0", path="../nu-path" }
|
||||
nu-data = { version = "0.44.0", path="../nu-data" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-parser = { version = "0.44.0", path="../nu-parser" }
|
||||
nu-plugin = { version = "0.44.0", path="../nu-plugin" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
nu-stream = { version = "0.44.0", path="../nu-stream" }
|
||||
nu-value-ext = { version = "0.44.0", path="../nu-value-ext" }
|
||||
nu-ansi-term = { version = "0.44.0", path="../nu-ansi-term" }
|
||||
nu-test-support = { version = "0.44.0", path="../nu-test-support" }
|
||||
nu-path = { version = "0.44.0", path="../nu-path" }
|
||||
|
||||
trash = { version = "2.0.2", optional = true }
|
||||
which = { version="4.0.2", optional=true }
|
||||
@ -50,7 +50,7 @@ umask = "1.0.0"
|
||||
users = "0.11.0"
|
||||
|
||||
[dev-dependencies]
|
||||
nu-test-support = { version = "0.41.0", path="../nu-test-support" }
|
||||
nu-test-support = { version = "0.44.0", path="../nu-test-support" }
|
||||
hamcrest2 = "0.3.0"
|
||||
|
||||
[features]
|
||||
|
@ -970,7 +970,7 @@ fn move_item(from: &Path, from_tag: &Tag, to: &Path) -> Result<(), ShellError> {
|
||||
} {
|
||||
Ok(_) => Ok(()),
|
||||
Err(e) => Err(ShellError::labeled_error(
|
||||
format!("Could not move {:?} to {:?}. {:}", from, to, e.to_string()),
|
||||
format!("Could not move {:?} to {:?}. {:}", from, to, e),
|
||||
"could not move",
|
||||
from_tag,
|
||||
)),
|
||||
|
@ -147,7 +147,7 @@ pub fn process_script(
|
||||
{
|
||||
val.to_string()
|
||||
} else {
|
||||
format!("{}\\", name.to_string())
|
||||
format!("{}\\", name)
|
||||
}
|
||||
} else {
|
||||
name.to_string()
|
||||
|
@ -34,3 +34,21 @@ fn compare_to_nothing() {
|
||||
);
|
||||
assert_eq!(actual.out, "true");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn compare_nothing_and_boolean() {
|
||||
let actual = nu!(
|
||||
cwd: ".",
|
||||
r#"
|
||||
if $true == $nothing {echo $true} {echo $false}
|
||||
"#
|
||||
);
|
||||
assert_eq!(actual.out, "false");
|
||||
let actual = nu!(
|
||||
cwd: ".",
|
||||
r#"
|
||||
if $false == $nothing {echo $true} {echo $false}
|
||||
"#
|
||||
);
|
||||
assert_eq!(actual.out, "false");
|
||||
}
|
||||
|
@ -4,14 +4,14 @@ description = "Core error subsystem for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-errors"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-ansi-term = { version = "0.41.0", path="../nu-ansi-term" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
nu-ansi-term = { version = "0.44.0", path="../nu-ansi-term" }
|
||||
|
||||
bigdecimal = { package = "bigdecimal", version = "0.3.0", features = ["serde"] }
|
||||
codespan-reporting = { version="0.11.0", features=["serialization"] }
|
||||
|
@ -4,7 +4,7 @@ description = "Fork of serde-hjson"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-json"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
@ -20,6 +20,6 @@ lazy_static = "1"
|
||||
linked-hash-map = { version="0.5", optional=true }
|
||||
|
||||
[dev-dependencies]
|
||||
nu-path = { version = "0.41.0", path="../nu-path" }
|
||||
nu-test-support = { version = "0.41.0", path="../nu-test-support" }
|
||||
nu-path = { version = "0.44.0", path="../nu-path" }
|
||||
nu-test-support = { version = "0.44.0", path="../nu-test-support" }
|
||||
serde_json = "1.0.39"
|
||||
|
@ -4,7 +4,7 @@ description = "Nushell parser"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-parser"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[dependencies]
|
||||
bigdecimal = { package = "bigdecimal", version = "0.3.0", features = ["serde"] }
|
||||
@ -15,12 +15,12 @@ num-bigint = { version="0.4.3", features=["serde"] }
|
||||
itertools = "0.10.0"
|
||||
smart-default = "0.6.0"
|
||||
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-data = { version = "0.41.0", path="../nu-data" }
|
||||
nu-path = { version = "0.41.0", path="../nu-path" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-test-support = { version = "0.41.0", path="../nu-test-support" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-data = { version = "0.44.0", path="../nu-data" }
|
||||
nu-path = { version = "0.44.0", path="../nu-path" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
nu-test-support = { version = "0.44.0", path="../nu-test-support" }
|
||||
|
||||
[features]
|
||||
stable = []
|
||||
|
@ -75,7 +75,7 @@ fn find_source_file(
|
||||
|
||||
let path = canonicalize(&file).map_err(|e| {
|
||||
ParseError::general_error(
|
||||
format!("Can't load source file. Reason: {}", e.to_string()),
|
||||
format!("Can't load source file. Reason: {}", e),
|
||||
"Can't load this file".spanned(file_span),
|
||||
)
|
||||
})?;
|
||||
@ -85,7 +85,7 @@ fn find_source_file(
|
||||
match contents {
|
||||
Ok(contents) => parse(&contents, 0, scope),
|
||||
Err(e) => Err(ParseError::general_error(
|
||||
format!("Can't load source file. Reason: {}", e.to_string()),
|
||||
format!("Can't load source file. Reason: {}", e),
|
||||
"Can't load this file".spanned(file_span),
|
||||
)),
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ description = "Path handling library for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-path"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[dependencies]
|
||||
dirs-next = "2.0.0"
|
||||
|
@ -4,17 +4,17 @@ description = "Nushell Plugin"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-plugin"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-test-support = { path="../nu-test-support", version = "0.41.0" }
|
||||
nu-value-ext = { path="../nu-value-ext", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
nu-test-support = { path="../nu-test-support", version = "0.44.0" }
|
||||
nu-value-ext = { path="../nu-value-ext", version = "0.44.0" }
|
||||
indexmap = { version="1.6.1", features=["serde-1"] }
|
||||
serde = { version="1.0", features=["derive"] }
|
||||
serde_json = "1.0"
|
||||
|
@ -4,7 +4,7 @@ description = "Pretty hex dump of bytes slice in the common style."
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-pretty-hex"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
@ -16,7 +16,7 @@ name = "nu_pretty_hex"
|
||||
path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
nu-ansi-term = { path="../nu-ansi-term", version = "0.41.0" }
|
||||
nu-ansi-term = { path="../nu-ansi-term", version = "0.44.0" }
|
||||
rand = "0.8.3"
|
||||
|
||||
[dev-dependencies]
|
||||
|
@ -4,7 +4,7 @@ description = "Core values and protocols for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-protocol"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
@ -18,8 +18,8 @@ derive-new = "0.5.8"
|
||||
getset = "0.1.1"
|
||||
indexmap = { version="1.6.1", features=["serde-1"] }
|
||||
log = "0.4.14"
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
num-bigint = { version = "0.4.3", features = ["serde"] }
|
||||
num-integer = "0.1.44"
|
||||
num-traits = "0.2.14"
|
||||
|
@ -6,7 +6,7 @@
|
||||
macro_rules! out {
|
||||
($($tokens:tt)*) => {
|
||||
use std::io::Write;
|
||||
print!($($tokens)*);
|
||||
write!(std::io::stdout(), $($tokens)*).unwrap_or(());
|
||||
let _ = std::io::stdout().flush();
|
||||
}
|
||||
}
|
||||
@ -17,7 +17,12 @@ macro_rules! out {
|
||||
/// and stray printlns left by accident
|
||||
#[macro_export]
|
||||
macro_rules! outln {
|
||||
($($tokens:tt)*) => { println!($($tokens)*) }
|
||||
($($tokens:tt)*) => {
|
||||
{
|
||||
use std::io::Write;
|
||||
writeln!(std::io::stdout(), $($tokens)*).unwrap_or(())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Outputs to standard error
|
||||
@ -26,7 +31,12 @@ macro_rules! outln {
|
||||
/// and stray printlns left by accident
|
||||
#[macro_export]
|
||||
macro_rules! errln {
|
||||
($($tokens:tt)*) => { eprintln!($($tokens)*) }
|
||||
($($tokens:tt)*) => {
|
||||
{
|
||||
use std::io::Write;
|
||||
writeln!(std::io::stderr(), $($tokens)*).unwrap_or(())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
|
@ -573,9 +573,7 @@ impl Value {
|
||||
value: UntaggedValue::Table(rows),
|
||||
..
|
||||
} => rows.is_empty(),
|
||||
r
|
||||
@
|
||||
Value {
|
||||
r @ Value {
|
||||
value: UntaggedValue::Row(_),
|
||||
..
|
||||
} => r.row_entries().all(|(_, value)| value.is_empty()),
|
||||
|
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "nu-serde"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
edition = "2018"
|
||||
authors = ["The Nu Project Contributors"]
|
||||
description = "Turn any value into a nu-protocol::Value with serde"
|
||||
@ -10,8 +10,8 @@ documentation = "https://docs.rs/nu-serde"
|
||||
|
||||
[dependencies]
|
||||
bigdecimal = { package = "bigdecimal", version = "0.3.0", features = ["serde"] }
|
||||
nu-protocol = { version = "0.41.0", path = "../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path = "../nu-source" }
|
||||
nu-protocol = { version = "0.44.0", path = "../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path = "../nu-source" }
|
||||
serde = "1"
|
||||
thiserror = "1"
|
||||
|
||||
|
@ -4,7 +4,7 @@ description = "A source string characterizer for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-source"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
@ -4,12 +4,12 @@ description = "Nushell stream"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-stream"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[dependencies]
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
|
||||
[features]
|
||||
stable = []
|
||||
|
@ -4,7 +4,7 @@ description = "Nushell table printing"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-table"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
[[bin]]
|
||||
@ -13,7 +13,7 @@ path = "src/main.rs"
|
||||
|
||||
[dependencies]
|
||||
atty = "0.2.14"
|
||||
nu-ansi-term = { version = "0.41.0", path="../nu-ansi-term" }
|
||||
nu-ansi-term = { version = "0.44.0", path="../nu-ansi-term" }
|
||||
|
||||
regex = "1.4"
|
||||
strip-ansi-escapes = "0.1.1"
|
||||
|
@ -4,16 +4,16 @@ description = "Support for writing Nushell tests"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-test-support"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-path = { version = "0.41.0", path="../nu-path" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-path = { version = "0.44.0", path="../nu-path" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
|
||||
bigdecimal = { package = "bigdecimal", version = "0.3.0", features = ["serde"] }
|
||||
chrono = "0.4.19"
|
||||
|
@ -97,7 +97,7 @@ impl Executable for Director {
|
||||
.spawn()
|
||||
{
|
||||
Ok(child) => child,
|
||||
Err(why) => panic!("Can't run test {}", why.to_string()),
|
||||
Err(why) => panic!("Can't run test {}", why),
|
||||
};
|
||||
|
||||
if let Some(pipelines) = &self.pipeline {
|
||||
|
@ -4,15 +4,15 @@ description = "Extension traits for values in Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu-value-ext"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
|
||||
indexmap = { version="1.6.1", features=["serde-1"] }
|
||||
itertools = "0.10.0"
|
||||
|
@ -4,7 +4,7 @@ description = "A binary viewer plugin for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_binaryview"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
@ -13,12 +13,12 @@ doctest = false
|
||||
crossterm = "0.19"
|
||||
image = { version = "0.23.14", default_features = false, features = ["png", "jpeg"] }
|
||||
neso = "0.5.0"
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-ansi-term = { version = "0.41.0", path="../nu-ansi-term" }
|
||||
nu-pretty-hex = { version = "0.41.0", path="../nu-pretty-hex" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
nu-ansi-term = { version = "0.44.0", path="../nu-ansi-term" }
|
||||
nu-pretty-hex = { version = "0.44.0", path="../nu-pretty-hex" }
|
||||
rawkey = "0.1.3"
|
||||
|
||||
[build-dependencies]
|
||||
|
@ -4,18 +4,18 @@ description = "A plugin to display charts"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_chart"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-data = { path="../nu-data", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-value-ext = { path="../nu-value-ext", version = "0.41.0" }
|
||||
nu-data = { path="../nu-data", version = "0.44.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
nu-value-ext = { path="../nu-value-ext", version = "0.44.0" }
|
||||
|
||||
crossterm = "0.19.0"
|
||||
tui = { version="0.15.0", default-features=false, features=["crossterm"] }
|
||||
|
@ -4,7 +4,7 @@ description = "A converter plugin to the bson format for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_from_bson"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
@ -12,9 +12,9 @@ doctest = false
|
||||
[dependencies]
|
||||
bigdecimal = { package = "bigdecimal", version = "0.3.0", features = ["serde"] }
|
||||
bson = { version = "2.0.1", features = [ "chrono-0_4" ] }
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
|
||||
[build-dependencies]
|
||||
|
@ -4,16 +4,16 @@ description = "A converter plugin to the mp4 format for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_from_mp4"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
tempfile = "3.2.0"
|
||||
mp4 = "0.9.0"
|
||||
|
||||
|
@ -4,17 +4,17 @@ description = "A converter plugin to the bson format for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_from_sqlite"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
bigdecimal = { package = "bigdecimal", version = "0.3.0", features = ["serde"] }
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
tempfile = "3.2.0"
|
||||
|
||||
[dependencies.rusqlite]
|
||||
|
@ -4,18 +4,18 @@ description = "A version incrementer plugin for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_inc"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-test-support = { path="../nu-test-support", version = "0.41.0" }
|
||||
nu-value-ext = { path="../nu-value-ext", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
nu-test-support = { path="../nu-test-support", version = "0.44.0" }
|
||||
nu-value-ext = { path="../nu-value-ext", version = "0.44.0" }
|
||||
|
||||
semver = "0.11.0"
|
||||
|
||||
|
@ -49,9 +49,7 @@ impl Plugin for Inc {
|
||||
if let Some(args) = call_info.args.positional {
|
||||
for arg in args {
|
||||
match arg {
|
||||
table
|
||||
@
|
||||
Value {
|
||||
table @ Value {
|
||||
value: UntaggedValue::Primitive(Primitive::ColumnPath(_)),
|
||||
..
|
||||
} => {
|
||||
|
@ -4,15 +4,15 @@ description = "A regex match plugin for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_match"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
regex = "1.4.3"
|
||||
|
||||
[build-dependencies]
|
||||
|
@ -4,14 +4,14 @@ description = "query json files with gjson"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_query_json"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
gjson = "0.8.0"
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-plugin = { version = "0.41.0", path="../nu-plugin" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-plugin = { version = "0.44.0", path="../nu-plugin" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
|
@ -4,17 +4,17 @@ description = "An S3 plugin for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_s3"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
futures = { version="0.3.12", features=["compat", "io-compat"] }
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
s3handler = "0.7.5"
|
||||
|
||||
[build-dependencies]
|
||||
|
@ -4,17 +4,17 @@ description = "web scraping using css selector"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_selector"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
scraper = "0.12.0"
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-plugin = { version = "0.41.0", path="../nu-plugin" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-plugin = { version = "0.44.0", path="../nu-plugin" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
|
||||
[dev-dependencies]
|
||||
indexmap = { version="1.7", features=["serde-1"] }
|
||||
|
@ -4,17 +4,17 @@ description = "A plugin to open files/URLs directly from Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_start"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
glob = "0.3.0"
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
url = "2.2.0"
|
||||
webbrowser = "0.5.5"
|
||||
|
||||
@ -22,5 +22,5 @@ webbrowser = "0.5.5"
|
||||
open = "1.4.0"
|
||||
|
||||
[build-dependencies]
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
|
@ -4,19 +4,19 @@ description = "Text viewer plugin for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_textview"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-data = { path="../nu-data", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-data = { path="../nu-data", version = "0.44.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
|
||||
bat = { version="0.18", default-features = false, features=["regex-fancy", "paging", "git"] }
|
||||
bat = { version="0.18", default-features = false, features=["regex-onig", "paging", "git"] }
|
||||
term_size = "0.3.2"
|
||||
url = "2.2.0"
|
||||
|
||||
|
@ -4,17 +4,17 @@ description = "A converter plugin to the bson format for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_to_bson"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
bson = { version = "2.0.1", features = [ "chrono-0_4" ] }
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
num-traits = "0.2.14"
|
||||
|
||||
[features]
|
||||
|
@ -4,17 +4,17 @@ description = "A converter plugin to the SQLite format for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_to_sqlite"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
hex = "0.4.2"
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-source = { path="../nu-source", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
nu-source = { path="../nu-source", version = "0.44.0" }
|
||||
tempfile = "3.2.0"
|
||||
|
||||
[dependencies.rusqlite]
|
||||
|
@ -4,16 +4,16 @@ description = "Tree viewer plugin for Nushell"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_tree"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
derive-new = "0.5.8"
|
||||
nu-errors = { path="../nu-errors", version = "0.41.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.41.0" }
|
||||
nu-errors = { path="../nu-errors", version = "0.44.0" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { path="../nu-protocol", version = "0.44.0" }
|
||||
ptree = { version = "0.4.0", default-features = false }
|
||||
|
||||
|
||||
|
@ -4,16 +4,16 @@ description = "Traverses xml"
|
||||
edition = "2018"
|
||||
license = "MIT"
|
||||
name = "nu_plugin_xpath"
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[lib]
|
||||
doctest = false
|
||||
|
||||
[dependencies]
|
||||
nu-errors = { version = "0.41.0", path="../nu-errors" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.41.0" }
|
||||
nu-protocol = { version = "0.41.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.41.0", path="../nu-source" }
|
||||
nu-errors = { version = "0.44.0", path="../nu-errors" }
|
||||
nu-plugin = { path="../nu-plugin", version = "0.44.0" }
|
||||
nu-protocol = { version = "0.44.0", path="../nu-protocol" }
|
||||
nu-source = { version = "0.44.0", path="../nu-source" }
|
||||
|
||||
bigdecimal = { package = "bigdecimal", version = "0.3.0", features = ["serde"] }
|
||||
indexmap = { version="1.6.1", features=["serde-1"] }
|
||||
@ -21,4 +21,4 @@ sxd-document = "0.3.2"
|
||||
sxd-xpath = "0.4.2"
|
||||
|
||||
[dev-dependencies]
|
||||
nu-test-support = { path="../nu-test-support", version = "0.41.0" }
|
||||
nu-test-support = { path="../nu-test-support", version = "0.44.0" }
|
||||
|
5
debian/changelog
vendored
5
debian/changelog
vendored
@ -1,5 +0,0 @@
|
||||
nu (0.2.0-1) unstable; urgency=low
|
||||
|
||||
* Initial release
|
||||
|
||||
-- Jan Koprowski <jan.koprowski@gmail.com> Wed, 04 Sep 2019 21:38:44 +0200
|
1
debian/compat
vendored
1
debian/compat
vendored
@ -1 +0,0 @@
|
||||
10
|
18
debian/control
vendored
18
debian/control
vendored
@ -1,18 +0,0 @@
|
||||
Source: nu
|
||||
Section: shells
|
||||
Priority: optional
|
||||
Maintainer: Jan Koprowski <jan.koprowski@gmail.com>
|
||||
Build-Depends: debhelper (>= 10)
|
||||
Standards-Version: 4.1.2
|
||||
Homepage: https://github.com/nushell/nushell
|
||||
Vcs-Git: https://github.com/nushell/nushell.git
|
||||
Vcs-Browser: https://github.com/nushell/nushell
|
||||
|
||||
Package: nu
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: A modern shell for the GitHub era
|
||||
The goal of this project is to take the Unix
|
||||
philosophy of shells, where pipes connect simple
|
||||
commands together, and bring it to the modern
|
||||
style of development.
|
32
debian/copyright
vendored
32
debian/copyright
vendored
@ -1,32 +0,0 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: nu
|
||||
Source: https://github.com/nushell/nushell
|
||||
|
||||
Files: *
|
||||
Copyright: 2019 Yehuda Katz
|
||||
2019 Jonathan Turner
|
||||
License: MIT
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2019 Yehuda Katz
|
||||
2019 Jonathan Turner
|
||||
License: MIT
|
||||
|
||||
License: MIT
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
11
debian/install
vendored
11
debian/install
vendored
@ -1,11 +0,0 @@
|
||||
target/release/nu usr/bin
|
||||
target/release/nu_plugin_binaryview usr/bin
|
||||
target/release/nu_plugin_edit usr/bin
|
||||
target/release/nu_plugin_inc usr/bin
|
||||
target/release/nu_plugin_skip usr/bin
|
||||
target/release/nu_plugin_str usr/bin
|
||||
target/release/nu_plugin_sum usr/bin
|
||||
target/release/nu_plugin_sys usr/bin
|
||||
target/release/nu_plugin_textview usr/bin
|
||||
target/release/nu_plugin_tree usr/bin
|
||||
target/release/nu_plugin_docker usr/bin
|
8
debian/postinst
vendored
8
debian/postinst
vendored
@ -1,8 +0,0 @@
|
||||
#! /bin/bash
|
||||
|
||||
if [ "$1" = configure ] && which add-shell >/dev/null
|
||||
then
|
||||
add-shell /usr/bin/nu
|
||||
fi
|
||||
|
||||
exit 0
|
17
debian/postrm
vendored
17
debian/postrm
vendored
@ -1,17 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
upgrade|failed-upgrade|abort-install|abort-upgrade)
|
||||
;;
|
||||
remove|purge|disappear)
|
||||
if which remove-shell >/dev/null && [ -f /etc/shells ]; then
|
||||
remove-shell /usr/bin/nu
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "postrm called with unknown argument \`$1'" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
25
debian/rules
vendored
25
debian/rules
vendored
@ -1,25 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
# See debhelper(7) (uncomment to enable)
|
||||
# output every command that modifies files on the build system.
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
|
||||
# see FEATURE AREAS in dpkg-buildflags(1)
|
||||
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
|
||||
# see ENVIRONMENT in dpkg-buildflags(1)
|
||||
# package maintainers to append CFLAGS
|
||||
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||
# package maintainers to append LDFLAGS
|
||||
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
|
||||
# dh_make generated override targets
|
||||
# This is example for Cmake (See https://bugs.debian.org/641051 )
|
||||
#override_dh_auto_configure:
|
||||
# dh_auto_configure -- # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH)
|
||||
|
1
debian/source/format
vendored
1
debian/source/format
vendored
@ -1 +0,0 @@
|
||||
3.0 (quilt)
|
@ -1,11 +0,0 @@
|
||||
ARG FROMTAG=latest
|
||||
FROM quay.io/nushell/nu-base:${FROMTAG} as base
|
||||
FROM ubuntu:18.04
|
||||
COPY --from=base /usr/local/bin/nu /usr/local/bin/nu
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y libssl-dev pkg-config \
|
||||
&& apt-get clean \
|
||||
&& rm -fr /var/lib/apt/lists/*
|
||||
ENTRYPOINT ["nu"]
|
||||
CMD ["-l", "info"]
|
@ -1,26 +0,0 @@
|
||||
FROM ubuntu:18.04
|
||||
|
||||
# docker build -f docker/Dockerfile.nu-base -t nushell/nu-base .
|
||||
# docker run -it nushell/nu-base
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
RUN apt-get update && apt-get install -y libssl-dev \
|
||||
libxcb-composite0-dev \
|
||||
pkg-config \
|
||||
libx11-dev \
|
||||
curl
|
||||
|
||||
ARG RELEASE=false
|
||||
WORKDIR /code
|
||||
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --no-modify-path --default-toolchain "stable"
|
||||
ENV PATH=/root/.cargo/bin:$PATH
|
||||
RUN rustup update
|
||||
COPY . /code
|
||||
RUN echo "##vso[task.prependpath]/root/.cargo/bin" && \
|
||||
rustc -Vv && \
|
||||
if $RELEASE; then cargo build --release; \
|
||||
cp target/release/nu /usr/local/bin; \
|
||||
else cargo build; \
|
||||
cp target/debug/nu /usr/local/bin; fi;
|
||||
ENTRYPOINT ["nu"]
|
||||
CMD ["-l", "info"]
|
@ -1,7 +0,0 @@
|
||||
ARG base
|
||||
FROM ${base}
|
||||
|
||||
ARG artifact
|
||||
COPY ${artifact} /bin/
|
||||
|
||||
ENTRYPOINT ["/bin/nu"]
|
@ -1,15 +0,0 @@
|
||||
ARG base
|
||||
FROM debian:stable-slim AS patch
|
||||
FROM ${base}
|
||||
|
||||
ARG artifact
|
||||
COPY ${artifact} /bin/
|
||||
|
||||
COPY --from=patch \
|
||||
/lib/x86_64-linux-gnu/libz.so.1 \
|
||||
/lib/x86_64-linux-gnu/libdl.so.2 \
|
||||
/lib/x86_64-linux-gnu/librt.so.1 \
|
||||
/lib/x86_64-linux-gnu/libgcc_s.so.1 \
|
||||
/lib/x86_64-linux-gnu/
|
||||
|
||||
ENTRYPOINT ["/bin/nu"]
|
@ -1,12 +0,0 @@
|
||||
ARG base
|
||||
FROM debian:stable-slim AS patch
|
||||
FROM ${base}
|
||||
|
||||
ARG artifact
|
||||
COPY ${artifact} /bin/
|
||||
|
||||
COPY --from=patch \
|
||||
/lib/x86_64-linux-gnu/libz.so.1 \
|
||||
/lib/x86_64-linux-gnu/
|
||||
|
||||
ENTRYPOINT ["/bin/nu"]
|
@ -1,11 +0,0 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
nushell:
|
||||
image: ${DOCKER_REGISTRY}/nu:${DOCKER_TAG}
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: docker/Package${PATCH}.Dockerfile
|
||||
args:
|
||||
base: ${BASE_IMAGE}
|
||||
artifact: ${NU_BINS}
|
@ -1,17 +0,0 @@
|
||||
# docker build -f docker/packaging/Dockerfile.ubuntu-bionic .
|
||||
|
||||
ARG FROMTAG=latest
|
||||
FROM quay.io/nushell/nu-base:${FROMTAG}
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
devscripts \
|
||||
debhelper
|
||||
|
||||
COPY debian /code/debian
|
||||
|
||||
RUN rustc -Vv && cargo build --release && \
|
||||
cp README.md debian/README.Debian && \
|
||||
debuild -b -us -uc -i && \
|
||||
dpkg -i ../nu_0.2.0-1_amd64.deb && \
|
||||
chsh -s /usr/bin/nu && \
|
||||
echo 'ls | get name ' | /usr/bin/nu
|
@ -1,55 +0,0 @@
|
||||
# Packaging
|
||||
|
||||
This directory contains docker images used for creating packages for different distribution.
|
||||
|
||||
## How to use this docker files
|
||||
|
||||
Start with:
|
||||
|
||||
```bash
|
||||
docker build -f docker/packaging/Dockerfile.ubuntu-bionic -t nushell/package:ubuntu-bionic .
|
||||
```
|
||||
|
||||
after building the image please run container:
|
||||
|
||||
```bash
|
||||
docker run -td --rm --name nushell_package_ubuntu_bionic nushell/package:ubuntu-bionic
|
||||
```
|
||||
|
||||
and copy deb package from inside:
|
||||
|
||||
```bash
|
||||
docker cp nushell_package_ubuntu_bionic:/nu_0.2.0-1_amd64.deb .
|
||||
```
|
||||
|
||||
or shell inside, and test install:
|
||||
|
||||
```bash
|
||||
docker exec -it nushell_package_ubuntu_bionic bash
|
||||
dpkg -i /nu_0.2.0-1_amd64.deb
|
||||
|
||||
(Reading database ... 25656 files and directories currently installed.)
|
||||
Preparing to unpack /nu_0.2.0-1_amd64.deb ...
|
||||
Unpacking nu (0.2.0-1) over (0.2.0-1) ...
|
||||
Setting up nu (0.2.0-1) ...
|
||||
```
|
||||
|
||||
When you are finished, exit and stop the container. It will be removed since we
|
||||
used `--rm`.
|
||||
|
||||
```bash
|
||||
docker stop nushell_package_ubuntu_bionic
|
||||
```
|
||||
|
||||
## What should be done
|
||||
|
||||
* We should run sbuild command to create chroot and then install dpkg.
|
||||
For two reasons. First: we want to use the same tools as Ubuntu package builders
|
||||
to handle the cornercases. Second: we want to test dpkg requirements.
|
||||
<https://github.com/nushell/nushell/issues/681>
|
||||
|
||||
* File debian/changelog file should be generated based on git history.
|
||||
<https://github.com/nushell/nushell/issues/682>
|
||||
|
||||
* Building package and nu version should be parametrized.
|
||||
<https://github.com/nushell/nushell/issues/683>
|
@ -86,7 +86,7 @@ version = "0.4.6"
|
||||
[dependencies.cursive]
|
||||
default-features = false
|
||||
features = ["pancurses-backend"]
|
||||
version = "0.41.0"
|
||||
version = "0.44.0"
|
||||
|
||||
[dependencies.futures-preview]
|
||||
features = ["compat", "io-compat"]
|
||||
|
@ -14,7 +14,11 @@ pivot_mode = "auto" # auto, always, never
|
||||
ctrlc_exit = false
|
||||
complete_from_path = true
|
||||
rm_always_trash = true
|
||||
prompt = "build-string (ansi gb) (pwd) (ansi reset) '(' (ansi cb) (do -i { git rev-parse --abbrev-ref HEAD } | str trim ) (ansi reset) ')' (char newline) (ansi yb) (date format '%m/%d/%Y %I:%M:%S%.3f %p') (ansi reset) '> ' "
|
||||
|
||||
[env]
|
||||
# nu now reads PROMPT_COMMAND env var instead of "prompt" config parameter
|
||||
# and if fails to parse it, it silently ignores it and uses default prompt
|
||||
PROMPT_COMMAND = "build-string (ansi gb) (pwd) (ansi reset) '(' (ansi cb) (do -i { git rev-parse --abbrev-ref HEAD } | str trim ) (ansi reset) ')' (char newline) (ansi yb) (date format '%m/%d/%Y %I:%M:%S%.3f %p') (ansi reset) '> ' "
|
||||
|
||||
# for each of the options in the color_config section, you are able to set
|
||||
# the color alone or with one of the following attributes.
|
||||
|
6
samples/wasm/package-lock.json
generated
6
samples/wasm/package-lock.json
generated
@ -45,9 +45,9 @@
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||
},
|
||||
"follow-redirects": {
|
||||
"version": "1.14.4",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.4.tgz",
|
||||
"integrity": "sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g=="
|
||||
"version": "1.14.7",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
|
||||
"integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ=="
|
||||
},
|
||||
"fs-minipass": {
|
||||
"version": "2.1.0",
|
||||
|
@ -12,9 +12,9 @@ pub mod support {
|
||||
pub fn in_path(dirs: &Dirs, block: impl FnOnce() -> Outcome) -> Outcome {
|
||||
let for_env_manifest = dirs.test().to_string_lossy();
|
||||
|
||||
nu!(cwd: dirs.root(), format!("autoenv trust \"{}\"", for_env_manifest.to_string()));
|
||||
nu!(cwd: dirs.root(), format!("autoenv trust \"{}\"", for_env_manifest));
|
||||
let out = block();
|
||||
nu!(cwd: dirs.root(), format!("autoenv untrust \"{}\"", for_env_manifest.to_string()));
|
||||
nu!(cwd: dirs.root(), format!("autoenv untrust \"{}\"", for_env_manifest));
|
||||
|
||||
out
|
||||
}
|
||||
|
@ -53,3 +53,20 @@ fn plugins_are_declared_with_wix() {
|
||||
|
||||
assert_eq!(actual.out, "0");
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(not(windows))]
|
||||
fn do_not_panic_if_broken_pipe() {
|
||||
// `nu -h | false`
|
||||
// used to panic with a BrokenPipe error
|
||||
let child_output = std::process::Command::new("sh")
|
||||
.arg("-c")
|
||||
.arg(format!(
|
||||
"{:?} -h | false",
|
||||
nu_test_support::fs::executable_path()
|
||||
))
|
||||
.output()
|
||||
.expect("failed to execute process");
|
||||
|
||||
assert!(child_output.stderr.is_empty());
|
||||
}
|
||||
|
Reference in New Issue
Block a user