amazonlinux / amazon-linux-2023

Amazon Linux 2023
https://aws.amazon.com/linux/amazon-linux-2023/
Other
501 stars 38 forks source link

dnf check-release-update output not stdout #545

Open ring-pete opened 8 months ago

ring-pete commented 8 months ago

Description I am trying to automate detection of new Amazon Linux2023 versions being available using dnf check-release-update and it looks like the output of that command is not sent to stdout. I would assume that I could invoke the command, then assign a variable to the output of it. While text does print to the console, variable assignment or redirection does not work as expected.

To Reproduce Steps to reproduce the behavior:

  1. Run an Amazon Linux 2023 system
  2. Login as any standard user, ec2-user for example
  3. Execute the following commands:
$ echo $SHELL
/bin/bash
$ cat /etc/amazon-linux-release
Amazon Linux release 2023 (Amazon Linux)
$ VERSION=$(dnf check-release-update --latest-only --version-only)
2023.2.20231030
$ echo $VERSION

$ dnf check-release-update --latest-only --version-only > /tmp/version
2023.2.20231030
$ cat /tmp/version

Expected behavior I would expect the check-release-update plugin to allow redirection of stdout so that it can be assigned to a variable, or redirected to a file, etc. as any other standard Unix utility would function.

ozbenh commented 8 months ago

It's outputing to stderr not stdout, you can catch it with 2> instead of > for redirection. As to wether this is a desirable behaviour, I'll let others comment

ring-pete commented 8 months ago

Thanks that's super helpful, I can confirm this works:

$ U=$(dnf check-release-update --latest-only --version-only 2>&1)
$ echo $U
2023.2.20231030
$

I am strongly in the "this is undesirable behavior camp" - if we are unable to correct this antipattern then having a note in the help output would be a huge help to others.

stewartsmith commented 8 months ago

Yeah, this seems less than ideal behavior here.

nmeyerhans commented 7 months ago

+1, we should fix this.