mirror of
https://github.com/nushell/nushell
synced 2024-12-26 04:53:09 +00:00
Move binaryview to a sub-crate
This commit is contained in:
parent
e9ee7bda46
commit
a4bb5d4ff5
5 changed files with 61 additions and 27 deletions
22
Cargo.lock
generated
22
Cargo.lock
generated
|
@ -1911,14 +1911,12 @@ dependencies = [
|
||||||
"glob",
|
"glob",
|
||||||
"heim",
|
"heim",
|
||||||
"hex 0.4.0",
|
"hex 0.4.0",
|
||||||
"image",
|
|
||||||
"indexmap",
|
"indexmap",
|
||||||
"itertools 0.8.2",
|
"itertools 0.8.2",
|
||||||
"language-reporting",
|
"language-reporting",
|
||||||
"log",
|
"log",
|
||||||
"mime",
|
"mime",
|
||||||
"natural",
|
"natural",
|
||||||
"neso",
|
|
||||||
"nom 5.0.1",
|
"nom 5.0.1",
|
||||||
"nom-tracable",
|
"nom-tracable",
|
||||||
"nom_locate",
|
"nom_locate",
|
||||||
|
@ -1927,6 +1925,7 @@ dependencies = [
|
||||||
"nu-parser",
|
"nu-parser",
|
||||||
"nu-protocol",
|
"nu-protocol",
|
||||||
"nu-source",
|
"nu-source",
|
||||||
|
"nu_plugin_binaryview",
|
||||||
"nu_plugin_textview",
|
"nu_plugin_textview",
|
||||||
"num-bigint",
|
"num-bigint",
|
||||||
"num-traits 0.2.10",
|
"num-traits 0.2.10",
|
||||||
|
@ -1939,7 +1938,6 @@ dependencies = [
|
||||||
"prettytable-rs",
|
"prettytable-rs",
|
||||||
"ptree",
|
"ptree",
|
||||||
"query_interface",
|
"query_interface",
|
||||||
"rawkey",
|
|
||||||
"regex",
|
"regex",
|
||||||
"roxmltree",
|
"roxmltree",
|
||||||
"rusqlite",
|
"rusqlite",
|
||||||
|
@ -2079,6 +2077,24 @@ dependencies = [
|
||||||
"termcolor",
|
"termcolor",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "nu_plugin_binaryview"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"ansi_term 0.12.1",
|
||||||
|
"crossterm",
|
||||||
|
"image",
|
||||||
|
"neso",
|
||||||
|
"nu-build",
|
||||||
|
"nu-errors",
|
||||||
|
"nu-protocol",
|
||||||
|
"nu-source",
|
||||||
|
"pretty-hex",
|
||||||
|
"rawkey",
|
||||||
|
"syntect",
|
||||||
|
"url",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "nu_plugin_textview"
|
name = "nu_plugin_textview"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
22
Cargo.toml
22
Cargo.toml
|
@ -13,7 +13,15 @@ documentation = "https://book.nushell.sh"
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
|
|
||||||
members = ["crates/nu-errors", "crates/nu-source", "crates/nu_plugin_textview", "crates/nu-protocol", "crates/nu-parser", "crates/nu-build"]
|
members = [
|
||||||
|
"crates/nu-errors",
|
||||||
|
"crates/nu-source",
|
||||||
|
"crates/nu_plugin_textview",
|
||||||
|
"crates/nu_plugin_binaryview",
|
||||||
|
"crates/nu-protocol",
|
||||||
|
"crates/nu-parser",
|
||||||
|
"crates/nu-build"
|
||||||
|
]
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
@ -23,6 +31,7 @@ nu-protocol = { version = "0.1.0", path = "./crates/nu-protocol" }
|
||||||
nu-errors = { version = "0.1.0", path = "./crates/nu-errors" }
|
nu-errors = { version = "0.1.0", path = "./crates/nu-errors" }
|
||||||
nu-parser = { version = "0.1.0", path = "./crates/nu-parser" }
|
nu-parser = { version = "0.1.0", path = "./crates/nu-parser" }
|
||||||
nu_plugin_textview = {version = "0.1.0", path = "./crates/nu_plugin_textview", optional=true}
|
nu_plugin_textview = {version = "0.1.0", path = "./crates/nu_plugin_textview", optional=true}
|
||||||
|
nu_plugin_binaryview = {version = "0.1.0", path = "./crates/nu_plugin_binaryview", optional=true}
|
||||||
|
|
||||||
query_interface = "0.3.5"
|
query_interface = "0.3.5"
|
||||||
typetag = "0.1.4"
|
typetag = "0.1.4"
|
||||||
|
@ -96,26 +105,22 @@ pretty = "0.5.2"
|
||||||
termcolor = "1.0.5"
|
termcolor = "1.0.5"
|
||||||
console = "0.9.1"
|
console = "0.9.1"
|
||||||
|
|
||||||
neso = { version = "0.5.0", optional = true }
|
|
||||||
crossterm = { version = "0.10.2", optional = true }
|
crossterm = { version = "0.10.2", optional = true }
|
||||||
syntect = {version = "3.2.0", optional = true }
|
syntect = {version = "3.2.0", optional = true }
|
||||||
onig_sys = {version = "=69.1.0", optional = true }
|
onig_sys = {version = "=69.1.0", optional = true }
|
||||||
heim = {version = "0.0.8", optional = true }
|
heim = {version = "0.0.8", optional = true }
|
||||||
battery = {version = "0.7.4", optional = true }
|
battery = {version = "0.7.4", optional = true }
|
||||||
rawkey = {version = "0.1.2", optional = true }
|
|
||||||
clipboard = {version = "0.5", optional = true }
|
clipboard = {version = "0.5", optional = true }
|
||||||
ptree = {version = "0.2" }
|
ptree = {version = "0.2" }
|
||||||
image = { version = "0.22.2", default_features = false, features = ["png_codec", "jpeg"], optional = true }
|
|
||||||
starship = { version = "0.26.4", optional = true}
|
starship = { version = "0.26.4", optional = true}
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["sys", "ps"]
|
default = ["sys", "ps"]
|
||||||
raw-key = ["rawkey", "neso"]
|
|
||||||
binaryview = ["image", "crossterm"]
|
|
||||||
sys = ["heim", "battery"]
|
sys = ["heim", "battery"]
|
||||||
ps = ["heim"]
|
ps = ["heim"]
|
||||||
starship-prompt = ["starship"]
|
starship-prompt = ["starship"]
|
||||||
textview = ["nu_plugin_textview"]
|
textview = ["nu_plugin_textview"]
|
||||||
|
binaryview = ["nu_plugin_binaryview"]
|
||||||
#trace = ["nu-parser/trace"]
|
#trace = ["nu-parser/trace"]
|
||||||
|
|
||||||
[dependencies.rusqlite]
|
[dependencies.rusqlite]
|
||||||
|
@ -193,11 +198,6 @@ name = "nu_plugin_tree"
|
||||||
path = "src/plugins/tree.rs"
|
path = "src/plugins/tree.rs"
|
||||||
required-features = ["tree"]
|
required-features = ["tree"]
|
||||||
|
|
||||||
[[bin]]
|
|
||||||
name = "nu_plugin_binaryview"
|
|
||||||
path = "src/plugins/binaryview.rs"
|
|
||||||
required-features = ["binaryview"]
|
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "nu_plugin_docker"
|
name = "nu_plugin_docker"
|
||||||
path = "src/plugins/docker.rs"
|
path = "src/plugins/docker.rs"
|
||||||
|
|
23
crates/nu_plugin_binaryview/Cargo.toml
Normal file
23
crates/nu_plugin_binaryview/Cargo.toml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
[package]
|
||||||
|
name = "nu_plugin_binaryview"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Yehuda Katz <wycats@gmail.com>", "Jonathan Turner <jonathan.d.turner@gmail.com>", "Andrés N. Robalino <andres@androbtech.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
syntect = { version = "3.2.0" }
|
||||||
|
ansi_term = "0.12.1"
|
||||||
|
crossterm = { version = "0.10.2" }
|
||||||
|
nu-protocol = { path = "../nu-protocol" }
|
||||||
|
nu-source = { path = "../nu-source" }
|
||||||
|
nu-errors = { path = "../nu-errors" }
|
||||||
|
url = "2.1.0"
|
||||||
|
pretty-hex = "0.1.1"
|
||||||
|
image = { version = "0.22.2", default_features = false, features = ["png_codec", "jpeg"] }
|
||||||
|
rawkey = "0.1.2"
|
||||||
|
neso = "0.5.0"
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
nu-build = { version = "0.1.0", path = "../nu-build" }
|
3
crates/nu_plugin_binaryview/build.rs
Normal file
3
crates/nu_plugin_binaryview/build.rs
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
|
nu_build::build()
|
||||||
|
}
|
|
@ -1,7 +1,8 @@
|
||||||
use crossterm::{cursor, terminal, Attribute, RawScreen};
|
use crossterm::{cursor, terminal, Attribute, RawScreen};
|
||||||
use nu::{serve_plugin, Plugin};
|
|
||||||
use nu_errors::ShellError;
|
use nu_errors::ShellError;
|
||||||
use nu_protocol::{outln, CallInfo, Primitive, Signature, UntaggedValue, Value};
|
use nu_protocol::{
|
||||||
|
outln, serve_plugin, CallInfo, Plugin, Primitive, Signature, UntaggedValue, Value,
|
||||||
|
};
|
||||||
use nu_source::AnchorLocation;
|
use nu_source::AnchorLocation;
|
||||||
use pretty_hex::*;
|
use pretty_hex::*;
|
||||||
|
|
||||||
|
@ -41,16 +42,8 @@ fn view_binary(
|
||||||
if b.len() > 3 {
|
if b.len() > 3 {
|
||||||
match (b[0], b[1], b[2]) {
|
match (b[0], b[1], b[2]) {
|
||||||
(0x4e, 0x45, 0x53) => {
|
(0x4e, 0x45, 0x53) => {
|
||||||
#[cfg(feature = "rawkey")]
|
view_contents_interactive(b, source, lores_mode)?;
|
||||||
{
|
return Ok(());
|
||||||
view_contents_interactive(b, source, lores_mode)?;
|
|
||||||
return Ok(());
|
|
||||||
}
|
|
||||||
#[cfg(not(feature = "rawkey"))]
|
|
||||||
{
|
|
||||||
outln!("Interactive binary viewing currently requires the 'rawkey' feature");
|
|
||||||
return Ok(());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
@ -338,7 +331,6 @@ pub fn view_contents(
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(feature = "rawkey")]
|
|
||||||
pub fn view_contents_interactive(
|
pub fn view_contents_interactive(
|
||||||
buffer: &[u8],
|
buffer: &[u8],
|
||||||
source: Option<&AnchorLocation>,
|
source: Option<&AnchorLocation>,
|
Loading…
Reference in a new issue