mirror of
https://github.com/nushell/nushell.git
synced 2024-11-25 18:03:51 +01:00
deprecate --format
and --list
in into datetime
(#10017)
related to - https://discord.com/channels/601130461678272522/614593951969574961/1141009665266831470 # Description this PR - prints a colorful warning when a user uses either `--format` or `--list` on `into datetime` - does NOT remove the features for now, i.e. the two options still work - redirect to the `format date` command instead i propose to - land this now - prepare a removal PR right after this - land the removal PR in between 0.84 and 0.85 # User-Facing Changes `into datetime --format` and `into datetime --list` will be deprecated in 0.85. ## how it looks - `into datetime --list` in the REPL ```nushell > into datetime --list | first Error: × Deprecated option ╭─[entry #1:1:1] 1 │ into datetime --list | first · ──────┬────── · ╰── `into datetime --list` is deprecated and will be removed in 0.85 ╰──── help: see `format datetime --list` instead ╭───────────────┬────────────────────────────────────────────╮ │ Specification │ %Y │ │ Example │ 2023 │ │ Description │ The full proleptic Gregorian year, │ │ │ zero-padded to 4 digits. │ ╰───────────────┴────────────────────────────────────────────╯ ``` - `into datetime --list` in a script ```nushell > nu /tmp/foo.nu Error: × Deprecated option ╭─[/tmp/foo.nu:4:1] 4 │ # 5 │ into datetime --list | first · ──────┬────── · ╰── `into datetime --list` is deprecated and will be removed in 0.85 ╰──── help: see `format datetime --list` instead ╭───────────────┬────────────────────────────────────────────╮ │ Specification │ %Y │ │ Example │ 2023 │ │ Description │ The full proleptic Gregorian year, │ │ │ zero-padded to 4 digits. │ ╰───────────────┴────────────────────────────────────────────╯ ``` - `help into datetime` ![baz](https://github.com/nushell/nushell/assets/44101798/08beece0-9c89-4665-bfe4-76a32207470f) # Tests + Formatting # After Submitting
This commit is contained in:
parent
7e48607820
commit
f33b60c001
@ -5,6 +5,7 @@ use nu_engine::CallExt;
|
|||||||
use nu_protocol::ast::Call;
|
use nu_protocol::ast::Call;
|
||||||
use nu_protocol::ast::CellPath;
|
use nu_protocol::ast::CellPath;
|
||||||
use nu_protocol::engine::{Command, EngineState, Stack};
|
use nu_protocol::engine::{Command, EngineState, Stack};
|
||||||
|
use nu_protocol::report_error_new;
|
||||||
use nu_protocol::{
|
use nu_protocol::{
|
||||||
Category, Example, IntoPipelineData, PipelineData, ShellError, Signature, Span, Spanned,
|
Category, Example, IntoPipelineData, PipelineData, ShellError, Signature, Span, Spanned,
|
||||||
SyntaxShape, Type, Value,
|
SyntaxShape, Type, Value,
|
||||||
@ -87,12 +88,12 @@ impl Command for SubCommand {
|
|||||||
.named(
|
.named(
|
||||||
"format",
|
"format",
|
||||||
SyntaxShape::String,
|
SyntaxShape::String,
|
||||||
"Specify expected format of string input to parse to datetime. Use --list to see options",
|
"DEPRECATED option, will be removed in 0.85: see `format date`",
|
||||||
Some('f'),
|
Some('f'),
|
||||||
)
|
)
|
||||||
.switch(
|
.switch(
|
||||||
"list",
|
"list",
|
||||||
"Show all possible variables for use in --format flag",
|
"DEPRECATED option, will be removed in 0.85: see `format date --list`",
|
||||||
Some('l'),
|
Some('l'),
|
||||||
)
|
)
|
||||||
.rest(
|
.rest(
|
||||||
@ -111,6 +112,17 @@ impl Command for SubCommand {
|
|||||||
input: PipelineData,
|
input: PipelineData,
|
||||||
) -> Result<PipelineData, ShellError> {
|
) -> Result<PipelineData, ShellError> {
|
||||||
if call.has_flag("list") {
|
if call.has_flag("list") {
|
||||||
|
report_error_new(
|
||||||
|
engine_state,
|
||||||
|
&ShellError::GenericError(
|
||||||
|
"Deprecated option".into(),
|
||||||
|
"`into datetime --list` is deprecated and will be removed in 0.85".into(),
|
||||||
|
Some(call.head),
|
||||||
|
Some("see `format datetime --list` instead".into()),
|
||||||
|
vec![],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
Ok(generate_strftime_list(call.head, true).into_pipeline_data())
|
Ok(generate_strftime_list(call.head, true).into_pipeline_data())
|
||||||
} else {
|
} else {
|
||||||
let cell_paths = call.rest(engine_state, stack, 0)?;
|
let cell_paths = call.rest(engine_state, stack, 0)?;
|
||||||
@ -130,6 +142,19 @@ impl Command for SubCommand {
|
|||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if call.has_flag("format") {
|
||||||
|
report_error_new(
|
||||||
|
engine_state,
|
||||||
|
&ShellError::GenericError(
|
||||||
|
"Deprecated option".into(),
|
||||||
|
"`into datetime --format` is deprecated and will be removed in 0.85".into(),
|
||||||
|
Some(call.head),
|
||||||
|
Some("see `format datetime` instead".into()),
|
||||||
|
vec![],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
let format_options = call
|
let format_options = call
|
||||||
.get_flag::<String>(engine_state, stack, "format")?
|
.get_flag::<String>(engine_state, stack, "format")?
|
||||||
.as_ref()
|
.as_ref()
|
||||||
@ -174,7 +199,7 @@ impl Command for SubCommand {
|
|||||||
},
|
},
|
||||||
Example {
|
Example {
|
||||||
description:
|
description:
|
||||||
"Convert non-standard timestamp string to datetime using a custom format",
|
"Convert non-standard timestamp string to datetime using a custom format (DEPRECATED: will be removed in 0.85)",
|
||||||
example: "'20210227_135540+0000' | into datetime -f '%Y%m%d_%H%M%S%z'",
|
example: "'20210227_135540+0000' | into datetime -f '%Y%m%d_%H%M%S%z'",
|
||||||
#[allow(clippy::inconsistent_digit_grouping)]
|
#[allow(clippy::inconsistent_digit_grouping)]
|
||||||
result: example_result_1(1614434140_000000000),
|
result: example_result_1(1614434140_000000000),
|
||||||
|
Loading…
Reference in New Issue
Block a user