mirror of
https://github.com/nushell/nushell
synced 2025-01-06 18:29:02 +00:00
371 lines
11 KiB
Rust
371 lines
11 KiB
Rust
#[macro_use]
|
|
pub(crate) mod macros;
|
|
|
|
mod from_delimited_data;
|
|
mod to_delimited_data;
|
|
|
|
pub(crate) mod all;
|
|
pub(crate) mod ansi;
|
|
pub(crate) mod any;
|
|
pub(crate) mod append;
|
|
pub(crate) mod args;
|
|
pub mod autoenv;
|
|
pub(crate) mod autoenv_trust;
|
|
pub(crate) mod autoenv_untrust;
|
|
pub(crate) mod autoview;
|
|
pub(crate) mod benchmark;
|
|
pub(crate) mod build_string;
|
|
pub(crate) mod cal;
|
|
pub(crate) mod cd;
|
|
pub(crate) mod char_;
|
|
pub(crate) mod chart;
|
|
pub(crate) mod classified;
|
|
#[cfg(feature = "clipboard-cli")]
|
|
pub(crate) mod clip;
|
|
pub(crate) mod compact;
|
|
pub(crate) mod config;
|
|
pub(crate) mod constants;
|
|
pub(crate) mod cp;
|
|
pub(crate) mod date;
|
|
pub(crate) mod debug;
|
|
pub(crate) mod def;
|
|
pub(crate) mod default;
|
|
pub mod default_context;
|
|
pub(crate) mod describe;
|
|
pub(crate) mod do_;
|
|
pub(crate) mod drop;
|
|
pub(crate) mod du;
|
|
pub(crate) mod each;
|
|
pub(crate) mod echo;
|
|
pub(crate) mod empty;
|
|
pub(crate) mod enter;
|
|
pub(crate) mod every;
|
|
pub(crate) mod exec;
|
|
pub(crate) mod exit;
|
|
pub(crate) mod first;
|
|
pub(crate) mod flatten;
|
|
pub(crate) mod format;
|
|
pub(crate) mod from;
|
|
pub(crate) mod from_csv;
|
|
pub(crate) mod from_eml;
|
|
pub(crate) mod from_ics;
|
|
pub(crate) mod from_ini;
|
|
pub(crate) mod from_json;
|
|
pub(crate) mod from_ods;
|
|
pub(crate) mod from_ssv;
|
|
pub(crate) mod from_toml;
|
|
pub(crate) mod from_tsv;
|
|
pub(crate) mod from_url;
|
|
pub(crate) mod from_vcf;
|
|
pub(crate) mod from_xlsx;
|
|
pub(crate) mod from_xml;
|
|
pub(crate) mod from_yaml;
|
|
pub(crate) mod get;
|
|
pub(crate) mod group_by;
|
|
pub(crate) mod group_by_date;
|
|
pub(crate) mod hash_;
|
|
pub(crate) mod headers;
|
|
pub(crate) mod help;
|
|
pub(crate) mod histogram;
|
|
pub(crate) mod history;
|
|
pub(crate) mod if_;
|
|
pub(crate) mod insert;
|
|
pub(crate) mod into;
|
|
pub(crate) mod keep;
|
|
pub(crate) mod last;
|
|
pub(crate) mod length;
|
|
pub(crate) mod let_;
|
|
pub(crate) mod let_env;
|
|
pub(crate) mod lines;
|
|
pub(crate) mod ls;
|
|
pub(crate) mod math;
|
|
pub(crate) mod merge;
|
|
pub(crate) mod mkdir;
|
|
pub(crate) mod move_;
|
|
pub(crate) mod next;
|
|
pub(crate) mod nth;
|
|
pub(crate) mod nu;
|
|
pub(crate) mod open;
|
|
pub(crate) mod parse;
|
|
pub(crate) mod path;
|
|
pub(crate) mod pivot;
|
|
pub(crate) mod prepend;
|
|
pub(crate) mod prev;
|
|
pub(crate) mod pwd;
|
|
pub(crate) mod random;
|
|
pub(crate) mod range;
|
|
pub(crate) mod reduce;
|
|
pub(crate) mod reject;
|
|
pub(crate) mod rename;
|
|
pub(crate) mod reverse;
|
|
pub(crate) mod rm;
|
|
pub(crate) mod roll;
|
|
pub(crate) mod rotate;
|
|
pub(crate) mod run_external;
|
|
pub(crate) mod save;
|
|
pub(crate) mod select;
|
|
pub(crate) mod seq;
|
|
pub(crate) mod seq_dates;
|
|
pub(crate) mod shells;
|
|
pub(crate) mod shuffle;
|
|
pub(crate) mod size;
|
|
pub(crate) mod skip;
|
|
pub(crate) mod sleep;
|
|
pub(crate) mod sort_by;
|
|
pub(crate) mod source;
|
|
pub(crate) mod split;
|
|
pub(crate) mod split_by;
|
|
pub(crate) mod str_;
|
|
pub(crate) mod table;
|
|
pub(crate) mod tags;
|
|
pub(crate) mod termsize;
|
|
pub(crate) mod to;
|
|
pub(crate) mod to_csv;
|
|
pub(crate) mod to_html;
|
|
pub(crate) mod to_json;
|
|
pub(crate) mod to_md;
|
|
pub(crate) mod to_toml;
|
|
pub(crate) mod to_tsv;
|
|
pub(crate) mod to_url;
|
|
pub(crate) mod to_xml;
|
|
pub(crate) mod to_yaml;
|
|
pub(crate) mod uniq;
|
|
pub(crate) mod update;
|
|
pub(crate) mod url_;
|
|
pub(crate) mod version;
|
|
pub(crate) mod where_;
|
|
pub(crate) mod which_;
|
|
pub(crate) mod with_env;
|
|
pub(crate) mod wrap;
|
|
|
|
pub(crate) use autoview::Autoview;
|
|
pub(crate) use cd::Cd;
|
|
|
|
pub(crate) use ansi::Ansi;
|
|
pub(crate) use ansi::AnsiStrip;
|
|
pub(crate) use append::Command as Append;
|
|
pub(crate) use autoenv::Autoenv;
|
|
pub(crate) use autoenv_trust::AutoenvTrust;
|
|
pub(crate) use autoenv_untrust::AutoenvUnTrust;
|
|
pub(crate) use benchmark::Benchmark;
|
|
pub(crate) use build_string::BuildString;
|
|
pub(crate) use cal::Cal;
|
|
pub(crate) use char_::Char;
|
|
pub(crate) use chart::Chart;
|
|
pub(crate) use compact::Compact;
|
|
pub(crate) use config::{
|
|
Config, ConfigClear, ConfigGet, ConfigPath, ConfigRemove, ConfigSet, ConfigSetInto,
|
|
};
|
|
pub(crate) use cp::Cpy;
|
|
pub(crate) use date::{Date, DateFormat, DateListTimeZone, DateNow, DateToTable, DateToTimeZone};
|
|
pub(crate) use debug::Debug;
|
|
pub(crate) use def::Def;
|
|
pub(crate) use default::Default;
|
|
pub(crate) use describe::Describe;
|
|
pub(crate) use do_::Do;
|
|
pub(crate) use drop::{Drop, DropColumn};
|
|
pub(crate) use du::Du;
|
|
pub(crate) use each::Each;
|
|
pub(crate) use each::EachGroup;
|
|
pub(crate) use each::EachWindow;
|
|
pub(crate) use echo::Echo;
|
|
pub(crate) use empty::Command as Empty;
|
|
pub(crate) use if_::If;
|
|
pub(crate) use into::Into;
|
|
pub(crate) use into::IntoInt;
|
|
pub(crate) use nu::NuPlugin;
|
|
pub(crate) use update::Command as Update;
|
|
pub(crate) mod kill;
|
|
pub(crate) use kill::Kill;
|
|
pub(crate) mod clear;
|
|
pub(crate) use clear::Clear;
|
|
pub(crate) mod touch;
|
|
pub(crate) use all::Command as All;
|
|
pub(crate) use any::Command as Any;
|
|
pub(crate) use enter::Enter;
|
|
pub(crate) use every::Every;
|
|
pub(crate) use exec::Exec;
|
|
pub(crate) use exit::Exit;
|
|
pub(crate) use first::First;
|
|
pub(crate) use flatten::Command as Flatten;
|
|
pub(crate) use format::{FileSize, Format};
|
|
pub(crate) use from::From;
|
|
pub(crate) use from_csv::FromCsv;
|
|
pub(crate) use from_eml::FromEml;
|
|
pub(crate) use from_ics::FromIcs;
|
|
pub(crate) use from_ini::FromIni;
|
|
pub(crate) use from_json::FromJson;
|
|
pub(crate) use from_ods::FromOds;
|
|
pub(crate) use from_ssv::FromSsv;
|
|
pub(crate) use from_toml::FromToml;
|
|
pub(crate) use from_tsv::FromTsv;
|
|
pub(crate) use from_url::FromUrl;
|
|
pub(crate) use from_vcf::FromVcf;
|
|
pub(crate) use from_xlsx::FromXlsx;
|
|
pub(crate) use from_xml::FromXml;
|
|
pub(crate) use from_yaml::FromYaml;
|
|
pub(crate) use from_yaml::FromYml;
|
|
pub(crate) use get::Command as Get;
|
|
pub(crate) use group_by::Command as GroupBy;
|
|
pub(crate) use group_by_date::GroupByDate;
|
|
pub(crate) use hash_::{Hash, HashBase64, HashMd5};
|
|
pub(crate) use headers::Headers;
|
|
pub(crate) use help::Help;
|
|
pub(crate) use histogram::Histogram;
|
|
pub(crate) use history::History;
|
|
pub(crate) use insert::Command as Insert;
|
|
pub(crate) use keep::{Keep, KeepUntil, KeepWhile};
|
|
pub(crate) use last::Last;
|
|
pub(crate) use length::Length;
|
|
pub(crate) use let_::Let;
|
|
pub(crate) use let_env::LetEnv;
|
|
pub(crate) use lines::Lines;
|
|
pub(crate) use ls::Ls;
|
|
pub(crate) use math::{
|
|
Math, MathAbs, MathAverage, MathCeil, MathEval, MathFloor, MathMaximum, MathMedian,
|
|
MathMinimum, MathMode, MathProduct, MathRound, MathSqrt, MathStddev, MathSummation,
|
|
MathVariance,
|
|
};
|
|
pub(crate) use merge::Merge;
|
|
pub(crate) use mkdir::Mkdir;
|
|
pub(crate) use move_::{Move, Mv};
|
|
pub(crate) use next::Next;
|
|
pub(crate) use nth::Nth;
|
|
pub(crate) use open::Open;
|
|
pub(crate) use parse::Parse;
|
|
pub(crate) use path::{
|
|
PathBasename, PathCommand, PathDirname, PathExists, PathExpand, PathExtension, PathFilestem,
|
|
PathJoin, PathType,
|
|
};
|
|
pub(crate) use pivot::Pivot;
|
|
pub(crate) use prepend::Prepend;
|
|
pub(crate) use prev::Previous;
|
|
pub(crate) use pwd::Pwd;
|
|
#[cfg(feature = "uuid_crate")]
|
|
pub(crate) use random::RandomUUID;
|
|
pub(crate) use random::{
|
|
Random, RandomBool, RandomChars, RandomDecimal, RandomDice, RandomInteger,
|
|
};
|
|
pub(crate) use range::Range;
|
|
pub(crate) use reduce::Reduce;
|
|
pub(crate) use reject::Reject;
|
|
pub(crate) use rename::Rename;
|
|
pub(crate) use reverse::Reverse;
|
|
pub(crate) use rm::Remove;
|
|
pub(crate) use roll::{Roll, RollColumn, RollUp};
|
|
pub(crate) use rotate::{Rotate, RotateCounterClockwise};
|
|
pub(crate) use run_external::RunExternalCommand;
|
|
pub(crate) use save::Save;
|
|
pub(crate) use select::Command as Select;
|
|
pub(crate) use seq::Seq;
|
|
pub(crate) use seq_dates::SeqDates;
|
|
pub(crate) use shells::Shells;
|
|
pub(crate) use shuffle::Shuffle;
|
|
pub(crate) use size::Size;
|
|
pub(crate) use skip::{Skip, SkipUntil, SkipWhile};
|
|
pub(crate) use sleep::Sleep;
|
|
pub(crate) use sort_by::SortBy;
|
|
pub(crate) use source::Source;
|
|
pub(crate) use split::{Split, SplitChars, SplitColumn, SplitRow};
|
|
pub(crate) use split_by::SplitBy;
|
|
pub(crate) use str_::{
|
|
Str, StrCamelCase, StrCapitalize, StrCollect, StrContains, StrDowncase, StrEndsWith,
|
|
StrFindReplace, StrFrom, StrIndexOf, StrKebabCase, StrLPad, StrLength, StrPascalCase, StrRPad,
|
|
StrReverse, StrScreamingSnakeCase, StrSnakeCase, StrStartsWith, StrSubstring, StrToDatetime,
|
|
StrToDecimal, StrToInteger, StrTrim, StrTrimLeft, StrTrimRight, StrUpcase,
|
|
};
|
|
pub(crate) use table::Table;
|
|
pub(crate) use tags::Tags;
|
|
pub(crate) use termsize::TermSize;
|
|
pub(crate) use to::To;
|
|
pub(crate) use to_csv::ToCsv;
|
|
pub(crate) use to_html::ToHtml;
|
|
pub(crate) use to_json::ToJson;
|
|
pub(crate) use to_md::Command as ToMarkdown;
|
|
pub(crate) use to_toml::ToToml;
|
|
pub(crate) use to_tsv::ToTsv;
|
|
pub(crate) use to_url::ToUrl;
|
|
pub(crate) use to_xml::ToXml;
|
|
pub(crate) use to_yaml::ToYaml;
|
|
pub(crate) use touch::Touch;
|
|
pub(crate) use uniq::Uniq;
|
|
pub(crate) use url_::{UrlCommand, UrlHost, UrlPath, UrlQuery, UrlScheme};
|
|
pub(crate) use version::Version;
|
|
pub(crate) use where_::Command as Where;
|
|
pub(crate) use which_::Which;
|
|
pub(crate) use with_env::WithEnv;
|
|
pub(crate) use wrap::Wrap;
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
use crate::examples::{test_anchors, test_examples};
|
|
use nu_engine::{whole_stream_command, Command};
|
|
use nu_errors::ShellError;
|
|
|
|
fn full_tests() -> Vec<Command> {
|
|
vec![
|
|
whole_stream_command(Append),
|
|
whole_stream_command(GroupBy),
|
|
whole_stream_command(Insert),
|
|
whole_stream_command(Move),
|
|
whole_stream_command(Update),
|
|
whole_stream_command(Empty),
|
|
// whole_stream_command(Select),
|
|
// whole_stream_command(Get),
|
|
// Str Command Suite
|
|
whole_stream_command(Str),
|
|
whole_stream_command(StrToDecimal),
|
|
whole_stream_command(StrToInteger),
|
|
whole_stream_command(StrDowncase),
|
|
whole_stream_command(StrUpcase),
|
|
whole_stream_command(StrCapitalize),
|
|
whole_stream_command(StrFindReplace),
|
|
whole_stream_command(StrFrom),
|
|
whole_stream_command(StrSubstring),
|
|
whole_stream_command(StrToDatetime),
|
|
whole_stream_command(StrContains),
|
|
whole_stream_command(StrIndexOf),
|
|
whole_stream_command(StrTrim),
|
|
whole_stream_command(StrTrimLeft),
|
|
whole_stream_command(StrTrimRight),
|
|
whole_stream_command(StrStartsWith),
|
|
whole_stream_command(StrEndsWith),
|
|
//whole_stream_command(StrCollect),
|
|
whole_stream_command(StrLength),
|
|
whole_stream_command(StrLPad),
|
|
whole_stream_command(StrReverse),
|
|
whole_stream_command(StrRPad),
|
|
whole_stream_command(StrCamelCase),
|
|
whole_stream_command(StrPascalCase),
|
|
whole_stream_command(StrKebabCase),
|
|
whole_stream_command(StrSnakeCase),
|
|
whole_stream_command(StrScreamingSnakeCase),
|
|
whole_stream_command(ToMarkdown),
|
|
]
|
|
}
|
|
|
|
fn only_examples() -> Vec<Command> {
|
|
let mut commands = full_tests();
|
|
commands.extend(vec![whole_stream_command(Flatten)]);
|
|
commands
|
|
}
|
|
|
|
#[test]
|
|
fn examples_work_as_expected() -> Result<(), ShellError> {
|
|
for cmd in only_examples() {
|
|
test_examples(cmd)?;
|
|
}
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn tracks_metadata() -> Result<(), ShellError> {
|
|
for cmd in full_tests() {
|
|
test_anchors(cmd)?;
|
|
}
|
|
|
|
Ok(())
|
|
}
|
|
}
|