mirror of
https://github.com/nushell/nushell.git
synced 2025-06-30 14:40:06 +02:00
Add subcommand into filesize
(#3987)
* Add subcommand `into filesize` It's currently not possible to convert a number or a string containing a number into a filesize. The only way to create an instance of filesize type today is with a literal in nushell syntax. This commit adds the `into filesize` subcommand so that file sizes can be created from the outputs of programs producing numbers or strings, like standard unix tools. There is a limitation with this - it doesn't currently parse values like `10 MB` or `10 MiB`, it can only look at the number itself. If the desire is there, more flexible parsing can be added. * fixup! Add subcommand `into filesize` * fixup! Add subcommand `into filesize`
This commit is contained in:
76
crates/nu-command/tests/commands/into_filesize.rs
Normal file
76
crates/nu-command/tests/commands/into_filesize.rs
Normal file
@ -0,0 +1,76 @@
|
||||
use nu_test_support::{nu, pipeline};
|
||||
|
||||
#[test]
|
||||
fn into_filesize_int() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
1 | into filesize
|
||||
"#
|
||||
));
|
||||
|
||||
assert!(actual.out.contains("1 B"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn into_filesize_decimal() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
1.2 | into filesize
|
||||
"#
|
||||
));
|
||||
|
||||
assert!(actual.out.contains("1 B"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn into_filesize_str() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
'2000' | into filesize
|
||||
"#
|
||||
));
|
||||
|
||||
assert!(actual.out.contains("2.0 KB"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn into_filesize_str_newline() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
'2000
|
||||
' | into filesize
|
||||
"#
|
||||
));
|
||||
|
||||
assert!(actual.out.contains("2.0 KB"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn into_filesize_str_many_newlines() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
'2000
|
||||
|
||||
' | into filesize
|
||||
"#
|
||||
));
|
||||
|
||||
assert!(actual.out.contains("2.0 KB"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn into_filesize_filesize() {
|
||||
let actual = nu!(
|
||||
cwd: ".", pipeline(
|
||||
r#"
|
||||
3kb | into filesize
|
||||
"#
|
||||
));
|
||||
|
||||
assert!(actual.out.contains("3.0 KB"));
|
||||
}
|
@ -25,6 +25,7 @@ mod headers;
|
||||
mod help;
|
||||
mod histogram;
|
||||
mod insert;
|
||||
mod into_filesize;
|
||||
mod into_int;
|
||||
mod keep;
|
||||
mod last;
|
||||
|
Reference in New Issue
Block a user