Compare commits

...

3 Commits

Author SHA1 Message Date
JT
a660720b68 Bump to 0.44 (#4365) 2022-02-07 20:15:46 -05:00
265ee1281d Drop with iter range (#4242)
* Allow range in 'drop nth'

* Unit tests for drop nth range

* Add range case to the description

* Fix description 2

* format fixes

* Fix example and some refactoring

* clippy fixes
2022-02-07 08:02:35 -05:00
JT
cdc8e67d61 Remove unused repo parts (#4271)
* Remove unused repo parts

* Update README

* cargo fmt
2022-01-26 07:31:04 +11:00
69 changed files with 338 additions and 807 deletions

View File

@ -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

View File

@ -1 +0,0 @@
target

18
.gitpod.Dockerfile vendored
View File

@ -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

View File

@ -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==

View File

@ -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"
}
]
}

View File

@ -1,12 +0,0 @@
{
"tasks": [
{
"command": "cargo",
"args": [
"build"
],
"type": "process",
"label": "cargo",
}
],
}

72
Cargo.lock generated
View File

@ -2252,7 +2252,7 @@ dependencies = [
[[package]]
name = "nu"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"ctrlc",
"futures 0.3.18",
@ -2292,7 +2292,7 @@ dependencies = [
[[package]]
name = "nu-ansi-term"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"doc-comment",
"overload",
@ -2304,7 +2304,7 @@ dependencies = [
[[package]]
name = "nu-cli"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"ctrlc",
"indexmap",
@ -2331,7 +2331,7 @@ dependencies = [
[[package]]
name = "nu-command"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"base64",
"bigdecimal",
@ -2418,7 +2418,7 @@ dependencies = [
[[package]]
name = "nu-completion"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"indexmap",
"is_executable",
@ -2434,7 +2434,7 @@ dependencies = [
[[package]]
name = "nu-data"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"byte-unit",
@ -2464,7 +2464,7 @@ dependencies = [
[[package]]
name = "nu-engine"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"bytes 1.1.0",
@ -2509,7 +2509,7 @@ dependencies = [
[[package]]
name = "nu-errors"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"codespan-reporting",
@ -2528,7 +2528,7 @@ dependencies = [
[[package]]
name = "nu-json"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"lazy_static",
"linked-hash-map",
@ -2542,7 +2542,7 @@ dependencies = [
[[package]]
name = "nu-parser"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"derive-new",
@ -2561,7 +2561,7 @@ dependencies = [
[[package]]
name = "nu-path"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"dirs-next",
"dunce",
@ -2569,7 +2569,7 @@ dependencies = [
[[package]]
name = "nu-plugin"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"indexmap",
"nu-errors",
@ -2583,7 +2583,7 @@ dependencies = [
[[package]]
name = "nu-pretty-hex"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"heapless",
"nu-ansi-term",
@ -2592,7 +2592,7 @@ dependencies = [
[[package]]
name = "nu-protocol"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"byte-unit",
@ -2614,7 +2614,7 @@ dependencies = [
[[package]]
name = "nu-serde"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"insta",
@ -2626,7 +2626,7 @@ dependencies = [
[[package]]
name = "nu-source"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"derive-new",
"getset",
@ -2637,7 +2637,7 @@ dependencies = [
[[package]]
name = "nu-stream"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"nu-errors",
"nu-protocol",
@ -2646,7 +2646,7 @@ dependencies = [
[[package]]
name = "nu-table"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"atty",
"nu-ansi-term",
@ -2657,7 +2657,7 @@ dependencies = [
[[package]]
name = "nu-test-support"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"chrono",
@ -2675,7 +2675,7 @@ dependencies = [
[[package]]
name = "nu-value-ext"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"indexmap",
"itertools",
@ -2687,7 +2687,7 @@ dependencies = [
[[package]]
name = "nu_plugin_binaryview"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"crossterm",
"image",
@ -2703,7 +2703,7 @@ dependencies = [
[[package]]
name = "nu_plugin_chart"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"crossterm",
"nu-data",
@ -2717,7 +2717,7 @@ dependencies = [
[[package]]
name = "nu_plugin_from_bson"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"bson",
@ -2729,7 +2729,7 @@ dependencies = [
[[package]]
name = "nu_plugin_from_mp4"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"mp4",
"nu-errors",
@ -2741,7 +2741,7 @@ dependencies = [
[[package]]
name = "nu_plugin_from_sqlite"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"nu-errors",
@ -2754,7 +2754,7 @@ dependencies = [
[[package]]
name = "nu_plugin_inc"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"nu-errors",
"nu-plugin",
@ -2767,7 +2767,7 @@ dependencies = [
[[package]]
name = "nu_plugin_match"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"nu-errors",
"nu-plugin",
@ -2777,7 +2777,7 @@ dependencies = [
[[package]]
name = "nu_plugin_query_json"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"gjson",
"nu-errors",
@ -2788,7 +2788,7 @@ dependencies = [
[[package]]
name = "nu_plugin_s3"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"futures 0.3.18",
"nu-errors",
@ -2800,7 +2800,7 @@ dependencies = [
[[package]]
name = "nu_plugin_selector"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"indexmap",
"nu-errors",
@ -2812,7 +2812,7 @@ dependencies = [
[[package]]
name = "nu_plugin_start"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"glob",
"nu-errors",
@ -2826,7 +2826,7 @@ dependencies = [
[[package]]
name = "nu_plugin_textview"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bat",
"nu-data",
@ -2840,7 +2840,7 @@ dependencies = [
[[package]]
name = "nu_plugin_to_bson"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bson",
"nu-errors",
@ -2852,7 +2852,7 @@ dependencies = [
[[package]]
name = "nu_plugin_to_sqlite"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"hex",
"nu-errors",
@ -2865,7 +2865,7 @@ dependencies = [
[[package]]
name = "nu_plugin_tree"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"derive-new",
"nu-errors",
@ -2876,7 +2876,7 @@ dependencies = [
[[package]]
name = "nu_plugin_xpath"
version = "0.43.0"
version = "0.44.0"
dependencies = [
"bigdecimal",
"indexmap",

View File

@ -10,7 +10,7 @@ license = "MIT"
name = "nu"
readme = "README.md"
repository = "https://github.com/nushell/nushell"
version = "0.43.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.43.0", path="./crates/nu-cli", default-features=false }
nu-command = { version = "0.43.0", path="./crates/nu-command" }
nu-completion = { version = "0.43.0", path="./crates/nu-completion" }
nu-data = { version = "0.43.0", path="./crates/nu-data" }
nu-engine = { version = "0.43.0", path="./crates/nu-engine" }
nu-errors = { version = "0.43.0", path="./crates/nu-errors" }
nu-parser = { version = "0.43.0", path="./crates/nu-parser" }
nu-path = { version = "0.43.0", path="./crates/nu-path" }
nu-plugin = { version = "0.43.0", path="./crates/nu-plugin" }
nu-protocol = { version = "0.43.0", path="./crates/nu-protocol" }
nu-source = { version = "0.43.0", path="./crates/nu-source" }
nu-value-ext = { version = "0.43.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.43.0", path="./crates/nu_plugin_binaryview", optional=true }
nu_plugin_chart = { version = "0.43.0", path="./crates/nu_plugin_chart", optional=true }
nu_plugin_from_bson = { version = "0.43.0", path="./crates/nu_plugin_from_bson", optional=true }
nu_plugin_from_sqlite = { version = "0.43.0", path="./crates/nu_plugin_from_sqlite", optional=true }
nu_plugin_inc = { version = "0.43.0", path="./crates/nu_plugin_inc", optional=true }
nu_plugin_match = { version = "0.43.0", path="./crates/nu_plugin_match", optional=true }
nu_plugin_query_json = { version = "0.43.0", path="./crates/nu_plugin_query_json", optional=true }
nu_plugin_s3 = { version = "0.43.0", path="./crates/nu_plugin_s3", optional=true }
nu_plugin_selector = { version = "0.43.0", path="./crates/nu_plugin_selector", optional=true }
nu_plugin_start = { version = "0.43.0", path="./crates/nu_plugin_start", optional=true }
nu_plugin_textview = { version = "0.43.0", path="./crates/nu_plugin_textview", optional=true }
nu_plugin_to_bson = { version = "0.43.0", path="./crates/nu_plugin_to_bson", optional=true }
nu_plugin_to_sqlite = { version = "0.43.0", path="./crates/nu_plugin_to_sqlite", optional=true }
nu_plugin_tree = { version = "0.43.0", path="./crates/nu_plugin_tree", optional=true }
nu_plugin_xpath = { version = "0.43.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.43.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"

View File

@ -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.
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](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
4docs │ Dir │ 192 B │ 50 mins ago
5images │ Dir │ 160 B │ 5 months ago
6src │ 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
4images │ Dir │ 160 B │ 5 months ago
5src │ Dir │ 128 B │ 1 day ago
6target │ Dir │ 160 B │ 5 days ago
7 │ tests │ Dir │ 192 B │ 3 months ago
───┴────────┴──────┴───────┴──────────────
```

View File

@ -9,7 +9,7 @@ description = "Library for ANSI terminal colors and styles (bold, underline)"
edition = "2018"
license = "MIT"
name = "nu-ansi-term"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false

View File

@ -4,24 +4,24 @@ description = "CLI for nushell"
edition = "2018"
license = "MIT"
name = "nu-cli"
version = "0.43.0"
version = "0.44.0"
build = "build.rs"
[lib]
doctest = false
[dependencies]
nu-completion = { version = "0.43.0", path="../nu-completion" }
nu-command = { version = "0.43.0", path="../nu-command" }
nu-data = { version = "0.43.0", path="../nu-data" }
nu-engine = { version = "0.43.0", path="../nu-engine" }
nu-errors = { version = "0.43.0", path="../nu-errors" }
nu-parser = { version = "0.43.0", path="../nu-parser" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-source = { version = "0.43.0", path="../nu-source" }
nu-stream = { version = "0.43.0", path="../nu-stream" }
nu-ansi-term = { version = "0.43.0", path="../nu-ansi-term" }
nu-path = { version = "0.43.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"

View File

@ -5,28 +5,28 @@ description = "Commands for Nushell"
edition = "2018"
license = "MIT"
name = "nu-command"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-data = { version = "0.43.0", path="../nu-data" }
nu-engine = { version = "0.43.0", path="../nu-engine" }
nu-errors = { version = "0.43.0", path="../nu-errors" }
nu-json = { version = "0.43.0", path="../nu-json" }
nu-path = { version = "0.43.0", path="../nu-path" }
nu-parser = { version = "0.43.0", path="../nu-parser" }
nu-plugin = { version = "0.43.0", path="../nu-plugin" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-serde = { version = "0.43.0", path="../nu-serde" }
nu-source = { version = "0.43.0", path="../nu-source" }
nu-stream = { version = "0.43.0", path="../nu-stream" }
nu-table = { version = "0.43.0", path="../nu-table" }
nu-test-support = { version = "0.43.0", path="../nu-test-support" }
nu-value-ext = { version = "0.43.0", path="../nu-value-ext" }
nu-ansi-term = { version = "0.43.0", path="../nu-ansi-term" }
nu-pretty-hex = { version = "0.43.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"

View File

@ -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,

View File

@ -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) {

View File

@ -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) {

View File

@ -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(_),
..
},

View File

@ -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"));
}

View File

@ -4,19 +4,19 @@ description = "Completions for nushell"
edition = "2018"
license = "MIT"
name = "nu-completion"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-engine = { version = "0.43.0", path="../nu-engine" }
nu-data = { version = "0.43.0", path="../nu-data" }
nu-parser = { version = "0.43.0", path="../nu-parser" }
nu-path = { version = "0.43.0", path="../nu-path" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-source = { version = "0.43.0", path="../nu-source" }
nu-test-support = { version = "0.43.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]

View File

@ -4,7 +4,7 @@ description = "Data for Nushell"
edition = "2018"
license = "MIT"
name = "nu-data"
version = "0.43.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.43.0", path="../nu-errors" }
nu-path = { version = "0.43.0", path="../nu-path" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-source = { version = "0.43.0", path="../nu-source" }
nu-table = { version = "0.43.0", path="../nu-table" }
nu-test-support = { version = "0.43.0", path="../nu-test-support" }
nu-value-ext = { version = "0.43.0", path="../nu-value-ext" }
nu-ansi-term = { version = "0.43.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"]

View File

@ -4,20 +4,20 @@ description = "Core commands for nushell"
edition = "2018"
license = "MIT"
name = "nu-engine"
version = "0.43.0"
version = "0.44.0"
[dependencies]
nu-data = { version = "0.43.0", path="../nu-data" }
nu-errors = { version = "0.43.0", path="../nu-errors" }
nu-parser = { version = "0.43.0", path="../nu-parser" }
nu-plugin = { version = "0.43.0", path="../nu-plugin" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-source = { version = "0.43.0", path="../nu-source" }
nu-stream = { version = "0.43.0", path="../nu-stream" }
nu-value-ext = { version = "0.43.0", path="../nu-value-ext" }
nu-ansi-term = { version = "0.43.0", path="../nu-ansi-term" }
nu-test-support = { version = "0.43.0", path="../nu-test-support" }
nu-path = { version = "0.43.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.43.0", path="../nu-test-support" }
nu-test-support = { version = "0.44.0", path="../nu-test-support" }
hamcrest2 = "0.3.0"
[features]

View File

@ -4,14 +4,14 @@ description = "Core error subsystem for Nushell"
edition = "2018"
license = "MIT"
name = "nu-errors"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-source = { path="../nu-source", version = "0.43.0" }
nu-ansi-term = { version = "0.43.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"] }

View File

@ -4,7 +4,7 @@ description = "Fork of serde-hjson"
edition = "2018"
license = "MIT"
name = "nu-json"
version = "0.43.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.43.0", path="../nu-path" }
nu-test-support = { version = "0.43.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"

View File

@ -4,7 +4,7 @@ description = "Nushell parser"
edition = "2018"
license = "MIT"
name = "nu-parser"
version = "0.43.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.43.0", path="../nu-errors" }
nu-data = { version = "0.43.0", path="../nu-data" }
nu-path = { version = "0.43.0", path="../nu-path" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-source = { version = "0.43.0", path="../nu-source" }
nu-test-support = { version = "0.43.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 = []

View File

@ -4,7 +4,7 @@ description = "Path handling library for Nushell"
edition = "2018"
license = "MIT"
name = "nu-path"
version = "0.43.0"
version = "0.44.0"
[dependencies]
dirs-next = "2.0.0"

View File

@ -4,17 +4,17 @@ description = "Nushell Plugin"
edition = "2018"
license = "MIT"
name = "nu-plugin"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.0" }
nu-test-support = { path="../nu-test-support", version = "0.43.0" }
nu-value-ext = { path="../nu-value-ext", version = "0.43.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"

View File

@ -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.43.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.43.0" }
nu-ansi-term = { path="../nu-ansi-term", version = "0.44.0" }
rand = "0.8.3"
[dev-dependencies]

View File

@ -4,7 +4,7 @@ description = "Core values and protocols for Nushell"
edition = "2018"
license = "MIT"
name = "nu-protocol"
version = "0.43.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.43.0" }
nu-source = { path="../nu-source", version = "0.43.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"

View File

@ -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()),

View File

@ -1,6 +1,6 @@
[package]
name = "nu-serde"
version = "0.43.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.43.0", path = "../nu-protocol" }
nu-source = { version = "0.43.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"

View File

@ -4,7 +4,7 @@ description = "A source string characterizer for Nushell"
edition = "2018"
license = "MIT"
name = "nu-source"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false

View File

@ -4,12 +4,12 @@ description = "Nushell stream"
edition = "2018"
license = "MIT"
name = "nu-stream"
version = "0.43.0"
version = "0.44.0"
[dependencies]
nu-errors = { version = "0.43.0", path="../nu-errors" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-source = { version = "0.43.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 = []

View File

@ -4,7 +4,7 @@ description = "Nushell table printing"
edition = "2018"
license = "MIT"
name = "nu-table"
version = "0.43.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.43.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"

View File

@ -4,16 +4,16 @@ description = "Support for writing Nushell tests"
edition = "2018"
license = "MIT"
name = "nu-test-support"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-errors = { version = "0.43.0", path="../nu-errors" }
nu-path = { version = "0.43.0", path="../nu-path" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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"

View File

@ -4,15 +4,15 @@ description = "Extension traits for values in Nushell"
edition = "2018"
license = "MIT"
name = "nu-value-ext"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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"

View File

@ -4,7 +4,7 @@ description = "A binary viewer plugin for Nushell"
edition = "2018"
license = "MIT"
name = "nu_plugin_binaryview"
version = "0.43.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.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.0" }
nu-ansi-term = { version = "0.43.0", path="../nu-ansi-term" }
nu-pretty-hex = { version = "0.43.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]

View File

@ -4,18 +4,18 @@ description = "A plugin to display charts"
edition = "2018"
license = "MIT"
name = "nu_plugin_chart"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-data = { path="../nu-data", version = "0.43.0" }
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.0" }
nu-value-ext = { path="../nu-value-ext", version = "0.43.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"] }

View File

@ -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.43.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.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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]

View File

@ -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.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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"

View File

@ -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.43.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.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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]

View File

@ -4,18 +4,18 @@ description = "A version incrementer plugin for Nushell"
edition = "2018"
license = "MIT"
name = "nu_plugin_inc"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.0" }
nu-test-support = { path="../nu-test-support", version = "0.43.0" }
nu-value-ext = { path="../nu-value-ext", version = "0.43.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"

View File

@ -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(_)),
..
} => {

View File

@ -4,15 +4,15 @@ description = "A regex match plugin for Nushell"
edition = "2018"
license = "MIT"
name = "nu_plugin_match"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.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]

View File

@ -4,14 +4,14 @@ description = "query json files with gjson"
edition = "2018"
license = "MIT"
name = "nu_plugin_query_json"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
gjson = "0.8.0"
nu-errors = { version = "0.43.0", path="../nu-errors" }
nu-plugin = { version = "0.43.0", path="../nu-plugin" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-source = { version = "0.43.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" }

View File

@ -4,17 +4,17 @@ description = "An S3 plugin for Nushell"
edition = "2018"
license = "MIT"
name = "nu_plugin_s3"
version = "0.43.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.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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]

View File

@ -4,17 +4,17 @@ description = "web scraping using css selector"
edition = "2018"
license = "MIT"
name = "nu_plugin_selector"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
scraper = "0.12.0"
nu-errors = { version = "0.43.0", path="../nu-errors" }
nu-plugin = { version = "0.43.0", path="../nu-plugin" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-source = { version = "0.43.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"] }

View File

@ -4,17 +4,17 @@ description = "A plugin to open files/URLs directly from Nushell"
edition = "2018"
license = "MIT"
name = "nu_plugin_start"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
glob = "0.3.0"
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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.43.0", path="../nu-errors" }
nu-source = { version = "0.43.0", path="../nu-source" }
nu-errors = { version = "0.44.0", path="../nu-errors" }
nu-source = { version = "0.44.0", path="../nu-source" }

View File

@ -4,17 +4,17 @@ description = "Text viewer plugin for Nushell"
edition = "2018"
license = "MIT"
name = "nu_plugin_textview"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-data = { path="../nu-data", version = "0.43.0" }
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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-onig", "paging", "git"] }
term_size = "0.3.2"

View File

@ -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.43.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.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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]

View File

@ -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.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
hex = "0.4.2"
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.0" }
nu-source = { path="../nu-source", version = "0.43.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]

View File

@ -4,16 +4,16 @@ description = "Tree viewer plugin for Nushell"
edition = "2018"
license = "MIT"
name = "nu_plugin_tree"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
derive-new = "0.5.8"
nu-errors = { path="../nu-errors", version = "0.43.0" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { path="../nu-protocol", version = "0.43.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 }

View File

@ -4,16 +4,16 @@ description = "Traverses xml"
edition = "2018"
license = "MIT"
name = "nu_plugin_xpath"
version = "0.43.0"
version = "0.44.0"
[lib]
doctest = false
[dependencies]
nu-errors = { version = "0.43.0", path="../nu-errors" }
nu-plugin = { path="../nu-plugin", version = "0.43.0" }
nu-protocol = { version = "0.43.0", path="../nu-protocol" }
nu-source = { version = "0.43.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.43.0" }
nu-test-support = { path="../nu-test-support", version = "0.44.0" }

5
debian/changelog vendored
View File

@ -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
View File

@ -1 +0,0 @@
10

18
debian/control vendored
View File

@ -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
View File

@ -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
View File

@ -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
View File

@ -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
View File

@ -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
View File

@ -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)

View File

@ -1 +0,0 @@
3.0 (quilt)

View File

@ -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"]

View File

@ -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"]

View File

@ -1,7 +0,0 @@
ARG base
FROM ${base}
ARG artifact
COPY ${artifact} /bin/
ENTRYPOINT ["/bin/nu"]

View File

@ -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"]

View File

@ -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"]

View File

@ -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}

View File

@ -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

View File

@ -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>

View File

@ -86,7 +86,7 @@ version = "0.4.6"
[dependencies.cursive]
default-features = false
features = ["pancurses-backend"]
version = "0.43.0"
version = "0.44.0"
[dependencies.futures-preview]
features = ["compat", "io-compat"]